Sites Internet

Le parallélisme nécessite une application meurtrière pour l'adoption en masse

crypto entretiens de rize avec kenny rowe coop de rchain

crypto entretiens de rize avec kenny rowe coop de rchain
Anonim

La plupart des logiciels d'aujourd'hui sont encore en cours d'écriture pour une exécution séquentielle et les modèles de programmation doivent changer pour tirer parti d'un matériel plus rapide et d'un nombre croissant de cœurs sur les puces, ont déclaré les panélistes. Les programmeurs ont besoin d'écrire du code de manière à pouvoir diviser et exécuter les tâches simultanément sur plusieurs cœurs et threads.

Beaucoup d'attention et d'argent ont été investis dans la construction de machines rapides et de meilleurs langages de programmation. professeur de sciences à l'Université de Californie, Berkeley, à la conférence de Stanford lundi. Comparativement, peu d'attention a été accordée à l'écriture de programmes de bureau en parallèle, mais des applications telles que les jeux et la musique pourraient changer cela. Les utilisateurs de tels programmes exigent les meilleures performances en temps réel, les programmeurs peuvent donc devoir adopter des modèles qui répartissent les tâches sur plusieurs threads et cœurs.

Par exemple, de nouvelles formes de parallélisme peuvent améliorer la qualité de la musique sur PC et les smartphones, a déclaré Patterson. Le code qui permet de mieux séparer les canaux et les instruments pourrait finalement générer du son grâce à une interaction parallèle.

L'Université de Californie à Berkeley dispose d'un laboratoire informatique parallèle où les chercheurs tentent de comprendre comment les applications sont utilisées. pour les appareils de poche. Un projet vise à apporter la navigation de qualité bureautique aux appareils de poche en optimisant le code en fonction de tâches spécifiques telles que le rendu et l'analyse des pages. Un autre projet consiste à optimiser le code pour une récupération plus rapide des informations de santé. Le laboratoire est principalement financé par Intel et Microsoft.

Les chercheurs de Berkeley tentent d'introduire le parallélisme en remplaçant des morceaux de code écrits à l'aide de langages de script tels que Python et Ruby on Rails avec un nouveau code C de bas niveau. Le nouveau code se concentre spécifiquement sur des tâches particulières comme l'analyse d'un modèle de voix spécifique dans une application de reconnaissance vocale, a déclaré Patterson dans une interview mercredi. Le code est écrit en utilisant OpenMP ou MPI, des interfaces de programmation d'applications conçues pour écrire des applications parallèles au niveau machine.

Les experts ont besoin d'écrire ce code parallèle hautement spécialisé, a déclaré Patterson. Il réduit le temps de développement pour les programmeurs qui utiliseraient autrement Python et Ruby on Rails, ce qui facilite le développement d'applications, mais ne se concentre pas sur le parallélisme, a déclaré Patterson dans l'interview. Le laboratoire a montré que l'exécution de tâches spécifiques est multipliée par 20 avec le code machine de bas niveau.

Le concept de parallélisme n'est pas nouveau et a surtout été le domaine du calcul haute performance. Les bas niveaux de parallélisme ont toujours été possibles, mais les programmeurs ont été confrontés à une tâche décourageante avec un manque d'outils logiciels et d'environnements matériels en constante évolution.

"Les threads doivent se synchroniser correctement", explique Christos Kozyrakis, professeur l'informatique à l'Université de Stanford, lors d'une présentation avant la table ronde. Le code doit être écrit sous une forme qui se comporte de manière prévisible et évolue au fur et à mesure que les cœurs deviennent disponibles.

Les compilateurs doivent également être plus intelligents et perceptifs pour briser les fils à temps afin que les sorties soient reçues correctement, a déclaré Kozyrakis. Des tentatives erronées pour construire le parallélisme en code pourraient créer un logiciel bogué si des calculs spécifiques ne sont pas exécutés dans un certain ordre. C'est un problème communément appelé conditions de course. Les codeurs peuvent également avoir besoin d'apprendre à utiliser plusieurs outils de programmation pour atteindre des niveaux plus précis de parallélisme, ont déclaré les panélistes.

La mémoire et la latence du réseau ont créé des goulets d'étranglement dans le débit des données, ce qui pourrait nier les performances obtenues par l'exécution parallèle des tâches.

De nombreux outils de parallélisme disponibles aujourd'hui sont conçus pour exploiter les capacités de traitement parallèle des processeurs et des unités de traitement graphique afin d'améliorer les performances du système. Apple, Intel, Nvidia et Advanced Micro Devices font partie des entreprises qui font la promotion d'OpenCL, un environnement de programmation parallèle qui sera pris en charge dans le prochain système d'exploitation Mac OS X 10.6 d'Apple, également appelé Snow Leopard, dont la sortie est prévue vendredi. OpenCL est en concurrence avec Microsoft, qui fait la promotion de ses outils de programmation parallèle DirectX, et Nvidia, qui offre le framework CUDA.

OpenCL inclut un langage de programmation de type C avec API pour gérer la distribution des noyaux sur le matériel. en tant que cœurs de processeur et autres ressources. OpenCL pourrait aider Mac OS à décoder la vidéo plus rapidement en distribuant le traitement des pixels entre plusieurs processeurs et unités de traitement graphique dans un système.

Tous les outils existants sont orientés vers différents environnements logiciels et tirent parti de différentes ressources, explique Patterson. OpenCL, par exemple, est plus orienté vers l'exécution de tâches sur les GPU. Les modèles propriétaires tels que DirectX sont difficiles à déployer dans des environnements informatiques hétérogènes, alors que certains modèles comme OpenCL s'adaptent uniquement aux environnements spécifiques reposant sur des GPU.

"Je ne pense pas que [OpenCL] sera adopté dans toutes les architectures." Patterson a dit. Il a dit entre-temps que nous devions essayer d'autres choses, comme essayer d'améliorer les modèles de programmation avec des outils de développement communément utilisés, comme Ruby on Rails, at-il dit.

Les membres du public ont souligné que le parallélisme Au cours des dernières décennies, les panélistes ont déclaré que les universités adoptent maintenant une nouvelle approche pour travailler sur de multiples outils de programmation afin de permettre le parallélisme. Après des années de financement du développement des puces, le gouvernement accorde également plus d'attention au traitement parallèle en finançant des programmes liés.

Kozyrakis a déclaré que Stanford a établi un laboratoire qui vise à "rendre le développement d'applications parallèles pour les masses" d'ici 2012 Les chercheurs travaillent avec des sociétés comme Intel, AMD, IBM, Sun, Hewlett-Packard et Nvidia.

Un test de tâche immédiat pour les développeurs pourrait être d'essayer de convertir le code existant en parallèle pour une exécution sur puces modernes, Berkeley's Patterson m'a dit. Quelques entreprises offrent la parallélisation automatique, mais réécrire et compiler le code existant initialement écrit pour l'exécution séquentielle pourrait être un grand défi.

"Il y a de l'argent à gagner dans ces domaines", a déclaré Patterson.