• Aucun résultat trouvé

Article pp.947-950 du Vol.25 n°7 (2006)

N/A
N/A
Protected

Academic year: 2022

Partager "Article pp.947-950 du Vol.25 n°7 (2006)"

Copied!
4
0
0

Texte intégral

(1)

CHRONIQUE

La fin du chemin pour les architectures uniprocesseurs : place au parallélisme de processus sur un seul composant

La domination des architectures uniprocesseurs

Les architectures de calculateurs parallèles ont fait l’objet de recherches depuis le milieu des années 1960, et des systèmes multiprocesseurs parallèles ont été commercialisés depuis la fin des années 1970. Cependant, force est de constater que depuis les débuts de l’industrie informatique, l’essentiel des systèmes matériels vendus a été des systèmes uniprocesseurs, à la fois en nombre, mais aussi en marché global.

Au cours des 50 dernières années, les progrès de la miniaturisation des transistors ont permis de passer des composants discrets à l’intégration sur un seul composant d’un milliard de transistors. De plus, on est aujourd’hui capable de cadencer un processeur à des fréquences de plusieurs gigahertz et on est capable de produire des composants mémoire de plusieurs gigabits. La pseudo-loi de Moore (doublement du nombre de transistors sur un composant, doublement de la taille mémoire et doublement de la fréquence de fonctionnement tous les 18 mois) a été respectée jusqu’ici. Un PDA d’aujourd’hui dispose de plus puissance de calcul et de plus de mémoire qu’un PC d’il y a 10 ans qui lui même était aussi performant qu’un superordinateur d’il y a 25 ans.

Des machines parallèles ont été construites à partir de toutes les générations de processeurs depuis près de 20 ans. Par exemple, des multiprocesseurs à mémoire partagée, que ce soit de petits multiprocesseurs (jusqu’à 8 processeurs), ou des machines de gros projets à plusieurs milliers de nœuds dédiés à des applications ciblées gros calcul scientifiques. Des systèmes à mémoires distribuées ont aussi été réalisées (on se souvient par exemple de l’échec commercial des IPSC, CM5...) ; elles sont remplacées aujourd’hui par les clusters de PCs et clusters de clusters.

Cependant, l’utilisation des machines parallèles généralistes est jusqu’à présent restée marginale. Cet échec relatif est lié à deux facteurs conjugués. Tout d’abord, le facteur économique. En premier lieu, le coût d’un multiprocesseur croît super linéairement avec le nombre de processeurs. En second lieu, les performances étaient jusqu’à présent décevantes : jusqu’à très récemment, les constructeurs étaient incapables d’utiliser la dernière génération de processeurs. En troisième lieu, le problème de passage à l’échelle n’a pas été résolu : la cohérence de cache par

Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com

(2)

948 RSTI - TSI – 25/2006. Architecture des ordinateurs

espionnage de bus ne permet pas de connecter efficacement plus de 4 ou 8 processeurs. Le second facteur de l’échec relatif des machines parallèles est la pauvreté du catalogue des applications parallèles. Cette pauvreté est liée à la difficulté d’écrire des applications parallèles, à l’échec relatif de la parallélisation automatique et aussi au problème de la poule et de l’œuf du développement de logiciel pour les machines parallèles.

La responsabilité des microarchitectes

Nous, les architectes de microprocesseur, avons aussi une grande responsabilité ou plutôt un grand mérite dans cet échec relatif des machines parallèles. L’industrie électronique a apporté les transistors et la fréquence de fonctionnement. Nous avons trouvé comment transformer ces transistors en performance dans un monoprocesseur. Les spécialistes de compilation ont aussi apporté une grande contribution.

Alors que le temps d’accès à la mémoire principale reste de l’ordre de 100 ns, que la sémantique du programme est séquentielle, et que la durée de la vie d’une instruction (de son chargement à sa validation) est de l’ordre de 10 à 20 ns, un processeur haute performance est capable d’exécuter jusqu’à 4 instructions par cycle de 0,3 ns. Ceci a été rendu possible par l’utilisation de plusieurs techniques de microarchitecture.

Ainsi, tous les processeurs utilisent l’exécution pipeline, c’est-à-dire le recouvrement de l’exécution d’instructions successives. Le parallélisme d’instruction est aussi utilisé systématiquement : plusieurs instructions sont chargées à chaque cycle, puis décodées et exécutées dès lors que les instructions sont indépendantes.

Afin de permettre un débit maximum au processeur, l’exécution des instructions est réalisée dans un ordre différent de celui du programme, mais en respectant les dépendances des instructions.

Cependant, nourrir le cœur d’exécution en instructions impose de connaître ces instructions, mais la cible et la direction d’un branchement ne sont connues que très tardivement dans le pipeline. Les branchements sont donc prédits. Les instructions sont chargées, décodées et souvent même exécutées de manière spéculative avant même de savoir si elles seront réellement utiles. De la même manière, afin de briser les chaînes de dépendances, les (in)dépendances entre accès mémoire sont prédites et des formes simplifiées de prédiction de résultats d’opération sont utilisées.

Enfin, la plus grande partie des transistors du composant est utilisée pour construire une hiérarchie de caches permettant de donner l’illusion que la mémoire répond en quelques cycles. Des mécanismes de préchargement matériels et logiciels sont utilisés pour encore améliorer ce comportement de la mémoire.

Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com

(3)

Chronique 949

La fin de la route des uniprocesseurs

Jusqu’au début des années 2000, les micro-architectes ont été capables de proposer de nouvelles améliorations à tous ces mécanismes en utilisant les nouvelles possibilités d´intégration. Cependant, nous nous heurtons aujourd’hui à plusieurs difficultés qui limitent les gains de performance que les techniques traditionnelles de micro-architecture apportent. Tout d’abord, le parallélisme d’instruction présent dans les applications est limité : il existe peu d’applications où ce parallélisme potentiel est supérieur à 10.

D’autre part, plusieurs chemins ou unités du processeur ont une complexité (plus que) quadratique en nombre d’instructions exécutées en parallèle. Les distances relatives entre les unités fonctionnelles d’un processeur augmentent si l’on augmente ce nombre d’unités. Il n’est pas sûr qu’à technologie égale un processeur supercalaire 8 voies soit plus efficace qu’un processeur supersaclaire 4 voies sur toutes les applications, surtout depuis que la densité d’intégration oblige les concepteurs à tenir compte des problèmes de consommation électrique et des points critiques de température.

Enfin, le temps de conception et de mise au point d’un cœur de processeur superscalaire 4 voies est déjà très long et le coût de la conception d’un processeur 8 voies serait prohibitif.

L’avènement du parallélisme de processus sur un composant

Pour les fondeurs de processeurs, la survie a toujours passé par l’augmentation des fonctionnalités et des performances. Aujourd’hui, pour tous les fondeurs, l’augmentation des performances des « processeurs » généralistes passe par le parallélisme de processus. Deux voies sont utilisées : le multiflôt simultané (SMT) et les multiprocesseurs sur un seul composant (CMP). Le SMT est particulièrement attrayant pour les micro-architectes : il s’agit de profiter des unités sous-utilisées d’un processeur superscalaire pour exécuter des processus concurrents quand de tels processus sont disponibles. Le CMP consiste simplement à répliquer sur le composant plusieurs cœurs d’exécution et à leur faire partager une partie de la hiérarchie mémoire : il s’agit de mettre un petit multiprocesseur sur un seul composant.

Aujourd’hui, Intel tente d’imposer sur le marché des processeurs dual-core SMT à 2 processus. D’ici quelques années, on verra sans doute des processeurs à 4 ou 8 cœurs d’exécution SMT à 2 ou 4 processus.

Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com

(4)

950 RSTI - TSI – 25/2006. Architecture des ordinateurs

Est ce raisonnable ?

Pour construire de petits multiprocesseurs, l’approche CMP est très attrayante.

Cependant, force est de constater que pour le moment, peu d’applications commerciales exploitent efficacement le parallélisme de processus sur un composant : d’un point de vue fonctionnalités et performances, l’intérêt d’avoir un processeur dual-core SMT sur son PC est pour l’instant négligeable pour la majorité des utilisateurs. Cependant, les fondeurs (Intel et AMD) veulent maintenir le prix moyen des processeurs qu’ils vendent : ils feront tout pour imposer au marché grand public des composants CMP pour l’instant surdimensionnés par rapport à l’offre logicielle.

Une opportunité pour l’industrie du logiciel parallèle

Une opportunité unique s’offre à l’industrie du logiciel parallèle. Le parallélisme matériel de processus se généralise : l’industrie du logiciel se doit de l’exploiter.

L’écriture d’applications et l’optimisation de leurs performances pour les processeurs multicœurs SMT représentent un challenge important : il faudra écrire des applications parallèles avec un nombre modéré de processus (8 ? 32 ?), prendre en compte plusieurs niveaux de partage (partage hiérarchique des processeurs, des caches de premier niveau, puis de second niveau) et prendre en compte la compétition de tous les processus pour la bande passante mémoire.

Et après ?

Le futur des « processeurs » dépendra beaucoup de la réussite du logiciel parallèle pour les 2 ou 3 premières générations de ces processeurs multiprocessus.

Dans le cas relativement probable d’un échec relatif de l’industrie du logiciel parallèle, les micro-architectes étudient quelques pistes pour exploiter le parallélisme de processus sur une charge de travail séquentielle ou peu parallèle. Par exemple, pour augmenter les performances, les cœurs inutilisés peuvent par être utilisés par des processus spéculatifs. Pour permettre l’utilisation d’une fréquence de fonctionnement plus élevée sur les charges monoprocessus, on peut utiliser la migration de processus afin d’éviter les problèmes liés à la température. Enfin la fiabilité des calculs peut être mieux garantie par la réplication des calculs sur deux cœurs.

André Seznec IRISA/INRIA, Rennes seznec@irisa.fr

Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com

Références

Documents relatifs

Celui des « Les virus émergents » a été rédigé par deux chercheurs de l’Institut Pasteur : Antoine Gessain, spé- cialiste de l’épidémiologie des virus oncogènes, et

23-27 JUILLET 2006 Glasgow (GB) BioScience 2006 www.bioscience2006.org. 29 JUILLET-1 er AOÛT 2006 Omaha,

M is en mots et en images de façon accessible, on voit quelques exemples de recherche fondamentale dont les applications ne sont pas évidentes immédiatement mais qui deviennent

B éatrice de Montera, biologiste de formation et impliquée dans l’éthique du clonage, s’efforce de tracer la limité entre « l’amélioration » (que l’on peut ima- giner,

14-15 MARS 2006 Palais des Congrès, Paris Profession : Bio-Entrepreneur 2006, Entreprendre en biotech santé. Ces journées sont organisées dans le cadre de Medec, salon européen de

Un cadre formel pour la spécification multivue de systèmes avioniques, 43-72 Une approche multiagent pour la gestion de la communication dans les réseaux. de capteurs sans

[r]

Ainsi, dans ce numéro, nous trouvons un premier article relatif aux architectures reconfigurables qui, depuis maintenant une bonne quinzaine d’années, sont sources d’inspiration