Parallélisation automatique

Parallélisation automatique

La Parallélisation automatique est une étape de la compilation d'un programme qui consiste à transformer un code source écrit pour une machine séquentiel en un exécutable parallélisé pour ordinateur à Symmetric multiprocessing. L'objectif de la parallélisation automatique est de simplifier et de réduire la durée de développement des programmes parallèles, qui sont notablement plus compliqués à écrire que les programmes séquentiels mais permettent des gains de vitesse sur les machines parallèles.

Les compilateurs pour assurer cette parallélisation ne sont en 2010 pas opérationnel pour un grand nombre de types d'algorithmes séquentiels, bien que quelques techniques soit mises en place depuis les années 2000[1]. Les grandes différences entre architectures, notamment au niveau de la gestion de la mémoire, compliquent la faisabilité de tels compilateurs.

Sommaire

Technique mise en place

La plus grande partie du temps d'exécution d'un programme se situe au niveau des boucles qui le composent. C'est donc sur cette partie que les compilateurs assurant la parallélisation automatique vont intervenir. Ils tentent de séparer les instructions d'une boucle de sorte que ses itérations puissent être exécutées sur des processeurs distincts simultanément.

Les langages de programmation à vocation parallèle disposent en outre d'instructions au mieux implicites, ou à défauts explicites qui facilitent le travail du processeur. Les langages comme SISAL, Haskell version parallèle, et Mitrion-C pour FPGA implémentent de telles instructions.

Voir aussi

Articles connexes

Références

  1. Shen, John Paul and Mikko H. Lipasti (2005). Modern Processor Design: Fundamentals of Superscalar Processors. McGraw-Hill Professional. p. 561. ISBN 0070570647. "However, the holy grail of such research - automated parallelization of serial programs - has yet to materialize. While automated parallelization of certain classes of algorithms has been demonstrated, such success has largely been limited to scientific and numeric applications with predictable flow control (e.g., nested loop structures with statically determined iteration counts) and statically analyzable memory access patterns. (e.g., walks over large multidimensional arrays of float-point data)."

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Parallélisation automatique de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Parallélisation de boucle — Les parallélisations de boucle sont des techniques d optimisation de boucle mises en œuvre au sein des compilateurs qui ont pour objectif d obtenir une parallélisation automatique efficace. En programmation concurrente, les parties de codes qui… …   Wikipédia en Français

  • Parallélisme (informatique) — Pour les articles homonymes, voir parallèle. Blue Gene L cabinet., un des ordinateurs massivement parallèle les plus rapides des années 2000 En informatiqu …   Wikipédia en Français

  • Cell (Processeur) — Pour les articles homonymes, voir Cell. Le Cell est un processeur conçu conjointement par IBM, Sony et Toshiba, révélé en février 2005. Il équipe notamment la console de jeu vidéo PlayStation 3 de Sony. Il est envisagé de produire également… …   Wikipédia en Français

  • Cell (processeur) — Pour les articles homonymes, voir Cell. Le Cell est un processeur conçu conjointement par IBM, Sony et Toshiba, révélé en février 2005. Il équipe notamment la console de jeu vidéo PlayStation 3 de Sony. Il est envisagé de produire également… …   Wikipédia en Français

  • Intel C++ Compiler — Développeur Intel Dernière version …   Wikipédia en Français

  • Intel Ct — est un modèle de programmation développé par Intel. Il a pour but de tirer part des capacité des futurs processeurs de la firme et de la multiplicité de leurs cœurs d execution. Il est utilisé dans le cadre du projet Tera Scale. C est une… …   Wikipédia en Français

  • Developpement rapide d'applications — Développement rapide d applications Pour les articles homonymes, voir RAD. La méthode de développement rapide d applications, dite méthode RAD[1] (acronyme de l anglais Rapid Application Development), est la première méthode de développement de… …   Wikipédia en Français

  • Développement Rapide D'applications — Pour les articles homonymes, voir RAD. La méthode de développement rapide d applications, dite méthode RAD[1] (acronyme de l anglais Rapid Application Development), est la première méthode de développement de logiciels où le cycle de… …   Wikipédia en Français

  • Développement rapide d'applications — Pour les articles homonymes, voir RAD. La méthode de développement rapide d applications, dite méthode RAD[1] (acronyme de l anglais Rapid Application Development), est la première méthode de développement de logiciels où le cycle de… …   Wikipédia en Français

  • Rapid Application Development — Développement rapide d applications Pour les articles homonymes, voir RAD. La méthode de développement rapide d applications, dite méthode RAD[1] (acronyme de l anglais Rapid Application Development), est la première méthode de développement de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”