• Aucun résultat trouvé

Evolution des architectures parall`eles ´

1.2 Evolution des nœuds de calcul au sein des grappes ´

Bien que les grappes de calcul s’appuient sur du mat´eriel standard, les ordinateurs utilis´es sont g´en´eralement des mod`eles haut de gamme en termes de puissance et de performance. Les premi`eres grappes de calcul historiques ´etaient constitu´ees de simples stations de travail monoprocesseurs, mais les grappes ont tr`es vite int´egr´e des architectures compos´ees de plusieurs processeurs. Ces machines multiprocesseurs offraient ainsi une augmentation notable de la puissance de calcul tout en conservant un rapport performance/prix int´eressant. Par exemple, la grappe du LLNL4 cons-truite par LINUX NETWORX et QUADRICSet class´ee en cinqui`eme place du Top500 en 2002,

´etait compos´ee de 1152 machines bi-processeurs INTELXEONcadenc´es `a 2.4 GHz.

Ces architectures, dites SMPs (Symmetric MultiProcessing) int`egrent plusieurs processeurs con-nect´es `a la m´emoire via un mˆeme bus comme illustr´e sur la figure 1.7. Elles augmentent ainsi le nombre de ressources de calcul par nœud, mais ins`erent un second niveau de parall´elisme au sein des grappes, qui disposent ainsi de parall´elisme externe et interne. Sur ces architectures, les acc`es m´emoire effectu´es par les diff´erents processeurs peuvent ˆetre source de contention au niveau du bus qui devient alors un v´eritable goulot d’´etranglement. Les machines SMP poss`edent ainsi un nombre restreint de processeurs, le plus souvent deux ou quatre et rarement plus de seize.

cache

CPU

cache

CPU

cache

CPU

cache

CPU Mémoire

FIGURE1.7 –Architecture SMP.

Le calcul haute performance a ´egalement profit´e des innovations apport´ees au sein des processeurs par les fondeurs, offrant toujours plus de puissance grˆace `a l’augmentation de la fr´equence. La technologie se heurte aujourd’hui `a une barri`ere thermique qui limite cette fr´equence, contraignant les constructeurs `a d´eployer de nouvelles m´ethodes pour accroˆıtre l’efficacit´e des ordinateurs.

Alors que les progr`es de miniaturisation lib`erent de l’espace sur les puces, la solution choisie par les constructeurs s’est orient´ee vers le parall´elisme. Avec l’ajout ou la duplication de composants, les processeurs ont ainsi gagn´e en performance mais aussi en complexit´e. Le d´eveloppement et la

4. Lawrence Livermore National Laboratory

1.2. ´Evolution des nœuds de calcul au sein des grappes 17

recherche dans ce domaine ont abouti `a la g´en´eralisation du parall´elisme interne aux processeurs dont les derni`eres g´en´erations ´equipant les PCs de bureau disposent ainsi de plusieurs “cœurs”.

1.2.1 La r´evolution du multicœur

Fr´equence et miniaturisation : des machines monoprocesseurs au multicœur

Les conjectures de Moore annonc¸aient une multiplication par deux de la densit´e des transistors sur les microprocesseurs tous les deux ans. Grˆace `a l’am´elioration de la finesse de gravure, cette pr´ediction s’est r´ev´el´ee exacte pendant de nombreuses ann´ees et s’est traduite par une augmenta-tion de la fr´equence et de la puissance des processeurs. Alors que celle-ci semblait compromise par les probl`emes de dissipation thermique qui plafonnent les fr´equences des processeurs autour de 4 GHz, les progr`es de miniaturisation ont relanc´e l’´evolution des processeurs et de leurs perfor-mances. En une trentaine d’ann´ees, nous sommes pass´es de microprocesseurs de quelques milliers de transistors, 29000 par exemple pour le 8086 d’INTEL(1979), `a plusieurs milliards de transistors avec 2,3 milliards pour le Nehalem-EX Xeon octo-cœur sorti en mars 2010.

Dans un premier temps, le gain de place a permis aux constructeurs d’ajouter des composants `a leurs processeurs (registres, pipelines, pr´ediction de branchement, r´eordonnancement d’instruc-tions, etc) produisant des processeurs de plus en plus riches et sophistiqu´es. Parmi les ´evolutions marquantes, on pourra noter la naissance des processeurssuperscalairesqui permettent l’ex´ecution simultan´ee de plusieurs instructions d’un programme s´equentiel lorsque la d´ependance des donn´ees le permet, chacune dans un pipeline diff´erent.

Dans la recherche au perfectionnement, les constructeurs ont mis en place des techniques telles que leSimultaneous MultiThreading (SMT, appel´e HyperThreading chez INTEL), pour alimen-ter aux mieux les multiples unit´es fonctionnelles. Cette technologie autorise l’utilisation concur-rente d’un pipeline par plusieurs flots d’ex´ecution (threads). Elle offre un premier niveau de pa-rall´elisme perc¸u comme desprocesseurs virtuels (processeurs logiques). En pratique, si le gain de performances apparaˆıt notable dans certains cas, il semble discutable dans d’autres [45]. Une d´et´erioration est mˆeme possible, par exemple lorsque les threads concurrents utilisent le mˆeme type d’instructions (flottantes, enti`eres,...). Ces r´esultats incertains poussent g´en´eralement les scienti-fiques `a d´esactiver ce m´ecanisme pour le calcul intensif.

Aujourd’hui, plutˆot que de complexifier davantage les processeurs d´ej`a tr`es sophistiqu´es, la mi-niaturisation permet de graver directement plusieurs processeurs sur une mˆeme puce (Figure 1.9), on parle alors de processeursmulticœurs.Les puces multicœurs sont la voie de d´eveloppement choisie par les fondeurs et constituent le noyau des architectures actuelles.

cache

CPU

FIGURE1.8 –Processeur sans cœur.

Cœur1 cache

Cœur2

cache cache

FIGURE1.9 –Puce bi-cœur.

Une organisation hi´erarchique

Tous les grands constructeurs proposent d´esormais des d´eclinaisons multicœurs de leur proces-seurs. Ces derni`eres ann´ees ont marqu´e une diffusion des puces bi-cœurs et quadri-cœurs, qui sont devenues le standard du march´e grand public. Les processeurscore i, derni`ere g´en´eration de puces propos´ees par le constructeur INTEL, sont par exemple compos´ees de 2 ou 4 cœurs hyper-thread´es, (voire mˆeme 6 cœurs hyperthread´es pour lecore i7-980X). La tendance du multicœur se retrouve mˆeme dans les consoles de jeu comme en t´emoignent le succ`es de la PLAYSTATION 3,

´equip´ee d’un processeur multicœur h´et´erog`ene, le Cell B.E., ou de la XBOX360 qui dispose d’un processeur Xenon `a trois cœurs produit par IBM.

Les fondeurs offrent ´egalement pour les centres de calcul des variantes haut de gamme `a 6, 8 o`u 12 cœurs, tel que le processeurMagny-Cours[59] propos´e par AMD depuis mars 2010, voire bientˆot 16 cœurs avec le processeurInterlagosannonc´e pour 2011.

Les multicœurs ont la particularit´e de regrouper plusieurs processeurs sur une mˆeme puce, pro-duisant ainsi des machines multiprocesseurs `a moindre coˆut. De la mˆeme fac¸on que les machines SMPs, chaque cœur acc`ede `a la m´emoire au travers d’un bus ou r´eseau d’interconnexion. L’orga-nisation des puces multicœurs n’est cependant pas assimilable `a celle de ces architectures plates et varie par la pr´esence de ressources partag´ees entre les cœurs, notamment les zones de m´emoire cache. En effet, la multiplication des composants au sein des processeurs a introduit la duplication descaches. Diff´erents niveaux de cache, de tailles et de vitesses vari´ees sont souvent juxtapos´es sur le processeur pour r´epondre aux besoins h´et´eroclites des applications. Sur les puces multicœurs, certains niveaux de cache peuvent ˆetre partag´es entre plusieurs des unit´es de calcul comme illustr´e par la Figure 1.9.

Il en r´esulte ainsi une hi´erarchie de cache dont l’organisation varie selon les mod`eles et les construc-teurs. La Figure 1.10 pr´esente la structure d’une puce 6 cœurs INTELXeon Dunnington. Sur cet exemple chaque cœur dispose de son propre cache L1. Un cache L3 est commun `a l’ensemble des cœurs tandis que les caches L2 sont associ´es `a des paires de cœurs.

Cœur 3

FIGURE1.10 –Puce hexa-cœurINTELXeon Dunnington X7460.

L’agencement des diff´erents niveaux de cache est responsable d’affinit´es entre les cœurs. Et effet, un cache commun `a deux cœurs permet un partage de donn´ees entre les processus qui s’ex´ecutent sur ces cœurs. Tant que les donn´ees tiennent dans le cache, les performances peuvent en ˆetre consid´erablement am´elior´ees (Section 2.3). Au contraire, une utilisation concurrente du cache peut avoir un effet d´egradant sur les performances, chaque processus ne disposant concr`etement que de la moiti´e de celui-ci. Combin´e avec le partage de la bande passante du bus en dehors de la puce, les performances des machines multicœurs subissent un fort impact des acc`es concurrents.

Avec la diffusion des puces multicœurs, les grappes de calcul sont le plus souvent articul´ees autour

1.2. ´Evolution des nœuds de calcul au sein des grappes 19

de machines multiprocesseurs-multicœurs. Les processeurs des machines SMP sont ainsi rem-plac´es par des puces multicœurs comme illustr´e en Figure1.11. Le mod`ele simple et uniforme des architectures SMPs est ainsi complexifi´e par la hi´erarchie de cache int´egr´ee au sein des puces, qu’il devient impossible d’ignorer dans la recherche de performance. De plus, le probl`eme de passage

`a l’´echelle de ces architectures est amplifi´e par l’augmentation du nombre de cœurs qui g´en`erent d’autant plus d’acc`es concurrents sur le bus m´emoire.

C1 C2 Mémoire

C1 C2 C1 C2 C1 C2

FIGURE1.11 –Architecture SMP multicœurs.

1.2.2 Le retour du NUMA

Pour cr´eer des machines parall`eles de grande taille, il est indispensable de pallier la congestion suscit´ee par l’acc`es `a la m´emoire via un unique bus. Une solution courante, d´evelopp´ee dans les ann´ees 90, consiste `a distribuer la m´emoire en diff´erentsbancs m´emoire. Il en r´esulte des architectures multiprocesseurs `a m´emoire partag´ee, compos´ees de plusieurs ensembles “banc m´emoire -processeurs” appel´esnœuds et reli´es au travers d’un commutateur ou d’un r´eseau d’interconnexion (Figure 1.12).

FIGURE1.12 –Architecture NUMA multicœur `a quatre nœuds.

De telles machines sont dites `a acc`es m´emoire non uniformes (Non Uniform Memory Access).

Les temps d’acc`es m´emoire d´ependent de la position relative du processeur et de la m´emoire acc´ed´ee. La latence d’acc`es `a la m´emoirelocale(sur le mˆeme nœud que le processeur) est plus faible que celle d’un acc`es `a la m´emoiredistantefait au travers du r´eseau d’interconnexion. Cette non-uniformit´e est quantifi´ee par unfacteur NUMA (voire plusieurs dans le cas de machines `a topologie complexe ou hi´erarchique). Ce facteur ´equivaut au rapport entre le temps d’acc`es `a la m´emoire distante et celui `a la m´emoire locale, et varie fortement selon les architectures.

La complexification des architectures et l’entr´ee en sc`ene des puces multicœurs, a suscit´e un regain d’int´erˆet pour ces structures qui se multiplient dans le domaine du calcul haute performance grˆace

`a la cr´eation de nouvelles technologies d’interconnexion.

De nouveaux r´eseaux d’interconnexion

Une m´ethode classique pour concevoir une architecture NUMA consiste `a assembler plusieurs architectures de type SMP autour d’un r´eseau interne d’interconnexion. Un grand nombre de ser-veurs ont ´et´e bˆatis sur ce mod`ele. C’est le cas des serser-veurs bas´es sur les processeurs ITANIUM

d’INTELtr`es pr´esents il y a quelques ann´ees, tels que les machines BULL NOVASCALE (assem-blage de plusieurs QBB (Quad Building Block) comprenant chacun de 2 ou 4 processeurs), ou les serveurs ALTIXde la soci´et´e SGI regroupant jusqu’`a plusieurs centaines d’Itanium. Le facteur NUMA de ces architectures variait g´en´eralement entre 1 et 3.

Par opposition `a ces architectures r´eguli`eres, sont apparues il y a quelques ann´ees de nouvelles architectures NUMA grˆace au d´eveloppement de nouveaux syst`emes d’interconnexion. L’assem-blage de plusieurs bus m´emoire par un r´eseau d’interconnexion d´edi´e ´etant on´ereux, AMD a d´evelopp´e le syst`eme HYPERTRANSPORT [39, 40], souvent appel´e bus mais qui est en fait un r´eseau d’interconnexion.

Plutˆot que d’ˆetre connect´e `a un bus m´emoire centralis´e, les processeurs AMD OPTERON [41]

sont connect´es `a plusieursliensHYPERTRANSPORT (1 `a 4 suivant les mod`eles). Chaque proces-seur est dot´e d’un contrˆoleur m´emoire et poss`ede son propre banc m´emoire qui lui est directe-ment connect´e par un lien HYPERTRANSPORT (Figure 1.13), faisant de chaque ensemble “banc m´emoire/processeur” un nœud NUMA. Les machines multiprocesseurs OPTERON sont ainsi ca-ract´eris´ees par des connexions “point-`a-point” au travers des liens d’interconnexion. Le temps d’acc`es aux nœuds NUMA, ou aux p´eriph´eriques d’entr´ees-sorties (eux aussi connect´es `a un lien), est d´etermin´e par le nombre de liens travers´es, et on observe des facteurs NUMA variant entre 1 et 2 [42].

Ce syst`eme de connexion a permis aux processeurs OPTERON de se d´emarquer des processeurs concurrents. Il offrait en effet une bande passante de tr`es loin sup´erieure `a celle des bus m´emoire utilis´es avec des processeurs INTEL, ainsi qu’une latence in´egal´ee jusqu’`a la sortie des Core2 en 2006. Ces architectures ont ainsi connu un large succ`es dans le monde du calcul scientifique, repr´esentant jusqu’`a 22% des syst`emes du Top500 [5] en 2007.

La r´eponse d’INTEL face `a cette technologie est le syst`eme d’interconnexion QUICKPATH IN

-TERCONNECT(QPI), qui remplace d´esormais le bus m´emoire externe bidirectionnel (Front Side Bus) dans ses nouvelles architectures (Nehalem [43], Tukwila & brothers). On retrouve un sch´ema

´equivalent au syst`eme d’AMD : chaque processeur dispose d’un contrˆoleur m´emoire int´egr´e et

1.2. ´Evolution des nœuds de calcul au sein des grappes 21

FIGURE1.13 –Processeur Opteron.

se trouve reli´e `a un banc m´emoire local, `a d’autres processeurs, ou `a des p´eriph´eriques d’entr´ees-sorties au travers d’un lien d’interconnexion. Le d´ebit record annonc´e pour ce syst`eme d’inter-connexion, 25,6 Gbit/s (6.4 GigaTransferts/s par lien) [44], pour une fr´equence de 3.2GHz, et la popularit´e des derniers processeurs INTELont replac´e ce constructeur comme leader du march´e du HPC. La technologie QPI est ainsi int´egr´ee dans 64,4% des machines du TOP500 contre 13,8%

pour AMD HYPERTRANSPORT. La version 3.1 de la technologie HYPERTRANSPORT, parue quelques mois apr`es la sortie QPI expose cependant des performances comparables `a celle-ci, avec 25,6 Gbit/s (6.4 GigaTransferts/s par lien) pour 3.2GHz de fr´equence.

L1 L1

FIGURE1.14 –Quadri-processeur AMD Opteron quadri-cœur Barcelona 8347HE.

Grˆace `a ces technologies, les architectures NUMA multicœurs sont devenues tr`es populaires au sein des grappes de calcul. La Figure 1.14 illustre la structure hi´erarchique complexe que peut avoir un nœud calcul (ici un quadri-processeur quadri-cœur AMD OPTERON de notre pla-teforme de test). Cette architecture n’est bien sˆur qu’un exemple parmi d’autres et les organisa-tions sont propres aux diff´erentes plateformes propos´ees par les constructeurs. Elles pr´esentent des hi´erarchies de caches vari´ees, une ou plusieurs sockets5par nœud NUMA, (voire mˆeme plusieurs nœuds NUMA par socket pour les derniers processeurs OPTERON), disposent ou non d’hyper-threading, emploient diff´erentes strat´egies de num´erotation des cœurs, etc. La cons´equence directe

5. “Puces physiques” pouvant ˆetre juxtapos´ees sur le processeur.

de la complexification topologique et d’une telle vari´et´e d’organisation est une difficult´e croissante

`a exploiter proprement ces machines contemporaines, marqu´ees par d’importantes contraintes de localit´e. En effet, comme nous le verrons en Section 2.3, la forte structure hi´erarchique interne `a chaque nœud a un impact crucial sur les performances des applications.

1.2.3 Tendances : une complexification grandissante

Il y a quelques ann´ees on entendait parler de futures machines `a plusieurs centaines de cœurs [12].

Aujourd’hui, les probl´ematiques de passage `a l’´echelle et de hi´erarchisation mises `a jour avec la diffusion du multicœurs ont recadr´e ces pr´evisions. La tendance actuelle reste toutefois `a l’int´egra-tion de composants au sein des puces. Alors que les progr`es de miniaturisal’int´egra-tion ont permis aux fon-deurs de perfectionner leurs processeurs jusqu’aux limites de la sophistication, puis de multiplier les cœurs, l’espace lib´er´e permet aujourd’hui d’explorer le potentiel d’int´egration de composants externes au sein des processeurs.

Les plateformes CENTRINOd’Intel destin´ees aux ordinateurs portables offraient d´ej`a une juxtapo-sition de composants sur une mˆeme puce pour r´eduire la consommation ´electrique. En pratique, la v´eritable int´egration logique a commenc´e avec l’ajout du contrˆoleur m´emoire HYPERTRANSPORT

au sein des processeurs OPTERON, pour multiplier les performances m´emoire. Le contrˆoleur QPI a ensuite ´et´e int´egr´e dans les Nehalem sur le mˆeme principe. Apr`es le contrˆoleur m´emoire, on assiste `a l’int´egration des contrˆoleurs d’entr´ees-sorties annonc´ee pour les nouvelles g´en´erations de processeurs INTEL(Sandy-Bridge) et AMD (Bulldozer).

En parall`ele, la course `a la performance et l’introduction de probl´ematiques de consommation

´electrique (Green Computing) a engendr´e l’explosion de la recherche concernant l’utilisation de processeurs graphiques (GPU) ou de processeurs h´et´erog`enes tels que le Cell. L’utilisation de plateformes h´et´erog`enes combinant des GPUs et des CPUs s’est ainsi install´ee dans le domaine du HPC [5]. Aujourd’hui ces tendances se rejoignent avec l’annonce du processeur AMD Fusion qui int´egre des GPUs dans le processeur [7].

Les g´en´erations futures de processeurs s’annoncent ainsi marqu´ees par une h´et´erog´en´eit´e et une complexification grandissante. Les sp´eculations sur les plateformes `a venir mentionnent la g´en´era-lisation de l’h´et´erog´en´eit´e et l’abandon de coh´erence de cache. De tels changements augurent ainsi de nouveaux niveaux de hi´erarchie, et de v´eritables d´efis pour les programmeurs qui devront adapter les mod`eles de programmation `a ces structures.