Schemas de communications globales dans les reseaux de processeurs : application a la grille torique
|
|
|
- Didier Généreux
- il y a 10 ans
- Total affichages :
Transcription
1 Schemas de communications globales dans les reseaux de processeurs : application a la grille torique Philippe Michallon To cite this version: Philippe Michallon. Schemas de communications globales dans les reseaux de processeurs : application a la grille torique. Réseaux et télécommunications [cs.ni]. Institut National Polytechnique de Grenoble - INPG, Français. <tel > HAL Id: tel Submitted on 5 Feb 004 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
2 THESE prçesentçee par Philippe MICHALLON pour obtenir le titre de DOCTEUR de l'institut NATIONAL POLYTECHNIQUE DE GRENOBLE èarr^etçe ministçeriel du 30 Mars 199è Spçecialitçe:Mathçematiques Appliquçees =========================================== SCHEMAS DE COMMUNICATIONS GLOBALES DANS LES RESEAUX DE PROCESSEURS : APPLICATION A LA GRILLE TORIQUE =========================================== Date de soutenance : 5 frçevrier 1994 Composition du jury : Prçesident Guy MAZARE Rapporteurs Jean-Claude BERMOND Michel COSNARD Yousef SAAD Examinateurs Denis TRYSTRAM Gilles VILLARD Thçese prçeparçee au sein du Laboratoire de Modçelisation et de Calcul
3 THESE prçesentçee par Philippe MICHALLON pour obtenir le titre de DOCTEUR de l'institut NATIONAL POLYTECHNIQUE DE GRENOBLE èarr^etçe ministçeriel du 30 Mars 199è Spçecialitçe:Mathçematiques Appliquçees =========================================== SCHEMAS DE COMMUNICATIONS GLOBALES DANS LES RESEAUX DE PROCESSEURS : APPLICATION A LA GRILLE TORIQUE =========================================== Date de soutenance : 5 frçevrier 1994 Composition du jury : Prçesident Guy MAZARE Rapporteurs Jean-Claude BERMOND Michel COSNARD Yousef SAAD Examinateurs Denis TRYSTRAM Gilles VILLARD Thçese prçeparçee au sein du Laboratoire de Modçelisation et de Calcul
4 A mes parents, A ma sçur, Et ça tous ceux que j'aime..
5 Remerciements Cette thçese n'aurait pas vu le jour sans un certain nombre depersonnes que je tiens ça remercier ici. Guy Masare pour m'avoir fait l'honneur de prçesider le jury. Jean-Claude Bermond et Michel Cosnard pour avoir acceptçe de juger ce travail malgrçe des emplois du temps trçes chargçes. Je tiens ça les remercier tous les deux, pour leurs remarques qui m'on permis de corriger ou de reprendre de nombreux points de cette thçese. Je remercie tout particuliçerement Youcef Saad pour avoir acceptçe d'eæectuer un rapport malgrçe les contraintes temporelles. Gilles Villard pour ses nombreux conseils au cours de ces trois annçees, et son esprit de synthçese qui m'on permis de ne pas m'çegarer en cours de chemin. Et surtout celui qui est ça l'origine de ce travail, mon directeur de thçese, Denis Trystram, sans qui je n'aurais jamais dçecouvert le parallçelisme. Je le remercie pour avoir su guider mes recherches durant ces annçees. Malheureusement pour lui, il a çechouçe dans ses tentatives de conversion au yoga et ça son fameux rçegime de ëpçepins de pomme". Chunty! Chunty! tu rçeussiras avec d'autres thçesards!! Je tiens çegalement ça remercier toutes les personnes de RUMEUR avec qui j'ai participçe ça la rçedaction du LIVRE èvu le temps consacrçe, il faut au moins des majuscules!è et ça l'çecole d'çetçe: Anne, Dominique, Marie-Claude, Andrçe, Emmanuel, Jean-Claude, Denis, Michel, Pierre. Pour la prochaine çecole je propose les Bahamas, qu'en pensez-vous? Je tiens tout particuliçerement ça remercier Jean-Claude avec qui j'ai travaillçe, pour m'avoir appris la rigueur, tout en travaillant dans la bonne humeur de la crçeche d'i3s. Michel avec qui j'ai partagçe la rçedaction et la gestion du LIVRE et surtout la saturation du rçeseau national èmode d'emploi: envoyer par mail un æchier de plusieurs mçegas ça plusieurs destinataires dispersçes aux quatre coins de la France. Le faire de prçefçerence la veille d'un long week-endè et de pas mal de dçelire autour d'une Guiness. Je remercie çegalement les autres membres du groupe RUMEUR pour leurs discussions et leur bonne humeur. Mention spçeciale ça Dominique l'çnologue du groupe. Je tiens ça remercier tous les membres des çequipes du laboratoire : Brigitte, Françcoise, les Jacques, Jean-Marc, Jean-Louis, Abdel, et j'en oublie... pour leur accueil, leurs conseils et tout ce qui fait la remarquable ambiance de ce groupe. Je remercie trçes vivement Nathalie et Christophe pour leurs nombreuses relectures et corrections. Sans eux je n'aurais jamais pu ænir avant le dçepart de mes rapporteurs pour le Chili. Au cours de cette thçese, j'ai croisçe plusieurs gçençerations de thçesards.
6 Honneur aux plus anciens, Isabelle, Denis èdit DDè, Didier èdit la Marmotteè, Jean-Yves ècapable de vendre un parapluie ça un Touhareg au milieu de Saharaè, Yvan èdit Nounouilleè, Françcois èdit Ptigasè. Ensembles nous avons passçe de nombreuses heures de rigolade autour de boites de Coca-Cola et devant les rayons de la FNAC. C'çetait la grande çepoque des Mickeys. Puis il y eut ma gçençeration de thçesard. Commençcons galanterie oblige par les demoiselles et plus spçecialement par ma voisine de bureau. Bravo Nathalie, tu as rçeussi ça me supporter prçes de quatre ans dans le m^eme bureau!! Merci aussi pour tes dçelicieuses mousses au chocolat et tes recettes de g^ateau. Cçecile avec qui j'ai beaucoup discutçe, qui me remontait le moral quand celui-ci çetait au plus bas et qui chemin faisant ça rencontrer Yves le bidouilleur fou du labo. Sans oublier Laurent èle dr^omoisè le plus cool du labo, Jao Paulo, Paulo, Ricardo èle trio brçesilien du laboè pour les nombreuses discussions tant scientiæques que sportives èfootball et formule 1è. Il y a aussi Frçedçeric èdit Fred ou le cha..e! non je ne l'ai pas ditè, Thierry èdit Titouè, les deux sportifs du labo. Si vous tenez ça rester entier çeviter de les suivre en ski, escalade, etc. m^eme en randonnçee pçedestre ils sont dangereux. Leur seul but : trouver la ligne de plus grande pente et la suivre. Christophe èdit Xtofè, le plus calme de tous et le plus discret, qui est toujours pr^et ça rendre service, et Yannick èdit Nounoursè ; mçeæez-vous qu'en m^eme de l'eau qui dort!! Frçederic et Christophe font parti comme Pascal èsurnommçe Hypolite par Evelineè, Laurent èdit Loloè des thçesards de Denis. Alors mçeæez-vous du Chef, ne vous laissez pas convertir ça son rçegime. Pour Pascal et Laurent je ne me fais pas de souci, mais Fred et Xtof tenaient bon, plus qu'un an!! Au cours de ces annçees c'est formçe un trio infernal constituçe par Pascal, Laurent et moim^eme. Avant de conna^çtre Pascal je dçetestais la biçere, mais il m'a fait dçecouvrir les biçeres de chez lui, et ce fut le dçeclic. De plus, il m'a fait dçecouvrir son fameux steak sauce au poivre accompagnçe de frites et de compote de pommes. Laurent me æt dçecouvrir la cuisine auvergnate et la passion des jeux de r^oles. De plus nous partageons la m^eme passion pour les verts de St Etienne. En parlant de vers, c'est quand qu'on va lap^eche? Ensemble nous avons montçe des expçeditions ça Pragues, aux Pays-Bas ça Namur, en Corse, ça Romes qui ont toutes laissçe des traces indçelçebiles dans nos mçemoires. A quand la prochaine virçee les copains? Et la derniçere gçençeration de thçesard : Evelyne, Ines, Alain, Eric, Gabriel, Michel que je remercie pour son aide et son dçevouement èje te dois toujours deux biçeres!è, et Alex qui ma fait piquer des crises de nerfs en installant de nouvelles versions en cours de rçedaction mais qui çetait toujours lça pour dçebloquer la situation. Enæn comment ne pas dire merci ici ça un compagnon de route : Michel le lyonnais que je connais depuis le DEUG èje te supporte depuis si longtemps??è. Merci pour les doses de cafçe ça la Kafet du LIP et pour tes cotisations ça la Kafet du labo. Merci aussi aux copains de toujours : Marie-Christine et Zeph pour leur soutien.
7
8 Table des matiçeres 1 Des circuits VLSI aux machines parallçeles Introduction :::::::::::::::::::::::::::::::::::::: 5 1. Limites technologiques des VLSI :::::::::::::::::::::::::: Circuits intçegrçes ::::::::::::::::::::::::::::::: Contraintes sur le nombre de liens ::::::::::::::::::::: Densitçe durçeseau et bande passante globale :::::::::::::::: Nçecessitçe d'une mçemoire distribuçee ::::::::::::::::::::::::: Les machines parallçeles ça mçemoire distribuçee ::::::::::::::: Modçelisation d'un nçud ::::::::::::::::::::::::::: Les diæçerents types de rçeseaux ::::::::::::::::::::::: Architectures des processeurs :::::::::::::::::::::::::::: Performances des machines ::::::::::::::::::::::::::::: Classiæcation des diæçerents types de machines ::::::::::::::::::: Historique des machines parallçeles ::::::::::::::::::::::::: Description des composants ::::::::::::::::::::::::::::: Les processeurs :::::::::::::::::::::::::::::::: Les processeurs avec facilitçes de communication :::::::::::::: Les machines parallçeles actuelles :::::::::::::::::::::::::: La derniçere gçençeration de machines MIMD :::::::::::::::: La derniçere gçençeration de machines SIMD ::::::::::::::::: Les grandes lignes actuelles ::::::::::::::::::::::::: Perspectives :::::::::::::::::::::::::::::::::::::: 43 Modçeles de communications et topologies 49.1 Introduction :::::::::::::::::::::::::::::::::::::: 49. Communications dans un nçud ::::::::::::::::::::::::::: Gestion des messages ::::::::::::::::::::::::::::: 50.. Les contraintes de communication ::::::::::::::::::::: 50.3 Diæçerents modes de commutation :::::::::::::::::::::::::: Commutation de circuit ècircuit-switchedè ::::::::::::::::: 5.3. Commutation de messages èstore-and-forwardè :::::::::::::: Commutation de paquets èpacket-switchedè :::::::::::::::: Routage wormhole :::::::::::::::::::::::::::::: Virtual-cut-through :::::::::::::::::::::::::::::: Le mode transparence :::::::::::::::::::::::::::: 57.4 Modçelisation du temps de communication ::::::::::::::::::::: Modçele temps constant ::::::::::::::::::::::::::: Modçele temps linçeaire :::::::::::::::::::::::::::: Les autres modçeles :::::::::::::::::::::::::::::: 59.5 Comparaison des principaux modes de routage :::::::::::::::::: La technique du pipeline ::::::::::::::::::::::::::: 61 v
9 .5. La technique des chemins disjoints ::::::::::::::::::::: 6.6 Description des principales topologies ::::::::::::::::::::::: Les hypercubes :::::::::::::::::::::::::::::::: Les grilles ::::::::::::::::::::::::::::::::::: Les grilles toriques :::::::::::::::::::::::::::::: Les de Bruijn ::::::::::::::::::::::::::::::::: 65.7 Conclusion :::::::::::::::::::::::::::::::::::::: 66 3 Communications globales Introduction :::::::::::::::::::::::::::::::::::::: Les Bibliothçeques de calculs et de communications :::::::::::::::: Les bibliothçeques d'algçebre linçeaire ::::::::::::::::::::: Les bibliothçeques de communications :::::::::::::::::::: Les schçemas de communications globales :::::::::::::::::::::: Utilisation des schçemas de communications globales ::::::::::::::: L'çelimination de Gauss :::::::::::::::::::::::::::: Le gradient conjuguçe ::::::::::::::::::::::::::::: Conclusion :::::::::::::::::::::::::::::::::::::: 78 4 Diæusion dans les grilles toriques Notations et modçele de communication ::::::::::::::::::::::: 8 4. Les outils de la diæusion ::::::::::::::::::::::::::::::: Une premiçere solution :::::::::::::::::::::::::::::::: Des arbres de recouvrement de profondeur minimale ::::::::::::::: Le principe de base :::::::::::::::::::::::::::::: Cas 1 :4k+1 :::::::::::::::::::::::::::::::::: Cas :4k+3 :::::::::::::::::::::::::::::::::: Cas 3 :4k ::::::::::::::::::::::::::::::::::: Cas 4 :4k+ :::::::::::::::::::::::::::::::::: Etude thçeorique des arbres ::::::::::::::::::::::::: Algorithme de diæusion ::::::::::::::::::::::::::: Gçençeralisation ::::::::::::::::::::::::::::::::::::: Les solutions existantes ::::::::::::::::::::::::::: Quelques amçeliorations ::::::::::::::::::::::::::: Construction d'arbres de profondeur minimale :::::::::::::: Conclusion :::::::::::::::::::::::::::::::::::::: Communications globales dans les grilles toriques L'çechange total :::::::::::::::::::::::::::::::::::: Dçecomposition de la grille torique ::::::::::::::::::::: Les chemins hamiltoniens :::::::::::::::::::::::::: Stratçegie gloutonne :::::::::::::::::::::::::::::: La distribution :::::::::::::::::::::::::::::::::::: Application aux grilles toriques ::::::::::::::::::::::: Le regroupement ::::::::::::::::::::::::::::::::::: La multidistribution ::::::::::::::::::::::::::::::::: Application aux grilles toriques ::::::::::::::::::::::: Synthçese des rçesultats :::::::::::::::::::::::::::::::: Conclusion :::::::::::::::::::::::::::::::::::::: 134
10 6 Expçerimentations sur machine ça base de Transputers Introduction :::::::::::::::::::::::::::::::::::::: Prçesentation du MçegaNode ::::::::::::::::::::::::::::: Les machines SuperNode :::::::::::::::::::::::::: Le MçegaNode ::::::::::::::::::::::::::::::::: L'environnement logiciel ::::::::::::::::::::::::::: Modçelisation des communications :::::::::::::::::::::::::: Description des algorithmes de diæusion :::::::::::::::::::::: Expçerimentations ::::::::::::::::::::::::::::::::::: Conclusion :::::::::::::::::::::::::::::::::::::: Recouvrements calculsècommunications Introduction :::::::::::::::::::::::::::::::::::::: Pourquoi faire du recouvrement? :::::::::::::::::::::::::: Problçeme du choix de la taille des paquets ::::::::::::::::::::: Analyse du produit matrice-vecteur :::::::::::::::::::: Description des algorithmes ::::::::::::::::::::::::: Calcul du temps d'exçecution :::::::::::::::::::::::: Adaptation au lien full-duplex :::::::::::::::::::::::: Simulations :::::::::::::::::::::::::::::::::: Conclusion :::::::::::::::::::::::::::::::::::::: Communications globales en commutation de circuit Rçesultat prçeliminaire ::::::::::::::::::::::::::::::::: La diæusion :::::::::::::::::::::::::::::::::::::: Diæusion dans l'anneau ::::::::::::::::::::::::::: Diæusion dans la grille torique ::::::::::::::::::::::: L'çechange total :::::::::::::::::::::::::::::::::::: Co^ut minimal suivant chaque paramçetre :::::::::::::::::: Diæçerents algorithmes :::::::::::::::::::::::::::: Comparaison des diæçerents algorithmes ::::::::::::::::::::::: Conclusion :::::::::::::::::::::::::::::::::::::: Conclusion 187 A A 189
11
12 Prçesentation de la thçese 1 Prçesentation de la thçese Le parallçelisme est nçe d'une idçee trçes simple : si diverses parties d'un algorithme sont indçependantes et si on dispose de plusieurs unitçes de traitement, alors ces parties peuvent ^etre exçecutçees simultançement sur les diverses unitçes. Dçes le dçebut de l'informatique, les concepteurs d'ordinateurs ont eu cette idçee, mais les contraintes matçerielles de l'çepoque ne leur permettaient pas de l'exploiter. Dans les annçees 80, le dçeveloppement de nouvelles technologies ont permis de construire les premiçeres machines multiprocesseurs vraiment utilisables. Deux types de machines sont apparus, que l'on distingue suivant l'organisation de la mçemoire : partagçee ou distribuçee. L'alternative mçemoire distribuçee est sans aucun doute le meilleur compromis performanceèprix et permet d'envisager de trçes grands nombres de processeurs. Sur ce type d'architecture, chaque processeur dispose de son propre code et de ses propres donnçees. Les çechanges de donnçees entre les processeurs se font par envoi de messages sur le rçeseau d'interconnexion qui relie les processeurs. Les algorithmes parallçeles peuvent^etre alors dçecomposçes en une succession de phases de calcul et de phases de communication. Mais les phases de communication sont gçençeralement trçes co^uteuses, et emp^echent les utilisateurs d'obtenir les puissances de cr^ete des machines. Aæn de rçeduire les temps d'exçecutions, il est donc important de disposer de procçedures de communications eæcaces. Toutefois, la rçealisation de telles bibliothçeques est trçes liçee ça l'architecture du rçeseau d'interconnexion et aux modes de communication utilisçes pour rçealiser ces çechanges. Dans le m^eme temps, de nombreuses bibliothçeques de calcul se sont dçeveloppçees augmentant encore les performances des phases de calculs. Aæn de ne pas rçeduire ça nçeant les performances obtenues par les noyaux de calcul, en gardant des temps d'attente de donnçees trop prohibitifs, une bonne solution est d'anticiper les mouvements de donnçees aæn de recouvrir les communications par du calcul. Le but de cette thçese est donc d'abord d'çetudier les schçemas de communication les plus utilisçes, et plus particuliçerement la diæusion, pour en proposer des implçementations eæcaces sur des machines parallçeles dont le rçeseau d'interconnexion est une grille torique. Nous nous intçeressons ensuite au problçeme du recouvrement calculècommunication sur l'exemple du produit matrice-vecteur.
13 Prçesentation de la thçese Enæn nous abordons l'extension ça d'autres modçeles de communication correspondant aux machines actuelles. Les deux premiers chapitres sont des synthçeses sur les machines parallçeles actuelles, et sur les protocoles de communication utilisçes dans ces machines. Ils sont largement inspirçes des textes çecrits en collaboration avec Michel Syska, pour l'çecole d'çetçe RUMEUR è199è et complçetçe pour le livre ë3ë. Plus prçecisçement, le premier chapitre a pour but de prçesenter les orientations prises en matiçere d'architecture parallçele, et de les justiæer. Les limites technologiques des circuits VLSI, les contraintes de fabrication et de co^ut ont obligçe les constructeurs de machines parallçeles ça faire des choix entre mçemoire partagçee et mçemoire distribuçee, ou encore dans leurs rçeseaux d'interconnexion. Nous faisons ressortir ces choix dans la prçesentation des processeurs et des machines parallçeles qui sont commercialisçes ça ce jour. Il en ressort que les machines ça mçemoire distribuçee de type MIMD semblent ^etre la solution oærant le meilleur compromis co^utèpuissance et que les rçeseaux d'interconnexion multi-çetages semblent ^etre une solution d'avenir. Dçesormais les grands constructeurs ont pour objectif de construire des machines capables d'eæectuer mille milliards d'opçerations par seconde èle TeraFlopsè. Dans le deuxiçeme chapitre, nous prçesentons les diæçerents protocoles de communication utilisçes dans les machines parallçeles ainsi que leur modçelisation. Si il y a encore deux ans la commutation de message store and forward çetait utilisçee dans la majoritçe des machines, de nos jours ce sont la commutation de circuit et le routage wormhole qui se retrouvent le plus frçequemment. En wormhole les messages traversent les processeurs intermçediaires sans y ^etre stockçes comme en commutation de message, d'oçu la nçecessitçe de modçeliser diæçeremment le temps d'une communication. Lorsqu'on rçealise des communications entre deux ou plusieurs processeurs il faut aussi tenir compte de la topologie du rçeseau d'interconnexion. En eæet, chaque rçeseau possçede ses propres paramçetres comme le degrçe, le diamçetre etc. Dans le chapitre trois nous prçesentons les principaux schçemas de communications globales et nous montrons sur deux exemples la nçecessitçe de tels schçemas. En eæet, pour parallçeliser une application numçerique, une bonne dçemarche consiste ça rçepartir ses donnçees initiales, identiæer les procçedures de calculs locaux et eæectuer les rencontres entre les donnçees en utilisant des schçemas de communication. Le chapitre quatre est consacrçeçal'çetude de la diæusion dans les grilles toriques dans le mode commutation de message. Pour cela on utilise une modçelisation temps linçeaire du co^ut des communications. La premiçere partie de ce chapitre traite le cas de la diæusion sous l'hypothçese de liens full-duplex. Ce problçeme est rçesolu en construisant des arbres de recouvrement ça arcs disjoints. Pour les
14 Prçesentation de la thçese 3 grilles toriques carrçees, nous prçesentons une nouvelle famille de quatre arbres de recouvrement ça arcs disjoints dont la profondeur est minimale. Ce rçesultat a fait l'objet d'un article ë6ë. Ces arbres çetant arcs disjoints, ils permettent d'obtenir une diæusion pipeline en temps optimal. Nous gçençeralisons ensuite ce rçesultat au cas des grilles toriques rectangulaires. Dans la deuxiçeme partie de ce chapitre nous çetendons notre çetude au cas des grilles torique possçedant des liens half-duplex. Nous montrons que pour ce type de grilles il existe deux arbres de recouvrement disjoints de profondeur minimale qui pourront ^etre utilisçes pour eæectuer des diæusions. Ceci fait l'objet de l'article ë1ë. Dans le chapitre cinq, nous prçesentons l'ensemble des schçemas de communication globales dans la grille torique. Cette çetude permet de prçesenter les meilleurs algorithmes connus pour chaque schçema. Les communications çetant trçes co^uteuses par rapport aux calculs, il est nçecessaire de disposer de schçemas de communications eæcaces. Pour chaque schçema nous prçesentons l'algorithme avant d'en calculer le temps d'exçecution. Ces rçesultats de synthçese ont çetçe prçesentçes au cours des ç Rencontres sur le Parallçelisme ç. ë5ë Lors des çetudes thçeoriques nous supposons que les processeurs peuvent communiquer simultançement avec plusieurs voisins, ce qui est vrai sur la plupart des machines parallçeles. Mais la thçeorie ne tient pas compte du fait que le co^ut des communications dçepend du nombre de communications rçealisçees simultançement. Dans le chapitre six nous mettons en çevidence ce phçenomçene et nous proposons une nouvelle modçelisation des communications ça partir d'une machine MegaNode. Nous appliquons ce nouveau modçele ça la diæusion sur la grille torique et nous montrons que les rçesultats expçerimentaux conærment les rçesultats thçeoriques. De plus comme cette machine est conægurable, nous comparons les diæusions sur diæçerentes topologies et nous en dçeduisons la meilleure topologie en fonction de la taille du message. Ces rçesultats font l'objet d'un article ë4ë. Le chapitre sept est consacrçe ça l'çetude du recouvrement des communications par du calcul. En eæet on constate les processeurs restent souvent inoccupçes ça attendre des donnçees, d'oçu l'idçee lorsque cela est possible, d'anticiper les communications, en pipelinant l'envoi de petits messages. Toutefois la taille des messages ça envoyer n'est pas facile ça calculer. Elle dçepend de la taille du problçeme, du nombre de processeurs dans le rçeseau, du co^ut d'une opçeration arithmçetique et du co^ut d'une communication. Ceci est illustrçe par l'çetude du produit matricevecteur sur un anneau de processeurs. L'article correspondant ça ce rçesultat est soumis ça publication ëë. Avant de conclure et de dçegager les perspectives de ce travail, nous proposons, dans le chapitre huit, une çetude du schçema d'çechange total sur la grille torique en mode commutation de circuit. L'algorithme est inspirçe du dçecoupage rçecursif de la grille torique. Il permet d'obtenir un nombre d'çetapes plus faible que les algorithmes traditionnels en store and forward, ce qui est intçeressant lorsque
15 4 Bibliographie le start-up est prçepondçerant dans l'envoi d'un message. De plus cet algorithme fournit de bon rçesultat avec des messages de petites tailles. Bibliographie ë1ë J. C. Bermond, P. Michallon, and D. Trystram. Broadcasting in wraparound meshes with parallel monodirectionnal links. Parallel Computing, 18:639í648, 199. ëë L. Colombet, P. Michallon, and D. Trystram. Parallel matrix-vector product on a ring with a minimum of communications. soumis ça Parallel Computing. ë3ë Jean de Rumeur. Communications dans les rçeseaux de processeurs. collection ERI. Masson, ë4ë P. Michallon and D. Trystram. Practical experiments of broadcasting algorithms on a conægurable parallel computer. ça para^çtre dans Discrete Applied Mathematics, issue spçeciale sur le broadcasting et le gossiping. ë5ë P. Michallon and D. Trystram. Rçesolution de schçemas de communications globales sur rçeseau de processeurs en grille torique. In 5çeme rencontres sur le parallçelisme èbrestè, ë6ë P. Michallon, D. Trystram, and G. Villard. Optimal broadcasting algorithms on torus. soumis ça Journal of Distributed and Parallel Computing.
16 Chapitre 1 Des circuits VLSI aux machines parallçeles 1.1 Introduction Le but de ce chapitre est de prçesenter de maniçere systçematique la technologie et les techniques mises en çuvre dans les machines parallçeles. Mais aussi de montrer combien il est nçecessaire d'çetudier les çechanges de donnçees et fournir des algorithmes de communication et de routage eæcaces, vue la complexitçe de ces machines et le co^ut çelevçe de celles-ci par rapport au co^ut des calculs. En eæet, l'augmentation constante de la demande de puissance de calcul a donnçe lieu lors de la derniçere dçecennie au dçeveloppement des ordinateurs parallçeles. Dans ces machines parallçeles, les constructeurs utilisent des processeurs qui sont de plus en plus puissants èc'est-ça-dire qui calculent de plus en plus rapidementè et en plus grand nombre. Or la puissance de ces processeurs a augmentçe plus vite que le dçebit des liens de communication, ce qui nçecessite des algorithmes de communication eæcaces aæn de rçeduire les temps d'attente des processeurs. Ce chapitre est extrait du l'ouvrage collectif communications dans les rçeseaux de processeurs ë4ë. Aprçes un rappel sur les limites technologiques de la conception de circuits intçegrçes, ainsi qu'une description des paramçetres permettant de comparer et de classiæer les machines parallçeles, nous prçesenterons les principaux processeurs du moment, ainsi que les principales machines existantes et leurs diæçerents rçeseaux d'interconnexion. Malgrçe la diæcultçe de prçedire ça long terme les rçeseaux et les technologies qui seront utilisçes dans les futures machines parallçeles, nous conclurons ce chapitre par les grandes lignes qui se dessinent pour les prochaines annçees. 5
17 6 Chapitre 1. Des circuits VLSI aux machines parallçeles 1. Limites technologiques des VLSI Les machines parallçeles sont construites dans l'espace ça trois dimensions, ce qui implique, pour les rçeseaux multidimensionnels comme les hypercubes, d'^etre plongçes dans ces trois dimensions physiques. On distingue çegalement plusieurs niveaux d'intçegration des composants, ou pour certains niveaux, comme les circuits intçegrçes, seulement deux dimensions sont possibles èavec çeventuellement plusieurs couches pour rel^acher cette contrainteè. Ainsi, la meilleure façcon d'interconnecter entre eux des processeurs, dçepend non seulement de lois mathçematiques, mais aussi de contraintes dues aux procçedçes de fabrication disponibles Circuits intçegrçes Les nçuds d'un rçeseau èprocesseurs ou organes de routageè sont rçealisçes en technologie VLSI èvery Large Scale Integration : technologie de construction de circuits intçegrçes ë36, 61, 7ëè, et doivent respecter les contraintes de l'intçegration en deux dimensions èplanaireè. Un circuit intçegrçe est en fait un graphe de connexions entre des composants çelçementaires ètransistors, ampliæcateurs opçerationnels, diodes, rçesistances, etc.è gravçes dans une plaquette de silicium. Certains types de circuit ècircuits logiquesè permettent de rçealiser des fonctions boolçeennes. Un circuit intçegrçe est appelçe communçement puce. Ces puces sont plus ou moins complexes suivant l'usage qu'il en est fait, ainsi on les retrouve aussi bien dans les cartes tçelçephoniques qu'au cçur m^eme des ordinateurs. Pour fonctionner, une puce a besoin d'^etre alimentçee en courant et en donnçees. De plus, s'il s'agit d'un processeur, il faut le connecter ça une mçemoire, ce qui nçecessite beaucoup de liens depuis la puce. Or, celle-ci mesure de l'ordre d'un centimçetre carrçe, d'oçu une impossibilitçe technique de la connecter sur une carte ècircuit imprimçe sur lequel on met des circuits intçegrçesè qui mesure de l'ordre de la centaine de centimçetres carrçes. Pour rçealiser la connexion entre ces deux çelçements d'çechelles diæçerentes, on æxe la puce sur un module èbo^çtierè en cçeramique disposant de pattes qui relient le module en cçeramique ça la carte. La ægure 1.1 montre les trois niveaux ç d'encapsulage ç : la puce, le module et la carte ë6ë. Puce Module en cçeramique Pattes Carte
18 1.. Limites technologiques des VLSI 7 Fig. 1.1 : Diæçerents niveaux d'encapsulage en VLSI Un nçud peut ^etre constituçe de plusieurs modules assemblçes sur une m^eme carte. On doit noter qu'il peut y avoir èrarementè plusieurs nçuds par puce ; on parle alors de Multi-Chip Module. Certaines technologies, comme la Wafer Scale Integration, rentrent aussi dans ce concept èsur une m^eme tranche de silicium, on imprime un grand nombre de circuits identiques, qui peuvent communiquer avec leurs voisins. Ce nombre est limitçe par l'çepaisseur des substrats rçealisablesè. Le rçeseau des nçuds doit lui aussi ^etre conçcu sur une surface ça deux dimensions au niveau des cartes sur lesquelles sont posçes les modules. De nombreux articles ont çetçe publiçes sur le problçeme de la conception des circuits intçegrçes ègraphe des connexions entre les cellules çelçementaires ë67ëè sur une surface ça deux dimensions la plus petite possible. Plus le dessin du circuit est compact, plus le dçelai çecoulçe entre l'entrçee et la sortie des donnçees ètemps de calcul du circuitè est court. Ainsi, un graphe trçes complexe, qui nçecessite une surface plus grande, peut s'avçerer moins eæcace qu'un graphe de calcul plus simple que l'on sait concevoir sur une surface plus petite. Un circuit de taille rçeduite consomme moins de puissance çelectrique, accepte une frçequence d'horloge plus çelevçee, est plus æable, occupe moins de volume et pçese moins lourd. De plus, le co^ut de fabrication diminue avec la taille! Ces considçerations s'appliquent aux rçeseaux de processeurs des machines que nous prçesentons dans ce chapitre. On peut consulter les articles de Valiant ë78ë, Karchmer ë5ë, Lengauer ë57ë pour une introduction ça ces problçemes et pour des rçefçerences complçetes sur la thçeorie des VLSI. 1.. Contraintes sur le nombre de liens Il se pose çegalement le problçeme de la connexion de ces puces entre elles. En eæet, pour construire une machine parallçele on ne peut pas relier les processeurs comme on veut. Des contraintes physiques et matçerielles nous emp^echent de relier autant de processeurs que l'on veut ça un seul, comme nous allons le voir maintenant. Les puces comportent aujourd'hui environ trois millions de transistors disposçes sur un peu plus d'un centimçetre carrçe, alors que le nombre de pattes issues du module est beaucoup plus faible èpar exemple, çegal ça 08 sur le T9000 d'inmosè. La plupart des processeurs sont destinçes ça çequiper des stations de travail et les ordinateurs personnels, et n'oærent pas de gestion interne èon chipè des communications, le co^ut çetant prohibitif. C'est le nombre de liens ède pattesè que l'on peut tirer d'un module et non les terminaisons èliensè de la puce qui limite l'interconnexion des VLSI, ça cause de la diæçerence d'çechelle entre ces deux niveaux ë75, p. 141ë. Comme la surface des circuits doit ^etre minimisçee pour les raisons çevoquçees ci-dessus, la portion rçeservçee aux communications externes ne
19 8 Chapitre 1. Des circuits VLSI aux machines parallçeles peut ^etre augmentçee sans entra^çner des pertes de performances globales du circuit. Un transistor de technologie MOS èmetal Oxyde Semiconductorè peut changer d'çetat en 0; 10 ns, mais si l'on ajoute quelques centaines de microns sur sa ligne de connexion, ce dçelai est augmentçe de plusieurs nanosecondes ë69ë! De plus, la diæçerence d'çechelle entre puce et carte impose aussi l'ampliæcation des signaux qui doivent sortir de la puce : le dçelai d^u ça cette ampliæcation est du m^eme ordre qu'une pçeriode de l'horloge interne du circuit ë76ë. Parmi ces pattes en nombre limitçe, une grande partie est rçeservçee ça la connexion avec la mçemoire externe du processeur et une autre partie ça la transmission des signaux utiles au systçeme et ça la synchronisation des processeurs entre eux. Il reste donc un nombre trçes limitçe de pattes pour rçealiser les liens de communication entre processeurs ë19ë. Ceci explique en partie la prçefçerence pour les liens ç sçerie ç, oçu l'on transmet une suite de bits sur une patte, aux liens parallçeles oçu l'on transmet des mots, mais sur un nombre de pattes çegal ça la taille du mot èsans compter les signaux de contr^ole de la transmission : paritçe, accusçe de rçeception,...è. Il faut aussi trouver un çequilibre entre le nombre de liens par nçud et la largeur èbande passante unitaireè de ces liens. La bande passante d'un lien correspond au nombre maximum d'octets transitant sur ce lien par unitçe de temps, ou par cycle d'horloge. De façcon plus concrçete, vaut-il mieux construire une machine avec un rçeseau en hypercube et des liens d'un bit de large ou bien une machine avec un rçeseau en grille, et donc un diamçetre èdistance maximale entre deux nçuds quelconques du rçeseauè plus grand, mais avec des liens de 16 bits de large? Des çetudes mençees par Dally ëë montrent que sous certaines hypothçeses, les rçeseaux en grille de faibles dimensions sont plus performants que les hypercubes pour un m^eme nombre de processeurs. Pour cette comparaison, Dally normalise la taille des canaux de communication par rapport ça la bissection ènombre minimum de liens qu'il faut couper pour partager le rçeseau en deux parties ayant le m^eme nombre de nçudsè du rçeseau considçerçe. Il montre que, pour 56 processeurs, la grille ça deux dimensions est optimale. Cependant, cette çetude porte sur les grilles multidimensionnelles èk-ary-n-cubesè et ne prend pas en compte des rçeseaux moins courants comme les rçeseaux de De Bruijn ou les rçeseaux cubeconnected-cycles, qui oærent pourtant un faible diamçetre pour un degrçe ènombre de liensè constant. Si l'on augmente considçerablement le nombre de processeurs, le diamçetre rçesultant va augmenter de façcon dçefavorable dans le cas des grilles. Par exemple, pour un peu plus d'un million de processeurs è 0 èetunnombre de liens par processeur çegal ça 4, il faut traverser au plus 0 nçuds dans un De Bruijn Bè; 0è, et 048 dans une grille carrçee 104 æ 104 pour joindre deux nçuds quelconques! Certains travaux rçecents èë15, 14, 73ëè ont montrçe que la rçealisation d'un rçeseau de processeurs avec une topologie de De Bruijn çetait possible. Un dçecodeur de codes de Viterbi açetçe rçealisçe dans le cadre de la mission Galileo pour la NASA.
20 1.3. Nçecessitçe d'une mçemoire distribuçee 9 Le rçeseau utilisçe est un graphe de De Bruijn Bè; 13è dont chaque nçud est un circuit arithmçetique çelçementaire du dçecodeur. Dans une rçealisation plus gçençerale, un nçud pourrait ^etre un vrai processeur de calcul. D'ailleurs, on a aæaire ici plus ça une vçeritable machine MIMD qu'ça un simple dçecodeur, car chaque circuit possçede sa propre horloge et sa propre mçemoire. La construction est modulaire, et est composçee de 16 cartes. Chaque carte comporte 16 puces, une puce implantant 3 ç papillons ç èopçerations çelçementairesè. Il suærait de dupliquer les cartes pour obtenir un rçeseau plus grand. Pour ce qui est des connexions, 56 è sont internes èentre ç papillons ç de la m^eme puceè, 17 è sont sur une m^eme carte èentre des puces reposant sur la m^eme carteè et 7 è sont entre des cartes diæçerentes. Si le rçeseau çetait une grille, on aurait de façcon çequivalente des valeurs de 8 è, 14 è et 4 è, qui sont meilleures dans l'absolu, mais pour dçecoder des donnçees sur une grille, il y aurait beaucoup plus d'çechanges de donnçees. Dans les deux cas, on a le m^eme degrçe pour les nçuds ènombre de liensè. Quoi qu'il en soit, les rçeseaux de faible degrçe semblent^etre les meilleurs candidats pour interconnecter un trçes grand nombre de processeurs dans une machine parallçele Densitçe du rçeseau et bande passante globale Pour comparer l'eæcacitçe des rçeseaux, il faut çegalement tenir compte de la longueur des liens requise par leur implantation physique. Cette longueur intervient dans le dçelai de transmission d'un message entre deux nçuds voisins du rçeseau. Pour des liens ç trçes courts ç on considçere que le dçelai est constant ; si le lien est simplement ç court ç, le dçelai est une fonction logarithmique de la longueur ; s'il estç long ç, le dçelai devient une fonction linçeaire de cette longueur. Les notions de ç trçes court ç, ç court ç et ç long ç dçependent delatechnologie ë1ë. Les co^uts de communication dçependent aussi de la densitçe des liens du rçeseau. Une mesure de cette densitçe des liens est donnçee par une analyse ça bissection constante ë75, p. 143ë. 1.3 Nçecessitçe d'une mçemoire distribuçee Plus la mçemoire est grande, plus le dçelai moyen d'accçes aux donnçees est important. La technique employçee pour diminuer ce temps d'accçes est basçee sur l'utilisation de caches èun cache est une mçemoire intermçediaire ça accçes trçes rapide et de faible taille, qui est placçee entre le processeur et la mçemoire. On parle aussi d'antçemçemoireè encapsulçes avec le CPU èunitçe de traitement ou Central Processing Unitè dans la m^eme puce. Cela est rendu possible par l'intçegration d'un plus grand nombre de transistors dans les puces. Parfois, on utilise plusieurs niveaux de caches entre le processeur et la mçemoire ë44ë. Cependant, la
21 10 Chapitre 1. Des circuits VLSI aux machines parallçeles taille adressable directement par un processeur reste faible si l'on veut garder un temps de cycle rçeduit. Cela implique l'utilisation d'une mçemoire distribuçee Les machines parallçeles ça mçemoire distribuçee L'utilisation ou non de ce concept dans les machines parallçeles a coupçe les machines parallçeles en deux familles : les machines ça mçemoire distribuçee et les machines ça mçemoire partagçee. Sur les machines ça mçemoire partagçee, les processeurs accçedent tous ça une mçemoire commune, par l'intermçediaire du rçeseau d'interconnexion qui gçere les accçes concurrents ça la mçemoire. Au contraire, sur les machines ça mçemoire distribuçee, chaque processeur possçede sa propre mçemoire, les çechanges de donnçees entre processeurs s'eæectuant par çechange de messages sur le rçeseau d'interconnexion. Aujourd'hui, en raison des co^uts trop çelevçes et de la complexitçe de rçealisation des mçemoires partagçees, èil est trçes diæcile de gçerer une mçemoire partagçee ça laquelle pourraient accçeder plusieurs dizaines de processeursè, de nombreux constructeurs ont optçe pour le ç distribuçe ç. Notons que ce choix pourrait ^etre remis en cause en raison d'çevolutions technologiques, mais semble le plus ça m^eme, pour l'heure, de rçepondre au dçeæ que reprçesente une vitesse de calcul du TeraFlop Modçelisation d'un nçud Les ordinateurs parallçeles sont composçes de plusieurs unitçes de calcul dupliquçees pouvant participer ça plusieurs applications diæçerentes. De fait, les unitçes de calcul ne sont pas les seules ça ^etre dupliquçees, toutes les autres unitçes nçecessaires au fonctionnement d'un processeur peuvent l'^etre çegalement. Nous appellerons nçud, tout ensemble d'unitçes èprocesseurs, registres, horloges, mçemoire locale, etc.è qui est dupliquçe au sein de la machine. Les çechanges de donnçees entre les nçuds s'eæectuent en utilisant les liens d'un rçeseau d'interconnexion, cela nçecessite de trouver sur chacun des nçuds un ensemble d'unitçes nçecessaires aux communications. Un nçud pourra donc ^etre constituçe des çelçements suivants : í unitçe de calcul scalaire ; í unitçe de calcul æottant èparfois vectoriellesè ; í unitçe de contr^ole èsçequenceur, etc.è ; ímçemoire locale ; í horloge interne ; í liens de communication ; í unitçes de gestion des messages, etc.
22 1.3. Nçecessitçe d'une mçemoire distribuçee 11 il existe des nçuds encore plus complexes, intçegrant des mçemoires Aujourd'hui et un analyseur de performances. Celui-ci enregistre certains çevçenements caches se dçeroulent sur le nçud èaccçes mçemoire, communications, etc.è. Ceci permet qui visualiser sur un çecran le dçeroulement du programme en chaque nçud du de Les mçemoires caches de donnçees et d'instructions sont des organes de rçeseau. ça accçes trçes rapide, mais de faible capacitçe, dans lesquels sont stockçees mçemoire informations trçes souvent utilisçees ou que l'on va utiliser immçediatement. Ils des de tampons entre la mçemoire principale d'accçes plus lent et le processeur servent rapide. Sans ces caches il faudrait attendre plusieurs cycles pour charger les plus dans les registres du processeur. donnçees un exemple de type de nçud que l'on peut trouver sur les machines Voici ça mçemoire distribuçee. parallçeles Fig. 1. abus de langage, on assimile un nçud ça un processeur, surtout lors de Par description des algorithmes sur ces machines. Cependant un nçud peut com- la plusieurs processeurs èces processeurs communiquant via leur mçemoire porter par exemple la Concerto et le Cray T3Dè, ou encore en simuler un commune, Unitçe arithmçetique et logique et Unitçe æottante Service de routeur systçeme Mçemoire Horloge Cache de donnçees et instructions Bus ou Cross bar canal 0 canal 1.. lien 0 lien 1 canal n lien n Interface avec la Analyseur de mçemoire performances : Synopsis de nçud. grand nombre, on parle alors de processeurs virtuels.
23 1 Chapitre 1. Des circuits VLSI aux machines parallçeles Les diæçerents types de rçeseaux Pour rçealiser les communications entre les nçuds, il existe deux types de rçeseaux : í Point-ça-point:chaque nçud peut communiquer directement avec ses voisins èqui sont les nçuds avec lesquels il est physiquement reliçeè. Pour communiquer avec des nçuds ça une distance supçerieure, le message doit passer par une sçerie de nçuds intermçediaires. í Multi-çetages : ces rçeseaux sont constituçes de nçuds tels que ceux dçecrits ci-dessus, et d'unitçes dçediçees aux communications. Ces derniçeres sont gçençeralement des commutateurs èswitchesè. Elles servent soit ça acheminer les messages entre les unitçes de calculs dans les machines ça mçemoire distribuçes, soit ça acheminer les messages entre les unitçes de calculs et la mçemoire dans les machines ça mçemoire partagçee. Il existe d'autres types de rçeseaux. En particulier, les rçeseaux conægurables, oçu la topologie n'est pas ægçee et peut ^etre dçeænie en fonction de l'application par l'utilisateur. Si de plus, cette topologie est modiæable en cours d'exçecution du programme, elle est dite reconægurable. Dans les deux cas, une fois la machine conægurçee, elle se comporte comme une architecture point-ça-point. Les temps de conæguration restant encore çelevçes, ce type de machine n'a pas çetçe retenu actuellement pour la conception de machines massivement parallçeles. 1.4 Architectures des processeurs Le temps moyen d'exçecution T d'un programme sur un processeur est donnçe par : NIæ NCæTC ë37ë, oçu NI est le nombre d'instructions machine qui constituent le programme, NC le nombre de cycles d'horloge nçecessaires en moyenne pour exçecuter une instruction, et TC le temps de cycle de l'horloge du processeur. Lors de la conception d'une architecture, on vise ça minimiser cette fonction. Les types d'architectures les plus employçees dans les processeurs actuels sont: RISC, pipeline, superpipeline, superscalaire et VLIW. Nous donnons dans la suite les caractçeristiques principales de ces divers types d'architectures. í RISC : les annçees 80 ont vu l'apparition des architectures RISC èreduced Instruction Set Computerè ë37ë. L'objectif de ces architectures est de pouvoir exçecuter une instruction par cycle ènc = 1è. Dans les architectures de la gçençeration prçecçedente ècisc : Complex Instruction Set Computerè, le jeu d'instructions proposçe çetait trçes çetendu, et ceci avait au moins deux consçequences : í les compilateurs avaient des problçemes pour exploiter au mieux ce jeu d'instructions è90 è du temps çetait consacrçe ça l'utilisation d'un en-
24 1.4. Architectures des processeurs 13 semble d'instructions reprçesentant seulement 10 è du jeu total d'instructionsè. í la partie contr^ole du processeur çetait microprogrammçee, et utilisait une surface importante du composant è60 è dans le cas du de Motorolaè. Au contraire, le RISC a un jeu d'instructions plus rçeduit, ce qui permet un contr^ole c^ablçe plus rapide ècela consiste en un automate ça nombre æni d'çetatsè, et la surface ainsi libçerçee permet d'implanter des caches plus grands. De plus, les modes d'adressage plus simples èdu type registre ça registre au lieu de registre ça mçemoireè autorisent l'implantation de pipelines d'instructions. í Pipeline : le principe consiste ça dçecomposer les instructions en n phases de longueur çegale ça un cycle ë53ë. Ainsi, on peut exçecuter n instructions simultançement. Pendant un cycle d'horloge, la phase k de l'instruction i est exçecutçee en m^eme temps que la phase k, 1 de l'instruction i + 1,... Par exemple, dans le cas du processeur MicroSparc de Sun, ces phases sont, pour une instruction simple èen un cycleè : 1. lecture de l'instruction pointçee par le compteur de programme ;. dçecodage, lecture des opçerandes et mise ça jour du compteur de programme ; 3. exçecution de l'instruction par l'unitçe arithmçetique et logique ; 4. rangement durçesultat. Chaque circuit qui exçecute une phase d'une instruction est appelçe çetage du pipeline. Dans l'exemple dçecrit ci-dessus, le pipeline possçede quatre çetages. On parlera aussi d'un pipeline de profondeur quatre. Le bon fonctionnementdupipeline peut ^etre perturbçe par des interruptions, mais surtout par des conæits d'accçes aux donnçees, des dçependances de donnçees ou des sauts dans le programme èrçesolus en partie par anticipationè. í Superpipeline : en subdivisantça l'extr^eme les phases çelçementaires dans un pipeline, on obtientunpipeline plus profond dontchaque phase est plus æne, ce qui permet d'augmenter la vitesse d'horloge du processeur èpar exemple l'alpha de DECè. í Superscalaire :ce type d'architecture se trouve sur les processeurs possçedant plusieurs unitçes de traitement pouvant opçerer simultançement. Typiquement un processeur superscalaire possçede une unitçe entiçere et une unitçe æottante.
25 14 Chapitre 1. Des circuits VLSI aux machines parallçeles Une architecture superscalaire nçecessite de fournir les instructions aux unitçes de traitement avec un dçebit suæsant pour exploiter pleinement le parallçelisme. Ceci est automatique si chaque unitçe est lente, mais si les unitçes sont rapides è1 cycle par opçerationè il faut lire et dçecoder plusieurs instructions par cycle èsans compter la recherche en mçemoire et le chargement des opçerandesè. Ceci peut ^etre rçealisçe de diæçerentes façcons : í 1è VLIW : dans le VLIW èvery Long Instruction Wordè chaque mot d'instruction est divisçe en champs, chaque champ codant l'instruction d'une unitçe. Cette technique est trçes en vogue dans les processeurs destinçes au traitement du signal èpar exemple les DSPè. Ce type de technique correspond ça une programmation trçes proche du matçeriel. íèmultiplication des caches et des ports internes : en utilisant un cache d'instructions, un bus interne çelargi et des caches de donnçees ça accçes multiples, il est possible de lire et de coder plusieurs instructions avec leurs arguments dans un seul cycle d'horloge. Par exemple, le T9000 lit sur 3 bits quatre instructions de 8 bits. 1.5 Performances des machines Les performances de cr^ete d'une machine sont obtenues lors de l'utilisation optimale de celle-ci, c'est-ça-dire en utilisant au mieux les mçemoires caches, les registres, les unitçes de calculs æottants, et en n'utilisant pas ou peu de communications. Les performances de cr^ete sont impossibles ça atteindre en pratique, la compilation d'applications rçeelles ne permettant pas l'utilisation optimale des ressources. Les compilateurs de langages de haut niveau ècomme C, Fortranè donnent en gçençeral des performances bien en-dessous de celles annoncçees par les constructeurs èc'est un phçenomçene bien connu pour le i860 ou l'alphaè, et de plus, la plupart des algorithmes parallçeles nçecessitent de nombreuses communications qui limitent les performances. Mots clçes pour l'çetude des performances í MFlops èmillion of Floating point operations per secondè : million d'opçerations æottantes eæectuçees en une seconde ènotons que M est aussi l'initiale de Megaè. Actuellement, on mesure plut^ot le nombre d'opçerations en GFlops, ce qui correspond au milliard d'opçerations æottantes par seconde èg pour Gigaè. La prochaine çetape sera le TFlops qui correspondra au millier de milliards èou billionè d'opçerations æottantes par seconde èt pour Teraè. í MIPS èmillion of Instructions Per Secondè : million d'instructions rçealisçees en une seconde. De m^eme, il existe le GIPS et le TIPS.
26 1.5. Performances des machines 15 í Bande passante d'un lien : taux de transfert en octets par seconde. La bande passante d'un nçud est la somme des transferts rçealisables de façcon concurrente par tous ses liens. La bande passante d'un rçeseau est la somme de la bande passante de tous les liens. Ce dçebit se mesure en Megaoctets par seconde que l'on note Moès. On parlera aussi de Gigaoctets par seconde que l'on notera Goès. í MHz : unitçe de mesure de la frçequence de l'horloge interne du processeur ; son inverse, la pçeriode, est çegale ça la durçee d'un cycle. Le co^ut d'une instruction est un nombre entier de cycles, sauf en superscalaire oçu l'on peut exçecuter des instructions en parallçele. Par exemple, une frçequence d'horloge de 40 MHz correspond ça un cycle de 5 nanosecondes. í Benchmark : programme standard dont le but est de comparer les performances de diæçerentes machines ou processeurs. Les principaux benchmarks prçesentçes ci-dessous sont: Whestone, Dhrystone, les boucles de Livermore, LINPACK, NAS kernel, SPEC. í Le benchmark Whestone a çetçe le premier, çelaborçe en 1976 au National Physical Laboratory ègrande-bretagneè. Il est constituçe de plusieurs modules çecrits en FORTRAN, chacun contenant des instructions de diæçerents types èarithmçetique sur des entiers, arithmçetique sur des æottants, des instructions conditionnelles, des appels de fonctions, etc.è ë81ë. Ces modules sont pondçerçes, et exçecutçes plusieurs millions de fois, ce qui donne des rçesultats en MWIPS èmegawhestone Instructions Per Secondè. í Le benchmark Dhrystone est une amçelioration du Whestone. Il est apparu en Les rçesultats sont donnçes en MegaDhrystone par seconde ë81ë. í Les boucles de Livermore consistent en 4 boucles FORTRAN qui ont çetçe rçealisçees au Lawrence Livermore National Laboratory èusaè. Ces boucles sont constituçees par des noyaux d'exçecutions que l'on retrouve dans la majeure partie des applications numçeriques. Cela va des noyaux d'algçebre linçeaire èproduit de matrices, gradient conjuguçe, etc.è aux noyaux de tri ou de recherche ë39ë. Ces boucles sont utilisçees pour çevaluer les performances en MFlops des processeurs et des machines parallçeles. í Le benchmark LINPACK èlinear PACKageè est une bibliothçeque de procçedures çecrite en FORTRAN, facilement transportable, contenant les principales procçedures d'algçebre linçeaire ë1ë ë7ë. Cette bibliothçeque a çetçe rçealisçee ça Argonne National Laboratory ça partir de 1977 et deux procçedures en ont çetçe extraites aæn de constituer une sçerie
27 16 Chapitre 1. Des circuits VLSI aux machines parallçeles de tests ë3ë. Les performances sont alors exprimçees en MFlops LIN- PACK, ce qui permet de comparer les performances des diæçerents ordinateurs èjack Dongarra a rçealisçe une telle çetude, qu'il tient pçeriodiquement ça jour ë31ëè. í Le NAS kernel benchmark a çetçe dçeveloppçe lors du programme NAS ènumerical Aerodynamic Simulation è au centre de recherche d'ames de la NASA. Ce programme est constituçe de sept noyaux de calcul èçecrits en FORTRANè utilisçes par la NASA. Il y a des codes d'algçebre linçeaire ècomme le produit de matrices, la factorisation de Cholesky, l'çelimination de Gauss, etc.è, du traitement de signal èfft bidimensionnelleè et des codes de turbulence èçelçements ænisè. De plus, la NASA adçeæni quatre niveaux de test. Le niveau 0 oçu le code est portçe sur la machine cible sans optimisation, le niveau 0 oçu on peut optimiser le code, sans modiæer ou ajouter plus de 0 lignes de code, le niveau 50 oçu l'on peut mieux optimiser le code èmodiæcation ou ajo^ut d'au plus 50 lignes de codeè, et le niveau 1000 oçu l'on optimise l'application pour une machine èmodiæcation ou ajout d'un nombre illimitçe de lignesè. En fait, ces diæçerents niveaux permettent de diæçerencier les performances du compilateur de celles du matçeriel. Si le compilateur est eæcace, la diæçerence entre le niveau 0 et le niveau 1000 sera faible. Les rçesultats de ce benchmark sont donnçes en MFlops et en temps CPU ë5ë. í Le benchmark SPECmark a çetçe crçeçe par l'organisme SPEC èsystem Performance Evaluation Consortiumè et les fabricants IBM et Hewlett- Packard en Puis en 199, SPECint et SPECfp lui ont succçedçe. Le SPECmark est basçe sur un ensemble standard d'applications rçeelles. Il est constituçe de dix programmes de tests èsix en FORTRAN et quatre en Cè, comme la simulation d'un rçeacteur nuclçeaire ou de circuits analogiques, ou des programmes çevaluant les performances du systçeme, comme la compilation d'une application donnçee avec GNU C ë4ë. Les programmes sont exçecutçes sur la machine cible, avec mesure des temps d'exçecution. Le rapport du temps d'exçecution sur la machine cible ça celui d'un DEC VAX 11=780 donne une mesure que l'on exprime en SPECmark èou SPECmark 89è. Mais le SPECmark a çetçe souvent critiquçe pour son manque de prçecision entre les diæçerents types de mesures et pour le phçenomçene d'inæation qu'il subissait. En eæet, les constructeurs se sont lancçes dans la course au SPECmark en amçeliorant le compilateur de leurs machines aæn que ces derniçeres rçeussissent parfaitement les tests ë43ë. C'est pour cela que SPEC a crçeçe en 199 le SPECint et le SPECfp. SPECint est composçe desix benchmarks çecrits en C reprçesentant des applications de simulation de circuits logiques, de compression de donnçees ou d'interprçeteur Lisp. Il teste essentiellement les performances en calcul entier de l'unitçe centrale, alors que SPECfp mesure les capacitçes de calcul æottant. SPECfp
28 1.5. Performances des machines 17 est constituçe de quatorze benchmarks scientiæques ou techniques dont deux sont çecrits en C et le reste en FORTRAN ë43ë. Les performances ainsi obtenues s'expriment en SPECint9 et SPECfp9. Ces çechelles permettent de comparer les diæçerents processeurs et systçemes du marchçe. Ce benchmark est le plus utilisçe actuellement, car il permet de tester des machines sur des applications concrçetes. Le numçero spçecial Benchmarking of high performance supercomputers de Parallel Computing ë34ë, fait un tour d'horizon de toutes les mçethodes utilisçees pour çevaluer les performances des ordinateurs. Un exemple pratique de calcul de performances í Soit un processeur dotçe d'une frçequence d'horloge de 40 Mhz. Ce processeur dispose d'un additionneur et d'un multiplieur. Il faut trois cycles pour calculer une addition ou une multiplication. í Soit deux matrices A et B de taille 100 par 100, dont onveut calculer le produit Aæ B, notçe C. L'algorithme est le suivant: Algorithme 1.1 Produit matriciel pour i è 1 ça 100 faire pour j è 1 ça 100 faire Cëi; jë è 0; pour k è 1 ça 100 faire Cëi; jë è Cëi; jë + Aëi; kë æ Bëk;jë; Ce produit nçecessite 10 6 multiplications et 10 6 additions. Un cycle prend 5 nanosecondes, ce qui donne 75 nanosecondes pour une addition ou une multiplication. Donc le temps total est de : è75æ æ 10 6 èæ 10,9 =0; 15 seconde pour rçealiser æ 10 6 opçerations, ce qui fait 13 millions d'opçerations par seconde soit 13 MFlops. Notons que si l'on dispose d'un multiplieur et d'un additionneur pipeline et qu'on les utilise de façcon conjointe, on peut avoir une multiplication plus une addition par cycle, ce qui permet d'obtenir de l'ordre de 80 millions d'opçerations par seconde, soit 80 MFlops. On notera que, dans les deux cas, on ne tient pas compte du temps d'accçes ça la mçemoire, et dans le cas des architectures pipelines, du temps d'amorçcage ètemps de traversçee du pipeline par le premier çelçement entrçeè des pipelines, ce qui est d'autant plus nçegligeable que la dimension du problçeme est grande.
29 18 Chapitre 1. Des circuits VLSI aux machines parallçeles 1.6 Classiæcation des diæçerents types de machines La grande diversitçe des machines parallçeles ëë a donnçe lieu, de la part de Flynn, ça une taxinomie ë40ë ça laquelle on fait toujours rçefçerence m^eme si aujourd'hui elle semble un peu dçepassçee. En eæet cette classiæcation ne prend en compte que deux critçeres : le type du æot d'instructions et le type du æot des donnçees traitçees par les processeurs çelçementaires. Les æots sont soit simples èsingleè soit multiples èmultipleè. De ce fait on a du mal ça classer certaines machines èpar exemple celles ça æot de donnçeesè et ça distinguer les machines ça mçemoire distribuçee des machines ça mçemoire globale. Les ordinateurs parallçeles qui nous concernent ici sont ceux ça mçemoire distribuçee type SIMD èsingle Instruction Multiple Data æowè et type MIMD èmultiple Instruction Multiple Data æowè. Notons que les machines de type SISD èsingle Instruction Single Data æowè correspondent aux machines sçequentielles èmodçele de Von Neumanè et que les machines de type MISD èmultiple Instruction Single Data æowè peuvent ^etre assimilçees aux unitçes pipeline, en eæet dans une telle unitçe plusieurs instructions sont eæectuçees simultançement sur un m^eme æot de donnçees. í SIMD : sur ce type de machine, le programme s'exçecute sur un frontal et les instructions traitant des donnçees parallçeles sont diæusçees ça tous les processeurs pour ^etre appliquçees aux donnçees rçeparties dans les mçemoires locales de ces processeurs. Ainsi, tous les processeurs eæectuent la m^eme instruction, mais sur des donnçees diæçerentes. Le fonctionnement de ce type de machines est synchrone. L'avantage des machines SIMD tient ça ce que seules les unitçes de calcul doivent^etre dupliquçees. En eæet, une seule unitçedecontr^ole suæt ça dçecoder les instructions pour tous les processeurs èvoir ægure 1.3è. Dans la pratique, de tels ordinateurs sont utilisçes pour des problçemes rçeguliers, c'est-ça-dire manipulation de vecteurs, de matrices, etc. La Connection Machine de Thinking Machines Corporation, la MP-1 de MasPar ou les DAP èdigital Array Processorsè de AMT et la Zephir de Wavetracer font partie de ce type de machines. Elles ont unpoint commun : assembler un grand nombre de processeurs simples è64 K processeurs 1 bit sur la CM-, et 8K processeurs 4 bits pour la MasParè. C'est ce que l'on appelle un parallçelisme ça grain æn èle ratio nombre de donnçees traitçees è nombre de processeurs utilisçes est proche de 1è.
30 1.6. Classiæcation des diæçerents types de machines 19 M M M M UT UT UT UT Vers l'unitçe de contr^ole Rçeseau d'interconnexion M: mçemoire UT : unitçe de traitement Fig. 1.3 :Architecture SIMD í MIMD :ce type de machines permet non seulement aux diæçerents processeurs çelçementaires de travailler sur des donnçees diæçerentes, mais, de plus, chaque processeur çelçementaire peut exçecuter des instructions diæçerentes. Ces machines n'ont pas d'horloge globale et opçerent donc en mode asynchrone. L'architecture se compose de plusieurs unitçes de contr^ole et d'autant de processeurs, d'une mçemoire èqui peut ^etre commune ou distribuçee sur chaque processeurè, d'un rçeseau d'interconnexion permettant les çechanges entre unitçes de contr^ole ou entre mçemoires dans le cas oçu celles-ci seraient distribuçees, et d'un rçeseau d'interruption èvoir ægure 1.4è. Les ipscè, ipscè860, la Paragon d'intel, les machines ça base de Transputers Inmos èt-node et MegaNode de Telmat, Computing Surface de Meiko,...è sont des machines MIMD. Ces machines ont un nombre plus faible de processeurs que dans le cas des SIMD èparallçelisme ça grain moyen et grosè, mais ceux-ci sont beaucoup plus performants. Ce nombre varie de 8 processeurs superscalaires 64 bits sur le Cray ça 048 nçuds èavec processeurs 64 bits par nçudè sur la machine Paragon d'intel.
31 0 Chapitre 1. Des circuits VLSI aux machines parallçeles M M M M UT UT UT UT UC UC UC UC Rçeseau d'interruption Rçeseau d'interconnexion M: mçemoire UT : unitçe de traitement UC : unitçe de contr^ole Fig. 1.4 :Architecture MIMD Les ipscè, ipscè860, la Paragon d'intel, les machines ça base de Transputers Inmos èt-node et MegaNode de Telmat, Computing Surface de Meiko,...è sont des machines MIMD. Ces machines ont un nombre plus faible de processeurs que dans le cas des SIMD èparallçelisme ça grain moyen et grosè, mais ceux-ci sont beaucoup plus performants. Ce nombre varie de 8 processeurs superscalaires 64 bits sur le Cray ça 048 nçuds èavec processeurs 64 bits par nçudè sur la machine Paragon d'intel. Le mode de programmation SPMD èsimple Program Multiple Dataè consiste ça exçecuter, sur une machine MIMD, un m^eme programme sur tous les processeurs, mais chaque processeur travaille sur ses propres donnçees. La distinction entre les diæçerents processeurs ne se fait qu'ça l'aide d'une variable locale contenant le numçero du processeur. En fait ce type de programmation est une extension du mode de programmation sur une machine SIMD. Par ailleurs les communications sont vues, en mode SPMD, comme un rçearrangement de donnçees. Il n'existe plus d'instruction du type send ou receive. Les programmes se dçecomposent en une succession de phases de calcul et de communication bien distinctes, ce qui nçecessite des outils de synchronisation sur les machines MIMD.
32 1.7. Historique des machines parallçeles 1 Ce type de programmation se dçeveloppe du fait de sa facilitçe de rçealisation et des langages trçes performants existent comme le FORTRAN 90, le C*, qui permettent de rçealiser du parallçelisme sur les donnçees èdata parallelismè. 1.7 Historique des machines parallçeles Les projets de construction des premiçeres machines parallçeles remontent aux annçees 70. C'est ça l'universitçe de Carnegie-Mellon èusaè qu'a dçebutçe un de ces projets èc.mmp Computer with multiple mini-processorsè. Ce projet a donnçe naissance ça l'illiac IV ë77ë. Devant les problçemes rencontrçes èæabilitçe, techniques mal ma^çtrisçees, absence de langage de programmation et d'outils de dçeveloppement, etc.è il y eut peu d'autres projets durant cette dçecennie. Par contre, les idçees dçeveloppçees au cours de ces annçees se sont retrouvçees par la suite dans la conception des processeurs. Dans les annçees 80, avec l'çevolution des technologies et une meilleure connaissance des problçemes, sont apparues les premiçeres machines parallçeles. En Grande- Bretagne, ICL a produit le DAP èdistributed Array Processorè contenant 4096 processeurs 1 bit. Mais la machine qui a fait date est le Cosmic Cube ë70ë, conçcue sous la direction de Seitz ça Caltech en Le Cosmic Cube çetait constituçe de 64 processeurs Intel 8086 organisçes en hypercube de dimension 6. Elle a çetçe ça l'origine de la machine ipscè1 d'intel, dans laquelle les communications çetaient assurçees par des interfacesç Ethernet ç. Rapidement, on a vu l'çemergence d'autres machines en hypercube comme celles produites par les sociçetçes Ametek ë68ë et ncube ë63ë. La taille moyenne de ces machines çetait, en 1985, d'une centaine de processeurs. D'autre part, certains constructeurs comme FPS misaient sur la construction de machines parallçeles ça base de processeurs possçedant des facilitçes de communication èquatre liens bidirectionnelsè. FPS proposait les sçeries T dontchaque nçud çetait constituçe de Transputers T414 d'inmos couplçes avec des co-processeurs vectoriels. Les quatre liens des Transputers permettaient de construire des hypercubes de dimension 4 et, pour les hypercubes de taille supçerieure, les liens çetaient multiplexçes, d'oçu une baisse de performance des communications entre processeurs. Du fait que les calculs vectoriels çetaient trçes rapides, l'çequilibre entre les communications et les calculs a çetçe rompu. La caractçeristique essentielle de ces machines çetait l'çechange de donnçees entre processeurs par communication le long de liens physiques. Le routage çetait de type store-and-forward èvoir le chapitre è. Vers la æn des annçees 80 sont apparues des machines issues des m^emes technologies, mais avec des processeurs plus performants è80386 et i860 ça la place des 8086 pour Intel et les T800 ça la place des T414 pour Inmosè. Les communications çetaient plus performantes mais restaient toujours pçenalisantes par rapport au potentiel de calcul. C'çetait le cas des ipscè et ipscè860 d'intel. Un certain nombre de machines telles que la sçerie T-Node de Telmat ë50ë, Computing Sur-
33 Chapitre 1. Des circuits VLSI aux machines parallçeles face de Meiko, ou Volvox d'archipel sont construites autour du Transputer T800, ou parfois de processeurs i860 pour le calcul et d'un ou plusieurs T800 pour les communications. Les machines ça base de Transputers utilisent des crossbars pour interconnecter les processeurs. Si l'on veut relier un grand nombre de processeurs comme dans le cas du MegaNode èensemble de T-Nodeè, il faut un deuxiçeme niveau de crossbars ë6ë. Gr^ace ça un crossbar spçecialisçe èle SN-switchè qui çequipe les machines de la sçerie T-Node, est apparue la notion de reconæguration dynamique èen cours d'exçecution d'un programmeè. En eæet, au cours d'un algorithme, il peut ^etre intçeressant d'exçecuter une partie du programme sur une grille, puis une autre sur un hypercube, sans avoir ça sauvegarder les rçesultats intermçediaires, reconægurer, et recharger le programme sur la nouvelle topologie. Mais pour des raisons de diæcultçe et de co^ut lorsque le nombre de processeurs devient trop çelevçe, cette technique est devenue rapidement caduque. A la æn des annçees 80, le routage restait encore du type store-and-forward èlogicielè sauf pour Intel qui a introduit le direct-connect èdçerivçe de la commutation de circuitè, qui est rçealisçe de façcon matçerielle. Ce mode, prçesentçe plus en dçetail dans le chapitre, permet de diminuer le temps de transfert d'un message entre deux nçuds çeloignçes. A cette æn, deux techniques sont exploitçees : le contr^ole est indçependant du processeur de calcul et est de type matçeriel èrouteur implantçe avec des mçemoires programmables : gate array CMOSè, de plus, il n'y a pas de stockage dans les nçuds intermçediaires comme en store-and-forward. Les constructeurs de machines ont adoptçe ce type de routage, comme les versions ipscè et ipscè860 de l'hypercube d'intel, la Simult èex Ametekè 010, en collaboration avec Caltech ë75, chap. 1ë ou encore le Torus Routing Chip èmessage Driven Processor du MIT ë0ëè qui autorisait un routage wormhole èvoir chapitre è sans interblocage sur un k-ary-n-cube, de prçefçerence de dimension n =.On y exploitait des techniques mises au point par Dally et Seitz ë3ë. A peu prçes ça la m^eme çepoque est apparue la machine Butteræy TC000 de BBN èbolt, Beranek and Newman Inc.è. Cette machine çetait constituçee de processeurs 6800 de Motorola interconnectçes par un rçeseau multi-çetages en forme de butteræy. Les communications interprocesseurs se faisaient par commutation de paquets èvoir chapitre è, ce qui permettait d'avoir de bonnes performances ë4ë. Dçes le dçebut des annçees 90, une nouvelle gçençeration de processeurs est apparue sur le marchçe, et la gçençeralisation des communications par commutation de circuit a donnçe naissance ça une nouvelleç gamme ç de machines parallçeles. Ces machines se retrouvent communçement appelçees MPP èmassively Parallel Processingè. Mais avant de dçecrire briçevement ces nouvelles machines, nous allons nous intçeresser aux composants qui les constituent.
34 1.8. Description des composants Description des composants Les processeurs A l'heure actuelle, les processeurs intçegrent une grande puissance de calcul ède l'ordre de plusieurs dizaines de MFlopsè. Gçençeralement, ces processeurs performants ne possçedent pas de gestion interne des liens de communication. En eæet, l'intçer^et çeconomique des machines parallçeles reste faible, et ces processeurs sont d'abord conçcus pour çequiper les stations de travail et les micro-ordinateurs. Pour construire des machines parallçeles avec de tels processeurs, les constructeurs vont associer, au sein du m^eme nçud, un deuxiçeme processeur qui ne s'occupera que des communications ècomme par exemple sur la Paragon d'intel, la Computing Surface de Meiko, la Volvox d'archipel, etc.è. Voici une prçesentation des processeurs les plus utilisçes : í Alpha Le processeur Alpha est la nouvelle architecture RISC 64 bits proposçee par DEC ë8ëë9ë. Comme Sun avec le Sparc, DEC propose une architecture ouverte ça diverses implantations, en particulier aux implantations parallçeles. L'architecture de ce processeur devrait çevoluer au cours des vingt prochaines annçees, et les performances devraient^etre amçeliorçees d'un facteur 1000 ë46ë. Dans un premier temps, les performances de ce processeur sont de l'ordre de 00 SPECmark, 400 MIPS, et 00 MFlops. DEC annonce jusqu'ça 00 MHz mais l'horloge est ça une phase èticè, au lieu de deux ètic-tacè. De plus, on ne sait pas encore fabriquer des caches externes qui supportent 00 MHz. Fin 199, DEC a prçesentçe sa nouvelle gamme de stations de travail ça base d'alpha. La plus puissante de ces stations est çequipçee d'un processeur dçeveloppant 15 SPECmark, et ayant une frçequence d'horloge de 150 MHz. Cray, qui est un partenaire industriel de DEC dans ce projet, utilise l'alpha pour construire une machine massivement parallçele : le T3D. í i860 XRèXP Ce processeur est sorti vers la æn des annçees 80. Il possçede une architecture RISC 3 bits ayant une frçequence d'horloge de 40 MHz. Il existe une version amçeliorçee, l'i860 XP, avec cohçerence de cache ; il possçede une horloge ça 50 MHz et peut fournir une puissance de cr^ete de 75 MFlops et 4 MIPS. Le i860 possçede, en plus des composants courants d'un processeur çelçementaire, une unitçe de contr^ole des pipelines qui gçere une unitçe graphique, et une unitçe de calcul æottant, le tout sur le m^eme bo^çtier. L'originalitçe du processeur vient du fait que les unitçes pipelines peuvent travailler en parallçele avec le reste du processeur ë54ë. Sa conception ne prçevoyant pas de liens de communication, les cartes utilisçees sur les machines Meiko ou Archipel sont dotçees de Transputers pour
35 4 Chapitre 1. Des circuits VLSI aux machines parallçeles pallier cette lacune. Les communications entre le i860 et les Transputers se font via la mçemoire. Pour l'ipscè860, Intel a mis au point un composant de communication spçecial, le DCRM èdirect Connect Routing Moduleè, qui est connectçe au i860 via la mçemoire. On notera que ce processeur est le seul qui n'çequipe pas de stations de travail. í PA-Risc Hewlett-Packard dçeveloppe des composants PA-Risc èpa pour Precision Architectureè. Ces composants forment une sçerie de processeurs RISC 64 bits. Le haut de gamme a une frçequence d'horloge de 99 MHz, et dçeveloppe 14 MIPS pour une puissance de 40 MFlops. Ce processeur çequipe les stations de travail de la gamme HP9000 sçerie 700 ë6ë. Convex utilise ce processeur dans la fabrication d'une machine parallçele. De plus HP propose des clusters ègroupe de stations connectçees par exemple par rçeseau Ethernetè composçes de huit stations de travail. í R4000 Ce processeur est dçeveloppçe par la sociçetçe Mips ; il a une architecture RISC 64 bits. Sa frçequence d'horloge est de 100 MHz, pour une puissance de 70 SPECmark. Le R5000 devrait succçeder au R4000. Le R5000 devrait avoir une frçequence de 150 MHz et dçevelopper 140 SPECmark. On retrouve ce processeur dans les machines de Silicon Graphics, oçu ces processeurs sont connectçes jusqu'au nombre de huit. í RSè6000 Ce processeur, dçeveloppçe par IBM, çequipe les stations de travail RSè6000. Il a une frçequence d'horloge de 6; 5 MHz, et dçeveloppe 15 MFlops. Ce processeur 3è64 bits a çetçe choisi par IBM pour constituer les nçuds de la nouvelle machine parallçele SP1. í MicroSparc Sun a dçeveloppçe le concept de processeur ça architecture extensible, avec la gamme de ses processeurs de la sçerie Sparc èen fait, Sparc est l'acronyme de Scalable Processor Architectureè. Le MicroSparc est un processeur qui suit les spçeciæcations Sparc. C'est un processeur RISC 3 bits ë48ë, utilisçe par Sun dans la construction de ses stations de travail èsun 4è. Actuellement, ce processeur a une frçequence d'horloge de 40 Mhz, et peut fournir 40 MIPS, avec une puissance de cr^ete de l'ordre de 5 MFlops. Gr^ace ça sa MMU èmemory Management Unitè trçes performante, le processeur MicroSparc est capable de changer trçes rapidement de contexte entre diffçerents processus, ce qui lui permet de gçerer les applications de plusieurs utilisateurs.
36 1.8. Description des composants 5 í SuperSparc ou Viking Sun s'est associçe avec Texas Instruments, pour construire un processeur ça architecture Sparc. Le nom de ce processeur est le Viking ou SuperSparc èc'est une çevolution du MicroSparcè. C'est un processeur RISC 64 bits, ayant une frçequence d'horloge de 40 MHz, et ayant une puissance de 100 MIPS. Ce processeur devrait çevoluer pour atteindre, en 1994, une puissance de 150 SPECint9 et 00 SPECfp9 pour une frçequence d'horloge de 90 MHz. C'est le seul processeur prçesentçe ici qui soit construit en technologie BICMOS èbipolaire CMOSè. Le Viking est utilisçe par le consortium PCI, regroupant Meiko, Parsys et Telmat, pour la construction de la nouvelle machine CS-. De plus, ce processeur est utilisçe par Sun pour sa nouvelle gamme de stations de travail : SparcStation 10. La plus grosse de ces stations regroupe 4 Viking connectçes par un bus. Pour 1995, Sun prçevoit une nouvelle gamme de processeurs appelçes Ultra- Sparc. Ces processeurs auront des frçequences d'horloge variant de 140 ça 75 MHz, pour une puissance maximale de 475 SPECint9 et 750 SPECfp9. Pour rçealiser de tels processeurs, Sun va devoir augmenter considçerablement le nombre de transistors de ses puces. Ce qui va nçecessiter l'utilisation de technologies d'intçegration plus performantes Les processeurs avec facilitçes de communication í Texas Instrument TMS30C40 Ce processeur 3 bits est construit pour le traitement parallçele du signal èdigital Signal Processorè. Il possçede une unitçe centrale de calcul ècpuè dçeveloppant 5 MIPS et 50 MFlops avec une frçequence d'horloge de 5 MHz ë49ë. Il comporte des instructions de transfert de blocs avec l'adressage bit-reverse utile dans le calcul de la FFT ètransformçee de Fourier rapideè. Il possçede six co-processeurs DMA èdirect Memory Accessè et six ports de communication bidirectionnels parallçeles, ce qui lui permet d'avoir une bande passante totale de 30 Moès ë41ë. Rappelons qu'un DMA est une unitçe dçediçee aux transferts de donnçees entre les diverses mçemoires et les ports de communications, les transferts s'eæectuant sans intervention du CPU. Les DMA permettent donc un traitement concurrentiel des entrçeesèsorties et des opçerations du CPU. Texas Instruments propose aussi un Digital crossbar switch, qui oære 16 connexions de liens. Son dçelai de reconæguration est de 0 ns. í T800 Ce processeur RISC 3 bits, rçealisçe par Inmos, dçeveloppe 1; 5 MFlops, 30 MIPS et a une frçequence de 5 MHz. Il dispose de 4 liens bidirectionnels,
37 6 Chapitre 1. Des circuits VLSI aux machines parallçeles ayant chacun un dçebit de ; 5 Moès. Ces liens fonctionnent de maniçere autonome par l'intermçediaire d'un DMA par lien et par direction. Ces processeurs peuvent ^etre interconnectçes par un crossbar èc004è ë51ë. Le T800 dçejça ancien est peu performant, et sert surtout dans les systçemes embarquçes, ou il est couplçe ça des processeurs plus performants. Dans ce dernier cas, le T800 ne s'occupe alors plus que des communications. C'est le plus utilisçe parmi les processeurs possçedant des facilitçes de communication. í T9000 et C104 í T9000 Le T9000 est le processeur qui succçede au T800 dans la gamme Inmos. Tout comme le T800, il sera destinçe ça la construction de machines MIMD, chacun de ses quatre liens bidirectionnels pouvant ^etre connectçe ça un composant de routage : le C104. Le T9000 est un processeur 3 bits, dotçe d'une unitçe æottante sur 64 bits et dont les performances annoncçees sont 00 MIPS et 5 MFlops. L'architecture est du type superscalaire et comporte un pipeline. Un groupeur d'instructions est chargçe d'ordonnancer au mieux les instructions en attente ë65ë, aæn d'en faire exçecuter certaines en parallçele, mais sans modiæer l'ordre dans le æot d'instructions. Comme dans le T800, il y a un ordonnanceur intçegrçe qui permet un temps de changement des processus actifs trçes faible ède l'ordre de la microsecondeè. De plus, les processus inactifs ne consomment pas de temps CPU. Ceci permet d'çecrire des programmes parallçeles performants èen Occam ou en Cè ë13ë ë58ë. Les principales çevolutions par rapport au T800 sont: ílafrçequence d'horloge qui passe de 5 ça 50 MHz ; íledçebit des liens de communication qui passe de :5 Moès ça 1; 5 Moès. í la gestion de canaux virtuels qui va grandement faciliter la programmation. Une unitçe interne gçere le multiplexage des liens physiques, c'est le Virtual Channel Processor. Il gçere l'envoi des messages entre processus, de façcon locale ou ça travers le C104. Les envois sont mis dans une æle d'attente pour ne pas bloquer le CPU. Ce VCP gçere les quatre liens du T9000 et leurs contr^oleurs DMA associçes. On peut construire de grands systçemes ça base de T9000, par des liaisons point ça point, ou bien les interconnecter avec des C104. í C104 Le C104 est un composant de routage incluant un crossbar 3æ3 non bloquant, qui permet d'interconnecter des liens de T9000 ou des liens
38 1.8. Description des composants 7 de C104. Les messages transmis sur ces liens sont dçecoupçes en paquets de 3 octets et sont routçes en mode wormhole dans le C104 ë59ë. Ce routage de paquets permet la gestion des canaux virtuels autorisçes par le T9000. Ainsi, les messages peuvent ^etre multiplexçes sur les liens par le Virtual Channel Processor. Cette notion de wormhole est quelque peu diæçerente de celle utilisçee ça propos des rçeseaux point ça point. En eæet, il n'y a pas de liens dans un C104, ni de nçuds intermçediaires ça traverser. Le principe du wormhole est expliquçe en dçetail dans le chapitre, mais on peut prçeciser ici qu'il diæçere de la commutation de circuit du fait que l'on n'attend pas d'accusçe de rçeception dans ce mode de commutation. On transmet les donnçees en m^eme temps que l'on çetablit le chemin. Le protocole de communication choisi permet d'çeviter les interblocages dans les C104. Il consiste ça attribuer ça chaque lien de sortie d'un C104 un intervalle qui permet de sçelectionner un lien en fonction de l'adresse de destination du message. L'algorithme d'çetiquetage ne permet pas toujours de donner un routage optimal, mais il fonctionne bien sur les topologies courantes. On peut aussi utiliser un mode de routage universel ë79ë qui permet d'çeviter les goulots d'çetranglement dans le rçeseau. Ces deux fonctions sont assurçees par des composants internes du C104 : l'interval selector et le random header generator. On peut connecter ces crossbars programmables soit ça des T9000, soit ça d'autres C104 pour construire de plus grands rçeseaux. Les simulations faites par Inmos donnent des dçelais moyens de transmission entre deux nçuds de 7 ça 64çs, selon la taille du rçeseau èhypercubes de 64 ça nçudsè. Notons qu'il existe plusieurs composants spçecialisçes dans le routage, dçeveloppçes par les constructeurs pour çequiper leurs machines. Mais chaque constructeur garde secret ses composants. Voici un tableau rçecapitulatif des diæçerents types de processeurs commercialisçes, qui permet de comparer les performances et les optiques de chaque constructeur.
39 8 Chapitre 1. Des circuits VLSI aux machines parallçeles Processeurs Alpha i860 XP PA-7100 R4000 RSè6000 MicroSparc Viking Architecture RISC OUI OUI OUI OUI OUI OUI OUI superscalaire OUI OUI OUI NON OUI NON OUI pipeline OUI OUI OUI OUI OUI OUI OUI superpipeline OUI NON NON OUI NON NON NON Performances MHz MIPS MFlops SPECint SPECfp Tableau rçecapitulatif des processeurs sans facilitçes de communication Processeurs TI C40 T800 T9000 Architecture RISC OUI OUI OUI superscalaire OUI OUI OUI pipeline OUI OUI OUI superpipeline NON NON NON Performances MHz MIPS MFlops 50 1,5 5 SPECint SPECfp nombre de liens de communication Tableau rçecapitulatif des processeurs intçegrant des facilitçes de communication 1.9 Les machines parallçeles actuelles La derniçere gçençeration de machines MIMD Dans ce paragraphe, nous prçesentons les principales machines parallçeles qui sont apparues sur le marchçe ces quatre derniçeres annçees. í Campus FX800 ë1ë. Cette machine interconnecte jusqu'ça 800 processeurs via un rçeseau de clusters. Elle est d'une puissance totale de 3 GFlops. C'est une machine MIMD, ça mçemoire distribuçee entre clusters, et ça mçemoire partagçee ça l'intçerieur d'un m^eme cluster. La Campus FX800 est constituçee de 3 clusters. Chaque cluster comporte 5 processeurs çelçementaires i860 et 4 Go de mçemoire partagçee. Les clusters sont interconnectçes par un HMI èhigh-speed Memory Interconnectè d'un dçebit de ; 56 Goès. A l'intçerieur d'un cluster, l'accçes ça la mçemoire partagçee se fait par un crossbar avec un dçebit de 1; 8 Goès.
40 1.9. Les machines parallçeles actuelles 9 í CM-5 C'est la derniçere-nçee de Thinking Machines Corporation ètmcè ë17ë. Elle est prçevue pour interconnecter de 3 ça 048 processeurs. Le but de TMC est d'augmenter le nombre de processeurs çelçementaires jusqu'ça 16384, aæn d'obtenir TFlops de performance de cr^ete. Cette machine est du type MIMD ça mçemoire distribuçee. Dans sa conæguration actuelle, elle a une puissance maximale de 6 GFlops. Les processeurs çelçementaires sont constituçes d'un processeur Sparc, d'une mçemoire de 3 Mo, et de quatre unitçes de calcul æottant de 3 MFlops chacune. Une des principales originalitçes de la CM-5 rçeside dans l'existence de trois rçeseaux. Un rçeseau de donnçees èdata Networkè gçere les communications point ça point, un rçeseau de contr^ole ècontrol Networkè permet des opçerations globales ètelles que les diæusions, rçeductions, synchronisations, etc.è par pipeline des messages, et enæn un rçeseau de diagnostic èdiagnostic Networkè transmet les messages d'erreur. La topologie adoptçee pour le rçeseau de donnçees est un fat-tree èvoir æ- gure 1.5è dçeæni par Leiserson dans ë55ë. Les feuilles sont les processeurs çelçementaires, et les nçuds intermçediaires sont des contr^oleurs-routeurs èreprçesentçes en noir sur la ægure 1.5è. Une telle topologie oære ça la machine une bonne rçesistance aux pannes, en permettant de doubler chaque lien et chaque contr^oleur-routeur. PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE Fig. 1.5 :Fat-tree du rçeseau de donnçees de la CM-5 ça 16 processeurs La ægure 1.6 montre comment est rçealisçe un des contr^oleurs-routeurs du fattree ë56ë. Chaque cellule de routage a quatre æls, et deux ou quatre parents
41 30 Chapitre 1. Des circuits VLSI aux machines parallçeles suivant le nombre d'çetages du rçeseau èou plus exactement suivant le nombre de processeursè. Un lien du contr^oleur a un dçebit de 0 Moès et les 4 liens peuvent fonctionner en parallçele. Vers les parents Vers les æls Fig. 1.6 :Un contr^oleur du fat-tree Le dçebit des liens du rçeseau de donnçees dçepend de la proximitçe des processeurs çelçementaires, c'est-ça-dire du nombre de contr^oleurs que le message doit traverser. Pour un contr^oleur, le dçebit des liens est de 0 Moès ; pour deux contr^oleurs, le dçebit est de 10 Moès ; pour plus de deux contr^oleurs, le dçebit tombe ça 5 Moès. Lors d'une communication point-ça-point, le message utilise la technique suivante : remonter de façcon alçeatoire dans le rçeseau de contr^oleurs-routeurs jusqu'ça trouver celui qui permettra la redescente vers le destinataire, de façcon dçeterministe. La bande passante globale est de 0; 5 Goès. La topologie du rçeseau de contr^ole est beaucoup plus simple. En eæet, il s'agit d'un arbre binaire complet ë56ë dont les feuilles sont les processeurs, et les autres nçuds des contr^oleurs. Ce rçeseau permet de rçealiser toutes les opçerations globales èdiæusion, synchronisation, ou logique, ou exclusif, etc.è. Les algorithmes utilisçes sont des plus simples, comme pour la diæusion par exemple : le message ça diæuser remonte jusqu'au contr^oleur racine, avant de redescendre le long de toutes les branches.
42 1.9. Les machines parallçeles actuelles 31 í Concerto Cette machine est le fruit de l'association de trois constructeurs europçeens Meiko, Parsys et Telmat, qui forment le consortium PCI èperformant Computing Industryè ë60ë. La Concerto est une machine MIMD ça mçemoire distribuçee possçedant de ça 76 processeurs çelçementaires, ce qui lui permet d'avoir une puissance de cr^ete de l'ordre de 5 GFlops. Chaque processeur çelçementaire est constituçe d'un processeur de calcul qui peut ^etre soit un i860 soit un Sparc, et de deux T800 qui assurent les communications entre processeurs çelçementaires. Ces processeurs çelçementaires sont reliçes entre eux par un rçeseau d'interconnexion appelçe CSN ècomputing Surface Networkè, dont les constructeurs ne veulent rien dçevoiler. Chaque processeur çelçementaire a une bande passante de 16 Moès. La particularitçe de cette machine est d'^etre reconægurable. En eæet, on peut crçeer sur cette machine n'importe quelle topologie de degrçe 8 avec les huit liens des deux Transputers. Notons que la sociçetçe françcaise Archipel propose aussi des machines mixtes en mçelangeant des i860 et des T800 qui çechangent leurs donnçees via la mçemoire locale du nçud. í Cray MPP: T3D Le dernier supercalculateur de Cray Research ë18, 30ë se nomme le T3D. Il a une architecture MIMD, avec une mçemoire distribuçee, mais accessible globalement par tous les processeurs. Chaque nçud du rçeseau est constituçe de deux processeurs Alpha. Le rçeseau de communication est une grille tridimensionnelle. Elle devrait ^etre capable d'atteindre 100 GFlops dans le courant 1994 et 1 TFlops en í CS- La CS- est la derniçere machine nçee du consortium PCI. Elle permet d'interconnecter 104 processeurs. Tout comme TMC, le but de PCI est d'augmenter le nombre de processeurs jusqu'ça 4096 aæn d'obtenir une machine capable de dçevelopper TFlops de puissance de cr^ete. C'est une machine MIMD, ça mçemoire distribuçee. Le rçeseau de communication èvoir ægure 1.7è adoptçe est un rçeseau omçega. Les commutateurs qui constituent le rçeseau sont des crossbars 8 æ 8, dçeveloppçes par PCI èappelçes Eliteè. En fait, ce composant ressemble au C104 dans son fonctionnement. Un Elite est couplçe avec quatre nçuds. Chaque nçud est constituçe par quatre processeurs : deux processeurs vectoriels Fujitsu dçeveloppant 00 MFlops chacun, un processeur Viking dçeveloppant 150 SPECmarks et 30 MFlops LINPACK et le dernier processeur est un composant de routage, se nommant Elan, et construit par PCI. Ce processeur a une architecture RISC, et possçede le m^eme jeu d'instructions que le Viking.
43 ELITE ELITE ELITE ELITE ELITE ELITE ELITE ELITE 3 Chapitre 1. Des circuits VLSI aux machines parallçeles PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE Fig. 1.7 :Rçeseau d'interconnexion de la CS- ça 3 processeurs Les communications se font enmodewormhole. Comme sur la CM-5, la diffusion se fait en remontant au niveau d'elite le plus haut avant des'çetendre ça tout le rçeseau. Entre l'elan et l'elite le dçebit est de 50 Moès. í Fujitsu AP1000 Cette machine MIMD comporte jusqu'ça 104 nçuds. Un programme est composçe d'une partie qui se dçeroule sur l'h^ote èstation Sun qui gçere toutes les entrçeesèsortiesè, et de t^aches chargçees sur les nçuds. Chaque nçud est dotçe d'un processeur MicroSparc et est reliçe ça trois rçeseaux de communication distincts : í Le T-net est le tore qui assemble les nçuds. Il oære des communications ça 5 Moès et des liens larges de 16 bits. Le routage des messages entre nçuds est de type wormhole. íleb-net est un rçeseau dçediçe ça la diæusion d'un message d'un nçud ça tous les autres èbroadcastè. Il connecte les nçuds, par paquets de 3, ça un anneau. Chaque paquet a la structure d'un arbre dont la racine est un nçud de l'anneau. Le B-net oære une bande passante de 50 Moès
44 1.9. Les machines parallçeles actuelles 33 qui permet de le considçerer comme un bus partagçe malgrçe sa structure multicouches. í Le S-net permet d'çetablir des points de synchronisation entre les nçuds du rçeseau. C'est un arbre dont les ar^etes sont des lignes porteuses de signaux et les nçuds sont des portes logiques ET. Chaque nçud çecrit son signal sur le S-Net et reçcoit en retour le ET de tous les nçuds. Cette machine exploite eæcacement les caches des processeurs RISC en permettant d'çechanger directement leurs donnçees avec le routeur, sans utiliser d'accçes DMA ë71ë. í iwarp d'intel ède l'expression warp speed utilisçee dans Star Trekè C'est une machine destinçee aux applications temps rçeel embarquçees ètraitement du signal, traitement d'imagesè. Elle est constituçee de 8 ça 104 cellules iwarp connectçees en tore bidimensionnel. Chaque cellule est un processeur de type VLIW è0 MIPS et 0 MFlops en simple prçecisionè qui peut exçecuter jusqu'ça neuf opçerations en parallçele. Un module de communication dotçe de quatre liens de communication parallçeles bidirectionnels confçere ça la cellule une bande passante totale de 30 Moès è4ææ40 Moèsè ë7ë. Vingt canaux virtuels, multiplexçes sur les ports physiques, peuvent ^etre gçerçes en parallçele. Le routage est de type wormhole. Les liens de type parallçele èoçu l'on transmet des octetsè sont diæciles ça utiliser pour des systçemes embarquçes ça la diæçerence des liens de type sçerie èoçu l'on transmet des bitsè des DSP ètexas Instrumentsè ou des T800 èinmosè. Il existe un mode communication systolique qui est trçes eæcace quand l'algorithme s'y pr^ete et que les messages sont bien ordonnçes. í KSR La KSR de Kendall Square Research est une machine pouvant possçeder de 3 ça 1088 processeurs, et dçeveloppant une puissance totale de 43 GFlops. Le rçeseau de processeurs est un anneau d'anneaux èvoir ægure 1.8è. Sur la machine ça 1088 processeurs, il existe un premier niveau constituçe d'un anneau de 3 processeurs, et un deuxiçeme niveau constituçede34contr^oleurs eux-m^emes connectçes en anneau. Sur chaque contr^oleur vient se connecter un anneau de premier niveau. C'est une machine MIMD ça mçemoire dite all-cache, c'est-ça-dire distribuçee sur le rçeseau, mais virtuellement partagçee par l'ensemble des processeurs. En fait chaque processeur dispose d'une mçemoire cache locale notçee LC sur la ægure 1.8. Les processeurs, construits par Sharp, possçedent une architecture RISC 64 bits et chacun est couplçe ça trois co-processeurs, une unitçe de calcul æottant èfpuè, une IPU èinteger and logical Operation Unitè et un co-processeur gçerant les entrçeesèsorties. Ce processeur dçeveloppe une puissance de 40 MFlops et 0 MIPS. Les communications se font par accçes ça des sous-pages mçemoire de taille 18
45 ANNEAU DE NIVEAU 1 ANNEAU DE NIVEAU ANNEAU DE NIVEAU 1 34 Chapitre 1. Des circuits VLSI aux machines parallçeles Ko ë66ë. Lorsqu'un processeur veut accçeder ça une donnçee qu'il ne possçede pas, il lance une requ^ete sur son anneau de niveau 1. Si celle-ci n'aboutit pas, elle passe au niveau. En retour, le processeur demandeur obtient sa page. PE PE PE PE PE PE PE PE PE PE PE PE LC LC LC LC LC LC LC LC LC LC LC LC Fig. 1.8 :Anneau d'anneaux de la KSR í ncube Cette machine permet d'interconnecter jusqu'ça 819 processeurs assemblçes en hypercube è13-cubeè et dçeveloppe une puissance maximale de 7 GFlops. C'est une machine MIMD ça mçemoire distribuçee. Les processeurs çelçementaires sont rçealisçes par ncube et ont une puissance de cr^ete de ; 4 MFlops pour une frçequence d'horloge de 0 Mhz. Chaque processeur çelçementaire peut disposer jusqu'ça 3 Mo de mçemoire. Le dçebit de chaque lien est de ; Moès ë63ë. Le ncube prçesente deux particularitçes. La premiçere est que chaque processeur çelçementaire possçede un lien directement connectçe avec l'extçerieur, ce qui permet de rçealiser trçes facilement des entrçeesèsorties. La deuxiçeme est
46 1.9. Les machines parallçeles actuelles 35 l'existence d'une horloge globale. En eæet, peu de machines MIMD ont cette particularitçe et on peut ainsi introduire de vrais points de synchronisation dans les programmes. Le routage est rçealisçe par le matçeriel, selon le mode wormhole. En attendant sa future machine, ncube a annoncçe, en septembre 199, le ncube S qui oære un gain de performance de 50è par rapport au ncube. í ncube 3 Le ncube 3 èconnu sous le nom de code Whopperè est le futur ordinateur parallçele de ncube, et sa commercialisation est prçevue pour Cette machine sera MIMD et permettra d'interconnecter jusqu'ça processeurs 64 bits. Comme sur son prçedçecesseur, les processeurs seront connectçes en hypercube è16-cubeè, mais cette fois-ci ncube utilisera des processeurs construits par Hewlett-Packard. Jusqu'ça ce jour, ncube utilisait des processeurs ç maison ç. Ces processeurs seront cadencçes ça 50 Mhz et dçevelopperont de l'ordre de 100 MFlops et 3 GIPS. Chaque processeur disposera de 18 canaux de communication et de 1 Go de mçemoire locale. La machine dans sa version complçete aurait une puissance de cr^ete de 6; 5 TFlops. í Paragon Cette machine est la version commerciale du projet Delta-Touchstone mençe par Intel. Elle dispose de 56 ça 4096 nçuds connectçes physiquement en grille bidimensionnelle èvoir ægure 1.9è et dçeveloppe une puissance de cr^ete de 4 ça 300 GFlops. C'est une machine MIMD ça mçemoire distribuçee ë16ë. Chaque nçud est constituçe d'un processeur de calcul i860 XP, d'une mçemoire pouvant aller jusqu'ça une capacitçe de 18 Mo, et d'un deuxiçeme i860 XP chargçe de la prçeparation des messages lors des rçeceptions ou des çemissions. Ce deuxiçeme i860 permet de libçerer le processeur de calcul de cette t^ache. Chaque nçud contient aussi un PMRC èparagon Mesh Routing Chipè, l'ensemble des PMRC constituant les sommets de la grille. Ces PMRC ont pour r^ole de router les informations dans le rçeseau. Ce routage est eæectuçe en wormhole. Chaque PMRC possçede 4 liens bidirectionnels avec ses 4 voisins et chaque lien a un dçebit de 00 Moès en full duplex. í SP1 Aprçes avoir dçeveloppçe des rçeseaux de stations de travail RSè6000, reliçees entre elles par des interconnexions en æbre optique, IBM produit une machine parallçele : le SP1 èscalable Parallelè ë47ë. Cette machine peut avoir de 8 ça 64 processeurs, pour une puissance maximale de 8 GFlops. Chaque processeur est un RSè6000 ayant une frçequence d'horloge de 6; 5 MHz et dçeveloppant 15 MFlops de puissance de cr^ete. Il existe sur le SP1 deux
47 36 Chapitre 1. Des circuits VLSI aux machines parallçeles PE PE PE PMRC PMRC PMRC PE PE PE PMRC PMRC PMRC PE PE PE PMRC PMRC PMRC Fig. 1.9 :Rçeseau de la Paragon rçeseaux de communication. Le premier permet de connecter les processeurs via Ethernet, avec un dçebit de 10 Moès, ou via FDDI èfiber Distributed Data Interfaceè, avec un dçebit de 100 Moès. Le second est un rçeseau multiçetages en omçega. Les liens de ce rçeseau ont un dçebit de 40 Moès èfull-duplexè. Le SP1 ça 64 processeurs est constituçe de quatre clusters contenant chacun 16 processeurs RSè6000 èrectangles grisçes sur la ægure 1.10è et deux çetages de commutateurs èpetits rectangles blancs sur la ægure 1.10è. De chaque cluster sortent seize liens, douze vers les trois autres clusters, et les quatre restant servent ça des connexions externes èdisques par exempleè.
48 1.9. Les machines parallçeles actuelles Fig :Rçeseau d'interconnexion du SP1 ça 64 processeurs í SUN Sun ne propose pas encore proprement dit une machine parallçele, mais plut^ot un rçeseau de stations trçes performant. Sun groupe un ensemble de stations SuperSparc modçele 40 ayantchacune une puissance de 3 MFlops. Ces stations sont reliçees entre elles par un rçeseau ATM èasynchronous Transport Modeè ça 155 Mbitsès. Ce rçeseau a une structure globale en çetoile. Aæn de pouvoir utiliser ce rçeseau comme une vçeritable machine MIMD, il est nçecessaire d'utiliser une sur-couche logicielle èstyle PVMè. í Projets autour du T9000 Les Transputers T9000 d'inmos et leurs composants d'interconnexion èc104è, bien que prometteurs au vu des annonces, tardent ça entrer en phase de production. Ils devraient permettre la construction de grands calculateurs MIMD europçeens. Les programmes europçeens GPMIMD et GENESIS II regroupent les constructeurs Meiko, Parsys et Telmat, et ont pour but la construction d'une machine parallçele ça base de T9000 et de C104. Un autre projet de machine rçealisçe cette fois par Parsytec, associe le T9000 et le C104 ë64ë. Cette machine aurait pour nom CG et aurait jusqu'ça processeurs T9000, ce qui permettrait de dçevelopper une puissance de cr^ete
49 38 Chapitre 1. Des circuits VLSI aux machines parallçeles de 400 GFlops. Son architecture serait une grille tridimensionnelle formçee de 8 æ 8 æ 16 clusters. Chaque cluster formerait un nçud de la grille tridimensionnelle, contenant 16 T9000 et 44 C104, oçu chaque T9000 aurait un lien connectçe ça chaque C104. Enæn, le projet LHPC èlaboratoire de Hautes Performances en Calculè rçealisçe par la sociçetçe Archipel et des universitaires, a pour objet la construction d'une machine modulaire ça base de T9000 et de C104 pour les communications et de processeurs spçeciæques pour les calculs La derniçere gçençeration de machines SIMD Il est ça noter toutefois que ce type de machine tend ça dispara^çtre au proæt des machines MIMD. En eæet, les machines SIMD sont constituçees d'un grand nombre de processeurs peu performants, souvent incapables de rçealiser ça eux seuls une opçeration sur des æottants. De plus ce type de machine çetait çetudiçe uniquement pour du parallçelisme ça grain æn. í CM- La Connection Machine ë45ë est une machine du constructeur Thinking Machines Corporation ètmcè. Elle est constituçee de cartes identiques, regroupant 16 modules de 3 processeurs çelçementaires 1 bit ça 10 MHz. Dans sa conæguration maximale elle contient processeurs çelçementaires et a une puissance de cr^ete de 40 GFlops. Un module contient deux circuits constituçes de 16 processeurs çelçementaires plus une unitçe de communication, auxquels s'ajoutent une mçemoire locale et une unitçe de calcul æottant. L'ensemble des modules est reliçe ça l'ordinateur frontal ça travers un sçequenceur par un bus d'instruction et un bus d'adresse. Les circuits sont reliçes entre eux par un rçeseau de type hypercube ède degrçe 1 pour la conæguration maximaleè. Les liaisons internes d'un groupe de 16 processeurs çelçementaires sont rçealisçees par un rçeseau d'interconnexion. Il s'agit d'un butteræy ça quatre çetages ë5ë. L'essentiel des applications testçees sur la CM- çetant de type scientiæque, une unitçe de calcul æottant a çetçe ajoutçee aæn d'accçelçerer les calculs sur les nombres rçeels. Sur les derniçeres versions de la machine ècm-00è, il est possible d'utiliser des processeurs travaillant en format double prçecision è64 bitsè pour amçeliorer la prçecision. Le gain de temps obtenu gr^ace ça l'apport de l'unitçe æottante est de l'ordre de 0 par rapport au calcul sçerie èaddition bit ça bitè sur les processeurs çelçementaires. Les communications possibles sont de trois types : í les communications gçençerales qui servent ça envoyer un message d'un processeur ça n'importe quel autre. Elles utilisent une unitçe de communication interne èun routeur ça la CM-è, ce qui entra^çne une perte sensible au niveau des performances.
50 1.9. Les machines parallçeles actuelles 39 í les communications NEWS ènorth, East, West, Southè qui permettent d'envoyer un message sur un processeur voisin dans la topologie choisie. Les processeurs exçecutant la m^eme instruction, il n'existe pas de conæit de liens. Ces communications sont donc trçes rapides. í les communications avec recombinaison. Elles permettent de communiquer entre les processeurs d'une m^eme dimension de la topologie choisie. Elles associent ça la fois communications et opçerations de recombinaison binaire des messages. Ces communications utilisent les liens de l'hypercube reliant tous les circuits ègroupe de 16 processeursè. Par exemple, elles permettent de rçealiser un produit scalaire sur une ligne de matrice. í DAP èdistributed Array of Processorsè La DAP est une machine SIMD commercialisçee par le constructeur anglais AMT. Elle est constituçee de processeurs 1 bit connectçes en grille 64 æ 64, soit 4096 processeurs au total. Ces processeurs ont une frçequence d'horloge de 10 MHz. La DAP ça 4096 processeurs a une puissance de 560 MFlops. Les communications se font selon les lignes et les colonnes de la grille. La bande passante totale de la machine est de 5; Goès. De plus, AMT a dçeveloppçe des bibliothçeques de communications et de calculs qui permettentçaladap d'^etre particuliçerement bien adaptçee au traitement du signal et d'images. í MasPar MP-1 et MP- La MasPar MP-1 est une machine de type SIMD dont les processeurs constituent une grille torique octogonale ë10ë, chaque processeur çetant reliçe ça huit autres processeurs suivant les directions de la rose des vents. Les processeurs çelçementaires sont des processeurs 4 bits ; ils fonctionnent avec une frçequence d'horloge de base de 1; 5 Mhz, et possçedent chacun 16 Ko de mçemoire. La MP-1 interconnecte de 104 ça processeurs. La MP-116, c'est-ça-dire la MasPar ça processeurs, a une puissance de 1; 5 GFlops. Chaque processeur de la grille est connectçe çaunsçequenceur ou ACU èarray Control Unitè. Ce sçequenceur est un processeur 4 bits possçedant ses propres registres, sa propre mçemoire pour les donnçees et les instructions. C'est lui qui reçcoit le code exçecutable, et qui est chargçe, lors de l'exçecution, d'envoyer le code, ainsi que les donnçees, aux processeurs de la grille. Il y a trois types de communication sur la MP-1 : í Les communications X-Net permettent ça tous les processeurs çelçementaires actifs d'envoyer un message ça tous les processeurs se trouvant ça une distance donnçee dans une des huit directions dçeænies par les liens. í Les communications via un routeur permettent de faire communiquer entre eux n'importe quels processeurs. Le routage est rçealisçe gr^ace ça trois niveaux de crossbars.
51 40 Chapitre 1. Des circuits VLSI aux machines parallçeles í Les communications de typeç proc ç qui permettentd'çetablir des communications entre les processeurs çelçementaires et l'acu èarray Control Unitè. Digital vient d'annoncer la MasPar MP-. Cette machine est une çevolution de la MP-1 et possçede entre 104 et processeurs 3 bits capables chacun de rçealiser 133 MIPS et 1; 5 MFlops suivant les m^emes principes. í Zephir C'est la premiçere machine de Wavetracer ë80ë. Zephir est du type SIMD et possçede jusqu'ça 819 processeurs. La topologie adoptçee par Wavetracer est la grille tridimensionnelle, ce qui permet de traiter plus facilement les problçemes dans l'espace, tels que la diæusion de la chaleur ou encore le traitement d'images tridimensionnelles. Un des avantages de cette machine rçeside dans le dçeploiement de la grille tridimensionnelle, aæn d'obtenir une grille bidimensionnelle. Avec 819 processeurs on peut donc avoir soit une grille tridimensionnelle è16 æ 3 æ 16è soit une grille bidimensionnelle è64 æ 18è. Les processeurs de cette machine sont des processeurs çelçementaires 1 bit ayant une frçequence d'horloge de 10 Mhz. Cette machine dçeveloppe 700 MIPS pour 10 MFlops. Le but de Wavetracer est de construire des machines massivement parallçeles bas de gamme, et ne prenant pas de place. En eæet cette machine tient sur un bureau èelle n'est guçere plus grosse qu'une station de travailè. Rçecapitulatif Les tableaux suivants rçesument les principales caractçeristiques des machines parallçeles çenumçerçees prçecçedemment ainsi qu'un tableau comparatif des performances rçeelles de ces machines èces performances ontçetçe obtenues avec un benchmark LINPACK par J. Dongarra ë33ëè.
52 1.9. Les machines parallçeles actuelles 41 Nom de la Puissance Nombre Mode de Topologie machine de de contr^ole du rçeseau de cr^ete processeurs communication Campus FX800 3 GFlops 800 MIMD ç rçeseau complet ç CM-5 6 GFlops 104 MIMD fat-tree et arbre binaire Concerto 5 GFlops 76 MIMD reconægurable CS- 51 GFlops 56 MIMD omçega Fujitsu AP GFlops 104 MIMD tore KSR 43 GFlops 1088 MIMD anneau d'anneaux ncube 7 GFlops 819 MIMD hypercube Paragon 300 GFlops 4096 MIMD grille D SP1 8 GFlops 64 MIMD omçega T3D 4.8 GFlops 3 MIMD grille 3D torique CM- 40 GFlops SIMD hypercube MasPar 1,5 GFlops SIMD tore D Zephir 10 MFlops SIMD grille 3D Rçecapitulatif des principales machines parallçeles existantes Type de nombre de R max N max N 1= R peak machine processeurs GFlops GFlops Thinking Machines CM , Intel Delta è40 MHzè 51 13, Thinking Machines CM-00 è10 MHzè 048 9, Alliant Campus FX800 è40 MHzè 19 4, ,7 SP1 18 3, KSR 56 3, , Paragon 06 3, ,4 Fujitsu AP , ,8 ncube è0 MHzè 104 1, ,4 MasPar MP , ,4 Intel ipscè860 è40 MHzè 7 1, ,9 Meiko Computing Surface è40 MHzè 6 1, ,5 IBM RSè6000 Cluster è6,5 MHzè 8 0, ,0 MasPar MP , ,55 Performances des principales machines parallçeles existantes Les colonnes du tableau prçecçedent donnent les quantitçes suivantes : í R max est la performance en GFlops pour le plus grand problçeme pouvant ^etre exçecutçe sur la machine. í N max est la taille en octets èdu nombre de donnçeesè du plus grand problçeme pouvant ^etre exçecutçe sur la machine. í N 1= est la taille en octets pour laquelle les performances obtenues sont moitiçe der max.
53 4 Chapitre 1. Des circuits VLSI aux machines parallçeles í R peak est la performance de cr^ete de la machine Les grandes lignes actuelles Les tendances qui se dçegagent des nouvelles machines prçesentçees ci-dessus sont la gçençeralisation du routage de type wormhole ou commutation de circuit èavec l'apparition de routeurs matçeriels performantsè, et la disparition des ordinateurs frontaux ècomme pour la CM-5 ou la Paragon oçu les utilisateurs se connectent directement sur un processeur de la machine, vu qu'un certain nombre de nçuds ont un noyau systçemeè. Une autre tendance est la disparition des rçeseaux ç classiques ç èhypercube, anneau, grille, etc.è au proæt de rçeseaux multi-çetages comme sur la CS- de PCI, la SP1 d'ibm. L'avantage de ces rçeseaux est de garantir le choix entre de nombreux chemins pour faire communiquer deux processeurs quelconques. De plus, vues les mçethodes de routage utilisçees dans ces machines, le co^ut de communication entre deux processeurs reste sensiblement le m^eme, quel que soit l'emplacement de ces processeurs dans la machine. On voit çegalement appara^çtre la notion de machines extensibles èscalableè : en ajoutant des cartes on peut augmenter le nombre de processeurs de la machine, sans que les utilisateurs aient ça modiæer leurs applications pour travailler sur la machine complçete. De plus, il çemerge deux stratçegies : la premiçere consiste ça chercher la plus grande puissance de calcul : c'est celle adoptçee par les grands constructeurs tels que Cray, Intel, Thinking Machines Corporation, etc. ; la deuxiçeme consiste ça maximiser la puissance ça prix constant : c'est le cas des machines ça base de Transputer, des constructeurs Wavetracer et Alliant, etc. En marge de ces machines dçeveloppçees par des industriels èsouvent en collaboration çetroite avec des universitçesè, de nombreux projets universitaires ont pour objet la construction de machines parallçeles dçediçees ça la programmation fonctionnelle, au traitement d'images, etc. Outre ces machines parallçeles ç traditionnelles ç, on voit appara^çtre une utilisation des rçeseaux de stations de travail comme machines parallçeles, gr^ace ça des logiciels tels que PVM èparallel Virtual Machinesè ë8ë, Express, P4 ë11ë. Les stations de travail sont reliçees entre elles par un rçeseau Ethernet ou FDDI èfiber Distributed Data Interfaceè ou par un Token-ring ë74ë. Un problçeme subsiste : le refroidissement De tous temps, les constructeurs ont multipliçe la puissance des processeurs par le nombre de processeurs de leur machine parallçele, pour annoncer sa puissance maximale. Cependant, il ne suæt pas d'assembler indçeæniment des processeurs pour avoir des systçemes toujours plus puissants. Un premier problçeme est la longueur des connexions èc'est la raison principale de la limite ça nçuds de la CM-5è. Un autre problçeme est le refroidissement du systçeme. On ne peut pas regrouper un grand nombre de processeurs dans un espace rçeduit sans conna^çtre des problçemes de surchauæe. Ces problçemes n'çetaient ça prçesent connus que dans
54 1.10. Perspectives 43 le cadre des supercalculateurs èpar exemple, Crayè. Les techniques de refroidissement liquide employçees par Cray ne sont s^urement pas applicables directement sur des machines de la taille d'un gymnase ètaille de la CM-5 ça processeursè, et il faudra donc reconsidçerer certains paramçetres des rçeseaux. Par l'augmentation du nombre de composants dans les processeurs, plus de courant circule et donc plus de chaleur se dçegage. Sur son dernier processeur, le Pentium èdestinçe pour le moment ça succçeder au 80486è, Intel a d^u installer un ventilateur sur le processeur aæn d'çeviter que celui-ci ne fonde aprçes un quart d'heure d'utilisation. DEC a rencontrçe ce type de problçeme avec l'alpha Perspectives Certains constructeurs annoncent pour leurs machines des performances de l'ordre d'une centaine de GFlops, mais, sur des applications rçeelles, les machines que nous avons prçesentçees ne dçepassent guçere quelques dizaines de GFlops. Ceci est d^u aux communications entre processeurs, et ça la non-optimisation du code pour chaque processeur. En eæet, la puissance des processeurs a augmentçe plus vite que les performances des liens de communication, actuellement les processeurs calculent ça des vitesses de l'ordre de 100 MFlops alors que les dçebits des liens sont de l'ordre 15 Moès! ce qui fait que les processeurs passent une grande partie de leur temps ça attendre des donnçees. De plus, les applications doivent rester portables pour çeviter de rçeçecrire le code chaque fois que l'on change de machine. Ceci implique qu'il est diæcile de tirer parti des spçeciæcitçes des processeurs sur lesquels on travaille. Comme, les applications sont çecrites en langage de haut niveau, il faut donc fournir rapidement des compilateurs adçequats avec chaque nouvelle machine. Ainsi, pour rçepondre ça la demande croissante de puissance de calcul, un certain nombre de constructeurs tels que Cray, Intel ou Thinking Machines Corporation envisagent de construire prochainement des machines atteignant les 3T ètera- Flops, Teraoctets, Teraoctetsèsecondeè. Pour atteindre les 3T, les constructeurs prçevoient d'une part de mçelanger des techniques SIMD et MIMD, et d'autre part de rendre les processeurs plus performants. Le CMOS et le BICMOS n'ont pas encore atteint leurs limites physiques èon parle moins de l'arsçeniure de gallium GaAsè, et le ç tout optique ç ë38ë ne semble pas recueillir beaucoup de suærages. On compte sur les supraconducteurs, la æbre optique, ou encore l'augmentation des possibilitçes d'intçegration pour augmenter les performances. Par exemple, Intel a rçeussi ça intçegrer quatre processeurs çelçementaires sur un seul substrat en laboratoire èmicro 000è, mais seulement deux en pratique èpentium, oçu il y a deux processeurs sur le m^eme substratè. Ces technologies restent encore expçerimentales et sont trçes onçereuses. Cependant, NEC a rçeussi ça produire, avec ces techniques, des processeurs dçeveloppant 0; GFlops ë8ë. Une production ça grande çechelle devrait pouvoir rçeduire les co^uts de fabrication. Les processeurs RISC comportent de plus en plus d'instructions èpar exemple
55 44 Bibliographie 168 pour le Alpha, 155 pour le HP, 118 pour le Viking, etc.è, ce qui les çeloigne radicalement du concept de jeu d'instructions rçeduit. Par ailleurs, les processeurs CISC utilisent des instructions de plus en plus simples. L'idçee est donc de fusionner ces deux principes. Par exemple, Intel est arrivçe ça exçecuter plusieurs instructions par cycle d'horloge sur ses processeurs ça architecture CISC. Les derniers processeurs d'intel comme le i960 et le Pentium combinent les techniques RISC et CISC : ce sont des processeurs de type superscalaire. Les super-machines parallçeles ne remplaceront pas des calculateurs moins ambitieux, mais plus eæcaces, pour les applications courantes. Ces super-machines seront dçediçes ça une classe d'applications qui nçecessitent les 3T : les prçevisions mçetçeorologiques sur de longues pçeriodes, la modçelisation du gçenome humain, ou encore la dynamique des battements du cçur èactuellement un jour de CPU Cray modçelise un battementè. Des machines plus communes pourront connecter de 4 ça 0 processeurs performants sur un bus, limite probable due aux problçemes posçes par la cohçerence des caches. Un gain en performance çevident devrait ^etre obtenu en mode multiutilisateurs par rçepartition de la charge des utilisateurs sur les processeurs. Enæn, des rçeseaux locaux ça haut dçebit permettront d'accçeder ça ces diæçerentes machines depuis les stations individuelles. Bibliographie ë1ë Alliant. The Campus FX800 massively parallel Supercomputer, ëë G.S. Almasi. Overview of parallel processing. Parallel Computing, :191í03, ë3ë W.C. Athas and C.L. Seitz. Multicomputers : message-passing concurrent computers. IEEE Computers, 1:9í4, ë4ë R. G. Babb. Programming parallel processors. Addison-Wesley Publishing Company Inc., ë5ë D. H. Bailey and J. T. Barton. The NAS kernel benchmark program. NASA Ames Research Center èusaè, June ë6ë H.B. Bakoglu. Circuits, interconnections and packaging for VLSI. Addison-Wesley, ë7ë B. Baxter and B. Greer. Apply : a parallel compiler on iwarp for image-processing applications. In IEEE Computer Society Press, editor, The Sixth Distributed Memory Computing Conference proceedings, pages 186í193, ë8ë A. Beguelin, J.J. Dongarra, A. Geist, R. Manchek, and V. Sunderam. A users' guide to PVM parallel virtual machine. Technical Report TM-1186, Oak Ridge National Laboratory, èusaè, July ë9ë G. Bell. The future of high performance computers in science and engineering. Communication of the ACM, 3è9è:1091í1101, ë10ë T. Blank. The MasPar MP-1. IEEE Computers, pages 0í4, ë11ë R. Bulter and E. Lusk. User's Guide to the P4 Programming System. Technical Report ANL-9è17, Argonne National Laboratory, èusaè, 199.
56 Bibliographie 45 ë1ë J. R. Bunch, J. J. Dongarra, C. B. Moler, and G. W. Stewart. LINPACK user's guide. SIAM, ë13ë A. Burns. Programming in OCCAM-. Addison Wesley, ë14ë O. Collins, S. Dolinar, R. Eliece, and F. Pollara. A VLSI decomposition of the De Bruijn graphs. Technical report, Jet Propulsion Laboratory, CIT, Pasadena èusaè, ë15ë O. Collins, F. Pollara, S. Dolinar, and J. Statman. Wiring Viterbi decoder èsplitting De Bruijn graphsè. Technical Report TDA progress 4-96, Jet Propulsion Laboratory, Pasadena èusaè, ë16ë Intel Corporation. PARAGON XPèS, product overview, ë17ë Thinking Machines Corporation. CM-5, 199. ë18ë Inc Cray Research. Cray T3D technical Summary, ë19ë R. Cypher. Theoretical aspects of VLSI pin limitations. Technical Report , Department of Computing Science, University of Washington èusaè, ë0ë W. Dally, L. Chao, A. Chien, S. Hassoun, W. Horwat, P. Song J. Kaplan, B. Totty, and S. Wills. Architecture of a message driven processor. Journal of the ACM, ë1ë W.J. Dally. A VLSI architecture for concurrent data structures. Kluwer Academic Publishers, ëë W.J. Dally. Performance analysis of k,ary n,cube interconnection networks. IEEE Transactions on Computers, C-39è6è:775í785, ë3ë W.J. Dally and C.L. Seitz. Deadlock-free message routing in multiprocessor interconnection networks. IEEE Transactions on Computers, C-36è5è:547í553, ë4ë Jean de Rumeur. Communications dans les rçeseaux de processeurs. collection ERI. Masson, ë5ë D. Delesalle, D. Trystram, and D. Wenzek. Tout ce que vous voulez savoir sur la Connection Machine. Laboratoire de Modçelisation et de Calcul, Grenoble èfranceè, ë6ë E. Delsol. HP: le RISC plus puissant et moins cher. 01 Informatique, page 4, November 199. ë7ë J. Demmel, J. J. Dongarra, J. Ducroz, A. Greenbaum, S. J. Haammarling, and D. C. Sorensen. A project for developing a linear algebra library for high-performance computers. In M. H. Wright, editor, IFIP, pages 87í9. Elsevier Science Publishers, ë8ë Digital. 1st century 64-bit RISC architecture, 199. ë9ë Digital. Digital 1064-AA microprocessor, 199. ë30ë T. Mc Donald. The Cray research MPP FORTRAN programming model. Cray Research Inc., 199. ë31ë J. J. Dongarra. Performances comparçees de 80 ordinateurs sur des programmes FOR- TRAN. Technique et Science Informatique, pages 355í360, ë3ë J. J. Dongarra. The LINPACK benchmark: an explanation. In Supercomputing, editor, First International Conference, pages 456í474, ë33ë J. J. Dongarra. Performance of various computers using standard linear equations software. Technical Report CS-89-85, Mathematical Science Section, Oak Ridge National Laboratory èusaè, April 1993.
57 46 Bibliographie ë34ë J. J. Dongarra and W. Gentzsch. Special issue : Benchmarking of high performance supercomputers. Parallel Computing, 17è10è, December ë35ë R. Duncan. A survey of parallel computer architectures. IEEE Computers, 5:5í16, ë36ë K. Eshraghian and D. A. Pucknell. Basic VLSI design, systems and circuits. Prentice-Hall, ë37ë D. Etiemble. Architecture des processeurs RISC. ai, Armand Colin, ë38ë D. G. Feitelson. Optical Computing. The MIT Press, ë39ë J. T. Feo. An analysis of the computational and parallel complexity of the Livermore loops. Parallel computing, 7èè:163í185, June ë40ë M.J. Flynn. Very high speed computing systems. Proc. IEEE, 54:1901í1909, ë41ë H. Frydlender. Implantation de rçeseaux de neurones artiæciels sur multi-processeurs ça mçemoire distribuçee. PhD thesis, Institut National Polytechnique de Grenoble, November 199. ë4ë J. D. Gee, M. D. Hill, D. N. Pnevmatikatos, and A. J. Smith. Cache performance of the SPEC benchmark. Technical Report 1049, University of California at Berkeley Computer Science Division èusaè, ë43ë D. Gçeneau. Le SPECmark est mort. 01 Informatique, January 199. ë44ë J.L. Hennessy and N.P. Jouppi. Computer technology and architecture : an evolving interaction. IEEE Computers, 4è9è:18í9, ë45ë W.D. Hillis. The Connection Machine. MIT Press, ë46ë E. Hostachy. L'architecture Alpha. 01 Informatique, pages 1í3, January 199. ë47ë IBM. IBM scalable POWERparallel ststem SP1 - User guide, ë48ë Sun Microsystem Inc. The Sparc architecture manual, ë49ë Texas Instruments Inc. Texas instruments parallel-processing æoating-point DSP. Documentation, ë50ë Telmat informatique. T-Node user manual ë51ë Inmos. Transputer databook. Inmos databook series. Inmos limited, ë5ë M. Karchmer. Communication Complexity, A New Approach to Circuit Depth. The MIT Press, ë53ë P.M. Kogge. The Architecture of Pipelined Computers. Hemisphere Publishing Corporation, ë54ë L. Kohn and N. Margulis. Introducing the Intel i bit microprocessor. IEEE Micro, ë55ë C. E. Leiserson. Fat-trees: universal networks for hardware-eæcient supercomputing. IEEE Transaction on Computers, C-34è10è:89í901, October ë56ë C. E. Leiserson. The network of the CM-5. In ACM, editor, SPAA 9, 199. ë57ë T. Lengauer. VLSI theory. In J. Van Leeuwen, editor, Handbook of Theoretical Computer Science, pages 836í868, ë58ë Inmos Limited. OCCAM : Manuel de rçefçerence. Masson, ë59ë Inmos Limited. Special T9000. La Lettre du Transputer èhors sçerieè, 1991.
58 Bibliographie 47 ë60ë Meiko Limited, Parsys Limited, and Telmat Informatique. A technical overview of the Concerto system : software tools and implementation, 199. ë61ë C. Mead and L. Conway. Introduction to VLSI Systems. Addison-Wesley, ë6ë T. Muntean and P. Waille. L'architecture des machines SuperNode. La Lettre dutransputer, è7è, ë63ë ncube. Technical overview system - ncube, ë64ë Parsytec. Parsytec GC, ë65ë D. Pountain. Virtual channels: the next generation of Transputers. Byte, April ë66ë Kendall Square Research. Technical summary, 199. ë67ë Carl Sechen. VLSI Placement and Global Routing using Simulated Annealing. Kluwer Academic Publishers, ë68ë C. L. Seitz, W. C. Athas, C. M. Flaig, A. J. Martin, J. Seizovic, C. S. Steele, and W-K. Su. The architecture and programming of the Ametek serie 010 multicomputer. In ACM Press, editor, Third Conference on Hypercube Concurrent Computers and Applications proceedings, pages 33í36, ë69ë C.L. Seitz. Concurrent VLSI architectures. IEEE Transactions on Computers, C- 33è1è:147í165, ë70ë C.L. Seitz. The Cosmic Cube. Communications of the ACM, 8è1è:í33, ë71ë T. Shimizu, T. Horie, and H. Ishihata. Low-latency message communication support for the AP1000. In ACM SIGARCH, editor, The 19th International Symposium on Computer Architecture, pages 88í97, 199. ë7ë Mazakazu Shoji. CMOS Digital Circuit Technology. Prentice Hall International Editions, ë73ë J. Statman, G. Zimmerman, F. Pollara, and O. Collins. A long constraint length VLSI Viterbi decoder for the DSN. Technical Report TDA progress 4-95, Jet Propulsion Laboratory, Pasadena èusaè, ë74ë W. R. Stevens. UNIX network programming. Prentice Hall, software series, ë75ë R. Suaya and G. Birtwist. VLSI and parallel computation. Morgan Kaufmann, ë76ë D.W. Terry, D.E. Stivers, K.W. Pennington, M.W. Riley, and H.C. Nguyen. Packaging for high performance. Technical Report SA3-619, IBM RISC Systemè6000 Technology, IBM Corporation èusaè, ë77ë A. Trew and G. Wilson. Past, present, parallel : a survey of available parallel computing systems. Springer-Verlag, ë78ë L.G. Valiant. Universality considerations in VLSI circuits. IEEE Transaction on Computers, C-30èè:135í140, ë79ë L.G. Valiant. General purpose parallel architectures. University, èusaè, ë80ë Wavetracer. A deskside massively parallel computer, Technical Report 07-89, Harvard ë81ë R. P. Weicker. An overview of common benchmarks. IEEE Computer, pages 65í75, December ë8ë G. Zorpette. Special issue: supercomputers. IEEE Spectrum, pages 7í76, September 199.
59 48 Bibliographie
60 Chapitre Modçeles de communications et topologies.1 Introduction Lorsque l'on exçecute un programme sur une machine parallçele ça mçemoire distribuçee, le temps d'exçecution de ce programme dçepend du temps de calcul et de la durçee des communications entre les processeurs. Pour minimiser le temps d'exçecution d'un processeur il est donc en particulier nçecessaire de toujours ç alimenter ç les unitçes de calcul, c'est-ça-dire de rçeduire les temps d'attente de donnçees provenant d'autres processeurs. Il faut donc d'abord minimiser le volume global de donnçees ça çechanger entre les processeurs, puis minimiser le co^ut de ces çechanges en dçeveloppant des stratçegies, c'est-ça-dire des algorithmes de communication eæcaces èvoir livre livre communications dans les rçeseaux de processeurs ë7ëè. Il existe de nombreux articles sur le sujet des communications. Le groupe ç RUMEUR ç èopçeration de C 3 è dispose d'une bibliographie de plus de deux cents articles! Cependant l'çetude de ces articles montre que les hypothçeses utilisçees diæçerent souvent, ce qui rend diæcile une quelconque comparaison de l'eæcacitçe des solutions proposçees. De plus, de nombreuses çetudes utilisent des modçeles abstraits et les rçesultats sont parfois peu exploitables sur des machines distribuçees. Aæn de rçealiser par la suite une çetude comparative des diæçerents algorithmes de communication, nous prendrons le modçele qui correspond le mieux aux communications dans les machines parallçeles ça mçemoire distribuçee de ces derniçeres annçees. Le but de ce chapitre est de prçesenter les diæçerents modes de routage utilisçes dans les machines ça mçemoire distribuçee actuelles, ainsi que les modçelisations des co^uts de communication qui leur sont associçees. En outre, la topologie du rçeseau sous-jacent est un paramçetre important pour les communications. La derniçere partie de ce chapitre sera consacrçee ça laprçesentation des topologies les plus utilisçees ça l'heure actuelle. 49
61 50 Chapitre. Modçeles de communications et topologies. Communications dans un nçud Dans le chapitre 1 nous avons prçesentçe la modçelisation d'un nçud, sans en expliquer la gestion ni les contraintes associçees. C'est ce que nous allons exposer maintenant...1 Gestion des messages Dans ce paragraphe, nous prçesentons sommairement la gestion de la reception ou de l'emission de messages entre deux processeurs: lorsqu'un nçud veut communiquer avec un autre, il utilise un de ses liens connectçes au rçeseau d'interconnexion. Il est alors important pour les performances des algorithmes que les unitçes de traitement ne soient pas interrompues. Pour cela chaque lien est couplçe ça une interface du type DMA èdirect Memory Accessè. Cette interface peut accçeder ça la mçemoire ou aux caches de donnçees sans interrompre les autres unitçes du nçud. Du fait que les nçuds deviennent de plus en plus puissants, et qu'ils disposent de systçemes multi-t^aches, il n'est pas rare que plusieurs processus s'exçecutent sur un m^eme nçud. Le nombre de processus peut donc ^etre trçes largement supçerieur au nombre de liens du nçud, ce qui pose un problçeme lorsque les processus veulent communiquer avec d'autres processus se trouvant sur d'autres nçuds du rçeseau. Pour rçesoudre ce problçeme, on considçere que les nçuds communiquent avec leurs voisins en çechangeant des messages sur des canaux. Un canal est une liaison point ça point, uni-directionnelle, entre deux nçuds reliçes par un lien physique. Plusieurs canaux peuvent partager un m^eme lien physique, on parle alors de multiplexage. Sur chaque nçud peut ^etre installçe un routeur. Le r^ole de ce routeur est d'acheminer les messages entre nçuds non voisins. Les routeurs rçealisent de façcon distribuçee un algorithme de routage qui spçeciæe le chemin ça suivre dans le rçeseau pour se rendre de tout nçud x vers tout nçud y. Cet algorithme est dçecrit par une fonction de routage. Localement, le routeur choisit, pour chaque message qui arrive sur un des canaux d'entrçee du nçud, le canal de sortie qui convient. Pour cela, il peut utiliser des tables. Ce genre de mçethode n'est cependant pas couramment utilisçe dans les machines multiprocesseurs èau contraire des grands rçeseaux plançetaires comme par exemple le routage du courrier çelectronique sur Internetè, et les multiprocesseurs utilisent le plus souvent une mçethode de routage basçee sur une arithmçetique simple qui peut ^etre implantçee avec une mçemoire programmable èen technologie CMOSè sur le nçud... Les contraintes de communication Malheureusement, pour les utilisateurs on ne peut pas rçealiser des communications aussi facilement sur une machine parallçele ça mçemoire distribuçee. En eæet, suivant les technologies et les techniques employçees un certain nombre de
62 .. Communications dans un nçud 51 restrictions existent sur les façcons et les possibilitçes de faire communiquer deux nçuds ensemble. Une premiçere restriction peut provenir du type m^eme des liens utilisçes dans le rçeseau. Considçerons deux processeurs voisins p 1 et p reliçes entre eux par un lien. í Si les communications entre ces deux processeurs ne peuvent se faire dans un sens, c'est-ça-dire que p 1 peut envoyer un message ça p mais p ne pourra jamais envoyer de message ça p 1 par ce lien alors ce type de lien est dit monodirectionnel. í Si les communications entre ces deux processeurs peuvent se faire dans les deux sens c'est-ça-dire que p 1 peut envoyer un message ça p et que p peut aussi envoyer un message ça p 1 par ce lien alors ce type de lien est dit bidirectionnel. Une deuxiçeme restriction peut avoir trait ça l'çechange simultançe de donnçees entre deux nçuds voisins. Considçerons deux processeurs p 1 et p reliçes par un lien de communication bi-directionnel. í Si un seul message ça la fois peut circuler entre p 1 et p, soit de p 1 vers p, soit de p vers p 1, le lien est dit half-duplex. í Si deux messages peuvent circuler au m^eme instant sur le m^eme lien, l'un transitant dep 1 vers p et l'autre de p vers p 1, le lien est dit full-duplex. C'est le cas le plus frçequent en pratique. Une autre restriction pourra ^etre d^ue aux limitations des possibilitçes de communication entre l'interface mçemoire et les liens de communication pour chaque nçud. í Si, lors d'une communication, chaque nçud ne peut envoyer ou recevoir un message que sur un seul lien ça la fois, les communications sont dites 1-port. Cette contrainte qui limite les çechanges est donc aussi appelçee processorbound ou whispering èlittçeralement en murmurantè. C'çetait le cas pour l'ipscè1 d'intel. í Au contraire, si chaque nçud peut utiliser simultançement tous ses liens, alors les communications sont dites æ-port, oçu æ fait rçefçerence au nombre de liens maximum des nçuds du rçeseau. C'est maintenant le nombre de liens qui limite les communications. Ce schçema est aussi appelçe link-bound ou shouting èlittçeralement en criantè. C'est le cas des systçemes ça base de Transputers èt800 ou T9000è, l'iwarp, CM ::: íentre ces deux cas les plus frçequents, il y a celui oçu seulement k liens de communication parmi les æ disponibles sont simultançement utilisables. On
63 5 Chapitre. Modçeles de communications et topologies se trouve alors dans un schçema k-port. Les communications sont limitçees par le nombre maximum de DMA gçerant les transferts de donnçees entre la mçemoire des processeurs et leurs liens de communication. On trouve donc aussi l'appellation DMA-bound. Exemples de machine : les systçemes ça base de Transputers avec multiplexage comme les FPS sçerie T..3 Diæçerents modes de commutation La transmission d'un message entre deux nçuds non directementliçes s'eæectue gr^ace aux routeurs des nçuds intermçediaires. Chaque routeur reçcoit une adresse de destination, qu'il dçecode pour dçeterminer le canal de sortie, et envoie cette adresse sur ce canal. C'est ce qu'on appelle la commutation du routeur. Le temps mis par le routeur pour rçealiser sa commutation est appelçe la latence. Il existe diæçerentes techniques de commutation, voici la description des plus utilisçees..3.1 Commutation de circuit ècircuit-switchedè La commutation de circuit consiste ça çetablir un chemin entre les deux nçuds qui veulent communiquer, avant d'envoyer le message. Le fonctionnement est le suivant: l'çemetteur envoie un en-t^ete èheaderè en direction du rçecepteur. Dans chaque nçud traversçe l'en-t^ete rçeserve un canal aæn de construire un circuit. Une fois l'en-t^ete arrivçee ça destination, un accusçe de rçeception èacknowledgementè est çemis par le rçecepteur en direction de l'çemetteur. Cet accusçe de rçeception emprunte le circuit prçecçedemment çetabli. A la rçeception de cet accusçe, l'çemetteur envoie le message en une seul fois ë1ë. La ægure.1 dçecrit ce fonctionnement. Sur cette ægure l'en-t^ete est notçe h et l'accusçe de rçeception a. Il est impossible ça d'autres messages d'emprunter une partie d'un circuit dçejça çetabli tant que le circuit n'est pas libçerçe. Ce mode de fonctionnement correspond au principe du tçelçephone. Exemple. Le direct connect qui est proposçe par Intel sur les hypercubes de la sçerie ipscè et ipscè860 est un routage de type commutation de circuit.
64 .3. Diæçerents modes de commutation 53 Message h h Emetteur h Rçecepteur h a a Message Fig..1 : Commutation de circuit..3. Commutation de messages èstore-and-forwardè Dans ce mode de commutation, l'çemetteur envoie en une seule fois le message et l'en-t^ete. Le message avance alors vers sa destination en çetant stockçe dans chaque nçud intermçediaire. A chaque çetape, le canal empruntçe est aussit^ot libçerçe. Cette technique est connue sous le nom de store-and-forward ë1ë. Le dçefaut de cette technique est de nçecessiter une taille de registre importante pour stocker le message sur les processeurs intermçediaires. En fait, ces messages sont gçençeralement stockçes en mçemoire, or les accçes mçemoire sont proportionnels ça la taille des messages d'oçu un ralentissement des communications. Par contre
65 54 Chapitre. Modçeles de communications et topologies l'avantage de cette technique est que tous les processeurs intermçediaires ont eu connaissance du message, ce qui est fort utile dans les schçemas de communication globaux comme la diæusion èvoir chapitre 5è. Exemple. La Computing Surface de Meiko, les T-Node et Mega-Node de Telmat, ou les Volvox d'archipel utilisent un routage par commutation de messages..3.3 Commutation de paquets èpacket-switchedè Ce mode est une adaptation du mode store-and-forward : en eæet le message initial est dçecoupçe en paquets de taille æxe, chaque paquet possçede un en-t^ete et est sont envoyçes les uns ça la suite des autres, ce qui permet de bçençeæcier d'un eæet pipeline èvoir description prçecise ça la section.5.1è. Ce mode de commutation prçesente deux avantages. Le premier est d^u ça la taille æxe des paquets et ça leur petite taille. En eæet, les paquets vont pouvoir ^etre stockçes dans les registres du routeur au lieu que le message complet soit stockçe en mçemoire. La capacitçe de stockage nçecessaire sur un nçud pour un canal se limite donc ça la taille d'un paquet. Comme chaque paquet possçede un en-t^ete, le deuxiçeme avantage est de pouvoir router les paquets indçependamment les uns des autres, les paquets peuvent m^eme emprunter des chemins diæçerents. Notons que ceci implique un surplus de communications engendrçe par le supplçement d'information ajoutçe ça chaque paquet, notament pour la recomposition du message ça partir des diæçerents paquets. Ceci est schçematisçe par la ægure.. M3 h M h M1 h M1 h Emetteur Rçecepteur M h M1 h M3 h Fig.. : Commutation de paquets.
66 .3. Diæçerents modes de commutation Routage wormhole Dans ce mode de routage, le message est dçecoupçe en paquets de petite taille que l'on appelle æits èæow control digitè ë6,8ëèçegals ça la taille de la queue d'un canalè. Le premier æit contient l'adresse de destination, et les autres des morceaux du message. Le premier æit avance dans le rçeseau et çetablit le chemin, il est directement suivi par les autres æits èvoir ægure.3è. Une fois que le dernier æit a traversçe un canal, ce dernier est alors disponible pour un nouveau message. Si le premier æit ne peut plus avancer car le canal qu'il doit emprunter est occupçe, il attend que ce canal se libçere. Les æits qui le suivaient sont stockçes dans les queues des canaux qu'ils occupaient, bloquant ainsi le chemin. On peut comparer le cheminement d'un message dans ce mode ça celui d'un ver qui progresse sous la terre. Notons qu'une fois que le æit de t^eteaçetçe aæectçe ça un canal, ce canal ne peut transmettre aucun æit d'un autre message tant que le message originel n'est pas passçe: ç on ne peut pas couper le ver ç. Remarque. Cette technique de routage permet au rçecepteur de recevoir des morceaux du message avant que l'çemission du message ne soit terminçee, ce qui se produit pour des messages longs. Mais elle permet aussi, dans le cas de messages trçes courts de libçerer les canaux proches de l'çemetteur avant ledçebut de la rçeception du premier æit par le destinataire. Un problçeme se pose si la distance entre les deux nçuds est grande, en eæet, des erreurs de transmission peuvent se produire, d'oçu lançecessitçe d'introduire un protocole d'accusçe de rçeception des æits dans ce cas-lça. Il est important de bien distinguer ce mode de routage des routages par commutation de paquets et des routages par commutation de circuit èou circuitswitchedè. En eæet, dans le routage par commutation de paquets, chaque paquet contient en en-t^ete l'adresse de destination et peut donc ^etre routçe indçependamment des autres paquets. Au contraire, dans le cas du wormhole, seul le premier æit contient l'adresse de destination et tous les æits suiventlem^eme chemin. Dans le routage par commutation de circuit, il faut çetablir un circuit physique entre les correspondants. Dans le cas du wormhole, il n'y a pas construction de circuit physique : le circuit n'est que virtuel et n'existe qu'entre le premier et le dernier æit. Exemple. Le wormhole açetçechoisi par Inmos pour la nouvelle sçerie des Transputers T9000 et des crossbars C104. La CM-5 de Thinking Machine Corp., la Paragon d'intel, la CS- de PCI utilisent aussi ce type de routage.
67 56 Chapitre. Modçeles de communications et topologies F3 F F1 h h Emetteur F1 h Rçecepteur F1 h F F1 F3 F F3 Fig..3 :Routage wormhole.3.5 Virtual-cut-through Le virtual-cut-through a çetçe introduit par Kermani et Kleinrock ë1ë. Ce mode de routage est identique au wormhole sauf quand la propagation du premier æit d'un message est impossible. Cette fois-ci les æits contenant le corps du message continuent ça avancer et sont tous stockçes sur le nçud oçu le premier æit s'est trouvçe bloquçe, ce qui prçesente l'avantage de libçerer des canaux qui peuvent ^etre ainsi utilisçes par d'autres messages. Le routeur doit donc disposer de queues de tailles arbitrairement grandes, ce qui ne permet pas de l'intçegrer facilement sur un nçud.
68 .4. Modçelisation du temps de communication Le mode transparence Le problçeme commun ça la commutation de circuit et ça la commutation de paquets, du wormhole et du virtual-cut-through est que les nçuds intermçediaires ne peuvent pas lire les æits qui transitent par leur routeur. En eæet, en mode wormhole par exemple, lorsqu'un message est çemis par un nçud x ça destination de z, et que ce message transite par un nçud y lors du routage, le message n'a pas çetçe stockçe dans la mçemoire de y, mais seulement dans les registres du routeur. Ceci pose des problçeme lors de schçemas de communication tels que la diæusion. C'est pourquoi le mode transparence fait l'objet d'çetudes de la part de C. T. Ho, dans ce mode les nçuds intermçediaires pourraient lire les æits qui transitent par leur routeur..4 Modçelisation du temps de communication Pour çevaluer le co^ut d'un algorithme sur une machine ça mçemoire distribuçee il est nçecessaire de conna^çtre le co^ut des communications. Aæn, de le dçeterminer diæçerents modçeles, des plus simples aux plus proches des machines, du co^ut d'une communication ont çetçe proposçes. Notons que les modçeles citçes dans cette section ne tiennent pas compte des problçemes de congestion, c'est-ça-dire que l'on considçere que tous les canaux sont libres..4.1 Modçele temps constant Dans ce modçele, on considçere qu'une communication entre deux nçuds voisins co^ute une unitçe de temps et ne dçepend pas de la taille du message communiquçe. T 1 =1: è:1è De m^eme la communication entre deux nçuds distants de d va co^uter d unitçes de temps. T d = d: è:è Dans ce modçele, les messages peuvent ^etre dçecoupçes et recombinçes sans aæecter le temps de transfert. Comme le co^ut de la communication ne dçepend pas de la taille du message, un nçud qui a reçcu prçecçedemment deux messages a intçer^et ça combiner les deux messages au lieu de faire deux envois sçeparçes. A l'inverse, le dçecoupage d'un message en petits paquets co^utera plus cher, car l'envoi de chaque paquet co^utera 1 unitçe. Ce modçele est peu rçealiste et n'a guçere qu'un intçer^et thçeorique.
69 58 Chapitre. Modçeles de communications et topologies.4. Modçele temps linçeaire Dans ce modçele le temps de transmission d'un message de taille L entre deux processeurs voisins est modçelisçe par la somme : í d'un temps d'initialisation èstart-upè æ reprçesentant le temps des initialisations de registres mçemoire, ou le temps de procçedures d'envoièaccusçe de rçeception ; í et d'un temps de propagation Lç proportionnel ça la taille L du message communiquçe. ç reprçesente le temps de propagation d'une unitçe de message. La bande passante d'un lien est donc l'inverse de ç. T 1 = æ + Lç: è:3è Ce modçele ë16, 18ë se rapproche plus de la rçealitçe des machines ça mçemoire distribuçee ë3, 17ë que le modçele temps constant. Mais comme on le verra au chapitre 6, il peut ^etre encore amçeliorçe. Voici pour quelques machines les valeurs de æ et de ç : æ çsec ç çsec=octet Ametek CM CM Fujitsu AP ipscè ipscè ipscè MegaNode Meiko CS ncube FPS T Il convient de faire plusieurs remarques relatives ça ce tableau : í il faut se garder de comparer de façcon brutale les valeurs du tableau pour en dçeduire une hiçerarchie entre les machines. En eæet, certaines valeurs de start-up par exemple ne sont pas directement comparables car elles proviennent de mesures eæectuçees dans des environnements logiciels diæçerents. C'est le cas pour les ipsc et le MegaNode. í sur les ipsc ë4, 3ë, le temps de propagation est plus important pour les messages longs que pour les courts èlimites respectives ça 1Ko dans le cas de l'ipscè1, et ça 100 octets dans le cas de l'ipscèè. Ceci est d^u ça un processus de vçeriæcation de l'espace mçemoire disponible chez le destinataire
70 .4. Modçelisation du temps de communication 59 avant l'çemission de gros messages. La modçelisation temps linçeaire ne s'applique pas directement, il faut modiæer le modçele aæn de considçerer cette discontinuitçe des paramçetres. Dans ce modçele, la communication entre deux nçuds distants de d va dçependre du mode de routage. Commutation de messages Dans le mode store-and-forward simple, le message est transmis de voisins en voisins, ce qui revient ça faire d communications de voisin ça voisin, d'oçu un temps de communication çegal ça: T d = dèæ + Lçè: è:4è Commutation de circuit et wormhole Pour ces deux modes de routage, le paramçetre æ se dçecompose en un start-up æ d^u au protocole de communication dans le nçud et ça la somme des temps æ nçecessaires pour commuter chaque routeur des nçuds intermçediaires ë14ë, d'oçu un temps de communication çegal ça: T d = æ + dæ + Lç: è:5è On peut remarquer que si l'on fait une communication entre deux voisins suivant ces modes de routage on trouve que æ = æ + æ..4.3 Les autres modçeles Les modçeles exposçes jusqu'ça prçesent sont les plus utilisçes, mais il existe dans la littçerature d'autres modçeles dont voici les principaux : í Une çetude mençee par Bertsekas et al. ëë sur les communications dans les hypercubes utilise les hypothçeses suivantes : le transfert d'informations sur les liens se fait par paquets de taille æxe. Il n'est pas possible de dçecouper, ni de combiner les paquets entre eux. Envoyer un paquet prend un temps 1, et envoyer p paquets prend un temps p. Plus gçençeralement, on peut modçeliser le temps voisin ça voisin par : T 1 = ç L mç ç L çetant la longueur du message ça envoyer, m la taille des paquets, et 1 ç bande passante des liens. la
71 60 Chapitre. Modçeles de communications et topologies í Touzene et Plateau ë19ë ont çetudiçe les communications dans le tore en supposant que le temps d'initialisation des communications çetait nul. Les messages peuvent ainsi ^etre dçecoupçes et recombinçes si nçecessaire. Cela correspond au modçele : T 1 = Lç oçu L est la longueur du message ça envoyer, et 1 est la bande passante des ç liens. Ce modçele est utilisable sur des messages de grande taille, c'est-ça-dire Lç ç æ. í Il est possible d'aæner le modçele temps linçeaire. En eæet ce modçele ne tient pas compte du nombre de liens utilisçes ça la fois sur chaque nçud. Des expçerimentations ë9ë montrent que le temps d'initialisation et le temps de propagation peuvent tous deux dçependre du nombre de liens utilisçes par un processeur ça un instant donnçe. En eæet, il faut payer le prix de la gestion logicielle du parallçelisme des liens. Le modçele est de la forme : T 1 = æ k + Lç k oçu L est la longueur du message çaenvoyer, et æ k et ç k sont respectivement les temps d'initialisation et de propagation lorsque le processeur communique en utilisant k liens. Faire varier ç est aussi la mçethode que l'on peut utilisçee pour modçeliser les communications dans les machines ça communications hiçerarchiques..5 Comparaison des principaux modes de routage Comme nous l'avons vu au chapitre 1 les trois modes de routage les plus rçepandus dans les machines ça mçemoire distribuçee sont le store-and-forward, la commutation de circuit et le wormhole, c'est pourquoi il est intçeressant de comparer rapidement ces diæçerents modes de routage. Comme le montrent les çequations.4 et 7., le routage store-and-forward s'eæectue approximativement d fois plus lentement que dans le routage wormhole ou par commutation de circuit. Voici un tableau rçecapitulatif, rappelant les principales diæçerences entre le mode store-and-forward et les modes wormhole et commutation de circuit. Ce tableau indique aussi des valeurs expçerimentales des paramçetres caractçeristiques
72 .5. Comparaison des principaux modes de routage 61 des communications. Store-and-forward Wormhole ou Circuit Un nçud stocke tout le message 1 æit en mçemoire sur un registre du routeur Blocage possible sur un nçud sur un chemin Communication ça distance d dèæ + Lçè æ + dæ + Lç Exemples de T-node, ipscè1, ipscè, ipscè860, T9000 machines ncube, Cosmic-cube ncube-, MDP èmitè Valeurs ipscè1 : æ = 1000 çs ipscè860: æ = 350 çs ç =1çs=octet æ =10çs; ç =0: çs=octet Il existe cependant des techniques logicielles qui peuvent ^etre utilisçees pour accçelçerer les communications dans le mode store-and-forward, en particulier la technique du pipeline ou encore la technique du pipeline couplçee ça l'utilisation de chemins disjoints..5.1 La technique du pipeline Pour rçeduire le temps de transmission dans le mode de routage store-andforward, on peut dçecouper le message de longueur L en paquets, et les transmettre les uns ça la suite des autres. C'est la technique du pipeline. Pour pouvoir utiliser cette technique il est nçecessaire de travailler en mode -port, car chaque nçud intermçediaire doit pouvoir çemettre et recevoir sur deux canaux diæçerents. Soit d la distance entre la source et la destination. On dçecoupe le message de longueur L en paquets de taille q. Supposons pour simpliæer l'exposçe, que L est divisible par q. Les paquets sont alors transmis les uns aprçes les autres sur le chemin de routage entre la source et la destination. Le premier paquet arrive aprçes un temps dèæ + qçè. Puis il arrive un paquet ça chaque çetape, et comme il reste L q, 1 paquets de taille q, il est nçecessaire d'attendre encore è L q, 1èèæ + qçè pour que la destination ait reçcue la totalitçe du message. Le temps de transmission est alors : T d = dèæ + qçè+è L q, 1èèæ + qçè = èd + L, 1èèæ + qçè: q
73 6 Chapitre. Modçeles de communications et topologies q Le temps T d est une fonction de q. La taille de paquet q qui minimise T d èqè Læ est q min =. On obtient, pour cette taille de paquet, un co^ut de èd,1èç çq èd, 1èæ + p Lçç : Ainsi, pour un L trçes grand, on obtient un temps de communication dans le mode store-and-forward en Lç + oèlè, ce qui masque l'inæuence de la distance. En cas de messages longs, ce temps devient comparable ça celui de l'çequation.5 obtenue dans le mode de routage wormhole et de m^eme, le chemin complet devient inutilisable pour le transfert d'autres messages..5. La technique des chemins disjoints Parmi tous les chemins reliant une source et une destination, il s'agit de trouver un certain nombre de chemins disjoints et de router certains paquets sur ces chemins disjoints ë11ë. Soit ç le nombre de ces chemins disjoints de longueur au plus d 0 ç d, on peut dçecouper le message initial de longueur L en ç blocs et router chaque bloc de longueur L èsupposçee ici aussi entiçere pour simpliæer la prçesentationè indçependamment sur chacun des chemins. Le temps de transmission ç devient: dans le mode store-and-forward, et T d = d 0 èæ + L ç çè T d = æ + d 0 æ + L ç ç dans le mode wormhole. De plus, dans le mode de routage store-and-forward, on peut pipeliner indçependamment les ç blocs sur chacun des chemins pour obtenir un temps de : q èd 0, 1èæ +s L ç ç 1 A ; ce qui reste comparable au mode wormhole pour des messages assez grands. Pour conclure, l'utilisation simultançee de ç chemins sur ç parties diæçerentes du message sous l'hypothçese multi-ports, revient ça augmenter la bande passante..6 Description des principales topologies Pour minimiser le temps de communication entre deux nçuds, un des premiers paramçetres ça minimiser est la longueur du chemin que le message va parcourir
74 .6. Description des principales topologies 63 entre les deux nçuds. Une bonne modçelisation des architectures ça mçemoire distribuçee est alors donnçee par un graphe G = èv;eè, oçu l'ensemble V des sommets du graphe reprçesente les nçuds, et l'ensemble E des ar^etes reprçesente les liens de communication entre les nçuds. La thçeorie des graphes ë1ë est trçes utile dans ce cadre-lça. Comme nous l'avons vu au chapitre 1 et dans le chapitre, il existe deux types de rçeseaux : les rçeseaux point ça point et les rçeseaux multi-çetages. Du point de vue des communications les rçeseaux multi-çetages posent moins de problçemes du fait que chaque nçud est reliçe ça tous les autres èle rçeseau peut ^etre vu comme un rçeseau completè. Mais il reste des problçemes de congestion lorsque l'on veut rçealiser des schçemas de communications globales. De plus, dans ces rçeseaux l'utilisateur n'a pas accçes aux commutateurs du rçeseau, c'est-ça-dire qu'il ne peut pas agir sur les chemins empruntçes par ses messages. C'est pour cela que nous nous sommes plus particuliçerement intçeressçes aux rçeseaux point ça point. Parmi les rçeseaux existant, les hypercubes, les grilles, les grilles toriques et les De Bruijn ont çetçe les plus utilisçes et les plus çetudiçes. La description de ces rçeseaux va permettre de mettre en valeur leur degrçe, leur diamçetre, leur nombre de nçuds et leur nombre de liens, des paramçetres qui leurs sont caractçeristiques..6.1 Les hypercubes L'hypercube est sans doute le rçeseau qui a d'abord çetçe le plus çetudiçe ë11, 18, 16ë et le plus utilisçe dans des machines parallçeles. Ce type de rçeseau a çetçe employçe par Intel dans la sçerie des ipsc, par ncube, par FPS et dans les Connection Machines 1 et. On appelle hypercube de dimension n et on note Hènè, le graphe dont les sommets sont les mots de longueur n sur un alphabet ça deux lettres 0 et 1, et dont deux sommets sont adjacents si et seulement si ils diæçerent en une seule coordonnçee. Un sommet, notçe x 1 x æææx i æææx n, est donc reliçe aux sommets x 1 x æææx i æææx n, avec i =1; ;:::;n ë15ë. Hènè est de degrçe n, de diamçetre n, il possçede n sommets et n n,1 ar^etes. Hènè peut ^etre dçeæni rçecursivement ça partir de deux copies de Hèn, 1è. Il suæt de relier entre eux les sommets de m^eme numçero. Les sommets du nouvel hypercube sont obtenus en prçeæxant les sommets des deux copies respectivement par 0 et par 1. Cette propriçetçe est trçes intçeressante du point de vue algorithmique ë13ë.
75 64 Chapitre. Modçeles de communications et topologies Fig..4 : Hypercube de dimension 4.6. Les grilles Ce rçeseau a lui aussi çetçe trçes çetudiçe. Gr^ace ça ces çetudes Intel a construit la Paragon. La grille de dimension, notçee Mèp 1 ;p è, est la somme cartçesienne de cha^çnes ayant p i sommets, avec i =1;. Mèp 1 ;p è est de degrçe 4 è sauf sur les bordsè de diamçetre èp 1, 1è+èp, 1è et possçede p 1 æ p sommets, et p 1 p, p 1, p ar^etes. Du fait de son diamçetre çelevçe, il faut des liens de communication trçes rapides pour compenser l'çeloignement des nçuds. Fig..5 : Grille Mè5,4è.6.3 Les grilles toriques Intel a aussi construit une machine parallçele ayant un rçeseau en grille torique : il s'agit du iwarp. Des çetudes sur ce rçeseau ont çetçe mençees par Y. Saad et M.H. Schultz ë16ë.
76 .6. Description des principales topologies 65 La grille torique de dimension n, notçee TMèp 1 ;p ;:::;p n è, est la somme cartçesienne de n cycles C i,avec i =1; ;:::;n. TMèp 1 ;p è est de degrçe 4, de diamçetre b p 1 c+b p c et possçede p 1 æp sommets, et p 1 p ar^etes. L'avantage de ce rçeseau par rapport ça la grille est de diviser le diamçetre par un facteur et d'^etre un graphe plus rçegulier. Fig..6 : Grille torique TMè5,4è.6.4 Les de Bruijn Le graphe de De Bruijn orientçe, notçe Bèd; Dè, est le graphe dont les sommets sont tous les mots de longueur D sur un alphabet de d lettres. Pour tout sommet x 1 x æææx D, il existe un arc de x 1 x æææx D vers chaque sommet x x 3 æææx D ç, ç çetant une lettre quelconque de l'alphabet. En pratique, on se limite souvent ça d =. Bèd; Dè est de degrçe d, de diamçetre D et possçede d D sommets, et d D+1 ar^etes ë7, 10ë. L'avantage de ce rçeseau est de possçeder un grand nombre de nçuds pour un diamçetre trçes faible. Pour le moment, ce rçeseau a çetçe utilisçe uniquement par la NASA en traitement du signal ë5ë Fig..7 : De Bruijn Bè,3è 110
77 66 Bibliographie Aæn d'obtenir la version non orientçee du de Bruijn, il faut supprimer les boucles des nçuds è000:::0è, è111:::1è et ne plus tenir compte de l'orientation des arcs..7 Conclusion Sur les machines parallçeles les communications sont trçes co^uteuses, car la vitesse de transfert sur les liens de communications est nettement infçerieure ça la vitesse de calcul des processeurs èvitesse de transfert de l'ordre de 10 Moès alors que la vitesse de calcul est de l'ordre de 80 MFlops cf. chapitre 1è. Le fait de conna^çtre le mode communication, sa modçelisation, le type de liens et la topologie du rçeseau que l'on utilise va nous permettre de dçevelopper des stratçegies de communications les moins onçereuses possibles. Bibliographie ë1ë C. Berge. Graphes. Gauthier-Villars, ëë D.P. Bertsekas, C. Ozveren, G.D. Stamoulis, P. Tseng, and J.N. Tsitsiklis. Optimal communication algorithms for hypercubes. Journal of Parallel and Distributed Computing, 11:63í75, ë3ë L. Bomans and D. Roose. Benchmarking the ipscè hypercube multiprocessor. Concurrency : Practice and Experience, 1è1è:3í18, ë4ë L. Bomans and D. Roose. Communication benchmarks for the ipscè. In North-Holland, editor, Hypercube and Distributed Computers, pages 93í103, ë5ë O. Collins, S. Dolinar, R. McEliece, and F. Pollara. A V.L.S.I. decomposition of the de Bruijn graphs. Journal of the ACM, 39:931í949, 199. ë6ë W.J. Dally and C.L. Seitz. Deadlock-free message routing in multiprocessor interconnection networks. IEEE Transactions on Computers, C-36è5è:547í553, ë7ë Jean de Rumeur. Communications dans les rçeseaux de processeurs. collection ERI. Masson, ë8ë C. Seitz et al. Wormhole chip project report ë9ë P.Fraigniaud. Performance analysis of broadcasting in hypercubes with restricted communication capabilities. Journal of Parallel and Distributed Computing, 16è1è:15í6, 199. ë10ë P. Fraigniaud and E. Lazard. Methods and problems of communication in usual networks. to appear in Discrete Applied Mathematics, special issue on broadcasting and gossiping. ë11ë S.L. Johnsson and C.T. Ho. Optimum broadcasting and personalized communication in hypercubes. IEEE Transaction on Computers, 38è9è:149í168, ë1ë P. Kermani and L. Kleinrock. Virtual cut-through: a new computer communication switching technique. Computers Networks, 3:67í86, ë13ë F. T. Leighton. Introduction to parallel algorithms and architectures. Morgan Kaufmann, 1991.
78 Bibliographie 67 ë14ë J.G. Peters and M. Syska. Circuit-switched broadcasting in torus networks. Cmpt tr 93-04, Simon Fraser University, ë15ë Y. Saad and M. H. Schultz. Topological properties of hypercubes. IEEE Transaction on Computers, 37è7è:867í871, ë16ë Y. Saad and M.H. Schultz. Data comunication in parallel architectures. Journal of Parallel Computing, 11:131í150, ë17ë S. R. Seidel, M. H. Lee, and S. Fotedar. Concurrent bidirectional communication on the Intel ipsc860 and ipsc. Cs-tr90-06, Universitçe Technique du Michigan èusaè, ë18ë Q.F. Stout and B. Wagar. Intensive hypercube communication, prearranged communication in link-bound machines. Journal of Parallel and Distributed Computing, 10:167í181, ë19ë A. Touzene and B. Plateau. Optimal multinode broadcast on a mesh connected graph with reduced buæerization. In A. Bode, editor, Distributed Memory Computing, Lecture Notes in Computer Science 487, pages 143í15. Springer-Verlag, 1991.
79 68 Bibliographie
80 Chapitre 3 Communications globales 3.1 Introduction Le passage de l'algorithmique sçequentielle ou parallçele sur architecture ça mçemoire partagçee, ça l'algorithmique parallçele distribuçee ne se fait pas sans quelques problçemes. Dans le cas des machines ça mçemoire partagçee, le programmeur ne s'occupe que du dçecoupage de son problçeme en t^aches indçependantes, tandis que sur les machines ça mçemoire distribuçee le programmeur doit en plus s'occuper des çechanges de donnçees entre les processeurs. Ces çechanges peuvent^etre rçealisçes avec des communications point ça point, comme nous l'avons vu dans le chapitre prçecçedent. Cependant en çetudiant des algorithmes numçeriques èd'algçebre linçeaire, traitement d'images etc.è, il appara^çt des mouvements de donnçees impliquant l'ensemble des processeurs, ce qui nçecessite d'autres schçemas de communication. On appellera ces types de mouvements de donnçees des communications globales. Face au manque d'outils de programmation parallçele èlogiciels de dçebogage, d'analyse de performances, et a fortiori de compilateurs parallçeles!è une dçemarche raisonnable pour parallçeliser des applications - en particulier dans le domaine numçerique - est de choisir une rçepartition initiale des donnçees, d'identiæer des procçedures de calculs locaux et de mettre en çuvre de schçemas de communication pour organiser les rencontres entre ces donnçees. Aæn de faciliter la t^ache du programmeur, les constructeurs ont crçeçe des bibliothçeques de calculs et de communications. Aprçes une prçesentation des bibliothçeques de calculs et de communications disponibles sur les machines ça mçemoire distribuçee, nous dçecrirons plus prçecisçement les schçemas de communications globales, et nous montrerons sur deux exemples, l'algorithme d'çelimination de Gauss et le gradient conjuguçe, la nçecessitçe de tels schçemas de communications. 69
81 70 Chapitre 3. Communications globales 3. Les Bibliothçeques de calculs et de communications Pour un programmeur non spçecialiste des architectures et de l'algorithmique parallçeles, il s'agit de trouver un bon compromis entre l'investissement ça fournir pour çecrire ses programmes et l'obtention de bonnes performances. Les bibliothçeques parallçeles permettent de jouer ce r^ole. Elles doivent ^etre assez simples d'utilisation, et sont portçees sur la plupart des machines parallçeles, ce qui permet d'avoir un code portable d'une machine ça une autre, et d'^etre optimisçees pour chaque machine parallçele Les bibliothçeques d'algçebre linçeaire Il existe toutes sortes de bibliothçeques de calcul trçes spçecialisçees èpar exemple pour le traitement du signal, traitement de l'image, etc.è, mais au cours de cette thçese, nous nous sommes plus particuliçerement intçeressçes aux bibliothçeques gçençerales d'algçebre linçeaire. En voici les principales : í les BLAS èbasic Linear Algebra Subroutinesè ë11, 18ë sont des noyaux d'exçecution fondamentaux d'algçebre linçeaire. L'ensemble de ces procçedures permet d'çecrire de façcon simple les algorithmes, ça condition de bien identiæer les noyaux de calculs. Il existe trois niveaux de BLAS. Le niveau 1 correspond aux opçerations vecteur-vecteur èmise ça jour de vecteurs : AXPY, somme avec accumulation :DOTè. Le niveau permet de faire des opçerations de type matrice-vecteur, et le niveau 3 permet de rçealiser des opçerations de type matrice-matrice. Toutefois, il faut noter que les BLAS ne fonctionnent pas encore totalement sur les machines ça mçemoire distribuçee. Le projet PUMMA ë3ë en cours de rçealisation a pour but de rçealiser des BLAS distribuçees de niveau 3. í LAPACK èlinear Algebra PACKageè ë9ë est une bibliothçeque de haut niveau qui comprend la rçesolution de systçemes linçeaires, le calcul des valeurs propres d'une matrice, des factorisations de matrices type LU, Cholesky etc. Cette bibliothçeque est le rçesultat de la fusion de deux autres bibliothçeques EISPACK èspçecialisçee dans la rçesolution des problçemes de valeurs propresè et LINPACK èbibliothçeque de procçedures d'algçebre linçeaireè, et est spçecialement conçcue pour les machines vectorielles et parallçeles ça mçemoire partagçee. Cette bibliothçeque est çecrite ça partir de BLAS de niveau 3. í ScaLAPACK èscalable Linear Algebra PACKageè ë10ë est la version LA- PACK pour machines parallçeles ça mçemoire distribuçee. ScaLAPACK utilise les BLAS distribuçees de niveau 3, la bibliothçeque de communication BLACS èvoir paragraphe 3..è, ainsi que des BLAS sçequentielles.
82 3.. Les Bibliothçeques de calculs et de communications 71 í chaque constructeur possçede, ça des variantes prçes, des implçementations de ces bibliothçeques. 3.. Les bibliothçeques de communications De nombreuses bibliothçeques de communications existent, en eæet chaque constructeur de machines parallçeles dçeveloppe des bibliothçeques eæcaces pour ses machines, par exemple NX pour Intel ou CMMD pour Thinking Machines Corporation. Malheureusement les applications çecrites avec de telles bibliothçeques ne sont pas portables d'une machine ça une autre èles modçeles de communication çetant en gçençeral diæçerentsè. C'est pourquoi des universitaires ont dçeveloppçe des bibliothçeques de communication au plus haut niveau d'abstraction, que l'on peut utiliser sur une grande majoritçe de machines parallçeles. Devant le succçes de ces bibliothçeques, les constructeurs ont dçecidçe de les optimiser pour leurs machines, ce qui permet d'obtenir d'assez bonnes performances avec ces outils. Du fait du grand nombre de bibliothçeques existantes, il est impossible de toutes les prçesenter, voici les plus ç populaires ç. í BLACS èbasic Linear Algebra Communication Subroutinesè ë1ë est une bibliothçeque de communication spçecialisçee, utilisçee pour la parallçelisation des BLAS de niveau 3 et de la bibliothçeque LAPACK. En fait, c'est une bibliothçeque eæcace, appliquçee aux calculs matriciels. í MPI èmessage Passing Interfaceè ë13ë n'est pas encore une bibliothçeque de communication, mais plut^ot une liste de spçeciæcations pour l'çechange des messages sur les machines ça mçemoire distribuçee. Les gens qui ont travaillçe ça ces spçeciæcations sont des universitaires, des industriels èessentiellement des constructeurs de machinesè, et des spçecialistes du domaine des applications. Cela a permi de dçeænir au mieux les besoins et les outils que la future bibliothçeque devra possçeder. De plus, comme tous les grands constructeurs de machines parallçeles participent ça MPI, cette bibliothçeque sera portçee et optimisçe'e sur les machines courante. í PICL èportable Instrumented Communication Libraryè ë15ë est basçee sur trois niveaux de primitives, un niveau bas, un niveau haut incluant la synchronisation, la diæusion, et un troisiçeme niveau qui permet de gçençerer des traces utilisables par la suite avec ParaGraph èlogiciel de visualisation de tracesè. í PVM èparallel Virtual Machineè ë1ë est un environnement de gestion de processus plus une bibliothçeque de communication utilisable sur rçeseau de stations de travail. L'avantage de cette bibliothçeque est de pouvoir utiliser des machines hçetçerogçenes se trouvant sur des sites diæçerents. De plus, PVM permet d'inclure des machines parallçeles dans un rçeseau. Nous avons vu au chapitre 1 que la nouvelle gçençeration de machines parallçeles çetait construite
83 7 Chapitre 3. Communications globales avec les m^emes processeurs que ceux des stations de travail. Comme les nçuds des machines parallçeles fonctionnent avec des noyaux UNIX, il est facile d'utiliser PVM sur ces machines. Avec PVM, on peut mettre au point une application sur un rçeseau de stations, et la transfçerer directement sur une machine parallçele aæn d'obtenir de la puissance de calcul sans avoir ça changer une seule ligne de code. 3.3 Les schçemas de communications globales Dans les bibliothçeques de communications, on trouve un certain nombre de primitives qui permettent de rçealiser des communications globales ë7ë. í La diæusion èone to all, broadcastingè : un processeur envoie un message ça tous les autres processeurs. í L'çechange total èall to all, gossiping, total exchangeè : diæusion simultançee ça partir de chacun des processeurs. í La distribution èpersonalized one to all, scatteringè : un processeur envoie un message diæçerent ça chacun des autres processeurs. í La multidistribution èpersonalized all to all, complete exchange, multiscatteringè : distribution simultançee ça partir de chacun des processeurs. í Le regroupement èall to one, gatheringè : tous les processeurs envoient leur message ça un processeur donnçe èc'est l'inverse de la distributionè. On parle de combinaison lorsqu'il y a des calculs ça chaque çetape intermçediaire. Toutefois, d'autres schçemas de communications, ne mettant pas en jeu l'ensemble des processeurs existent comme, par exemple, le one-to-many oçu un processeur envoie un m^eme message ça un groupe particulier de processeurs. On peut çegalement considçerer toutes les extensions du type many-to-many. Mais dans cette thçese nous nous limiterons ça l'çetude des schçemas classiques, c'est-ça-dire : diæusion, çechange total, distribution, multidistribution et regroupement, en insistant sur la diæusion. 3.4 Utilisation des schçemas de communications globales Dans cette section, nous allons montrer comment peuvent ^etre parallçelisçes l'çelimination de Gauss et le gradient conjuguçe sur une architecture parallçele ça mçemoire distribuçee et surtout comment les schçemas de communications globales interviennent dans cette parallçelisation.
84 3.4. Utilisation des schçemas de communications globales 73 Pour cela nous allons considçerer un ensemble de p processeurs P 0 ;P 1 ; :::; P p,1. Ces processeurs sont reliçes entre eux par un rçeseau physique èpar exemple arbre binaire, grille, hypercube, De Bruijn etc.è. Avant toute chose, lorsqu'on traite un problçeme sur une machine parallçele ça mçemoire distribuçee il faut se poser la question du placement des donnçees. En algçebre linçeaire, trois types de placements de matrices sont employçes : rçepartition par lignes, par colonnes ou par blocs ë14ë. Dans les trois types d'allocation, il est fait une rçepartition çequitable des donnçees entre les processeurs. Quant aux vecteurs, eux aussi sont rçepartis çequitablement L'çelimination de Gauss L'algorithme d'çelimination de Gauss permet de rçesoudre des systçemes linçeaires denses. Le principe consiste ça transformer la matrice de dçepart en une matrice triangulaire supçerieure en eæectuant des combinaisons linçeaires entre les lignes. On rçesout le systçeme triangulaire par substitution arriçere ë16ë. Dans l'çetude qui va suivre nous nous limiterons ça un placement par colonnes de la matrice. On trouvera dans ë6, 8, 0ë des çetudes similaires avec les autres types de placement. Soit un systçeme linçeaire Ax = b, oçu A est une matrice dense n æ n et x et b deux vecteurs, l'algorithme de l'çelimination de Gauss est le suivant: Algorithme 3.1 Elimination de Gauss Pour k è 1 jusqu'ça n, 1 faire pivot è 1 A k;k ; Pour i è k +1jusqu'ça n faire A i;k è pivot æ A i;k ; Pour j è k +1 jusqu'ça n faire Pour i è k +1 jusqu'ça n faire A i;j è A i;j, A i;k æ A k;j ; On constate qu'il y a un seul noyau de calcul qui correspond ça un AXPY èblas è. La parallçelisation de cet algorithme a çetçe trçes çetudiçee ë5, 6, 19, ë. Le processeur qui possçede ça l'çetape k l'çelçement A k;k doit calculer le pivot et mettre ça jour sa colonne k, avant de la diæuser ça tous les processeurs. L'algorithme parallçele est le suivant:
85 74 Chapitre 3. Communications globales Algorithme 3. Elimination de Gauss en parallçele Pour k è 1 jusqu'ça n, 1 faire Si le processeur est en charge de l'çelçement A k;k alors pivotè 1 A k;k ; Pour i è k +1 jusqu'ça n faire A i;k è pivotæa i;k ; Diæuser la colonne k; Sinon Recevoir la colonne k; Mettre ça jour ses colonnes; Remarque. On notera que lors de la parallçelisation de cet algorithme, le placement des donnçees initiales de la matrice est important. En eæet, si on aæecte les n premiçeres p colonnes au premier processeur, les n suivantes au second, etc., il est clair qu'au p bout de la n çetape le premier processeur n'aura plus rien ça faire. La solution p consiste ça rçepartir les colonnes de façcon circulaire : 1, n p,n, etc. sur le premier p processeur,, n p +1,n + 1, etc. sur le deuxiçeme... p 3.4. Le gradient conjuguçe L'algorithme du gradient conjuguçe ë17ë est une mçethode itçerative pour rçesoudre des systçemes linçeaires. Cette mçethode a çetçe trçes çetudiçee pour rçesoudre des grands systçemes creux ça matrice dçeænie positive symçetrique ë, 16ë. De plus, couplçe ça un prçeconditionnement, cette mçethode converge trçes rapidement. Dans l'çetude qui va suivre nous nous limiterons ça un placement par lignes de la matrice. Pour un systçeme linçeaire Ax = b, oçu A est une matrice symçetrique dçeænie positive n æ n et x et b deux vecteurs, l'algorithme du gradient conjuguçe avec prçeconditionnement est le suivant:
86 3.4. Utilisation des schçemas de communications globales 75 Algorithme 3.3 Gradient conjuguçe Initialisationèx; d; r;z; Mè; old =é r;z é; new =0; Faire old ; éad;d ç = x = x + çd; r = r + çad; Rçesoudre Mz = r; old = new; new =é r;z é; æ = new old ; d =,z + æd; Tant que ér;r éç tolçerance; oçu é; é correspond au produit scalaire, et M correspond ça la matrice de prçeconditionnement. Il existe plusieurs choix possibles pour M, soit M est la diagonale de A, soit un polyn^ome de faible degrçe en A, soit une dçecomposition triangulaire de A. Du point de vue sçequentiel, si on identiæe les noyaux de calcul, on obtient l'algorithme suivant: Algorithme 3.4 Noyaux de calcul du gradient conjuguçe Hè1è calcul du produit matrice-vecteur v = Ad; èè calcul du produit scalaire év;dé; è3è calcul du scalaire ç; è4è calcul de AXPY x = x + çd et r = r + çv; è5è rçesoudre Mz = r; è6è calculer le produit scalaire ér;z é; è7è calcul du scalaire æ; è8è calcul d'un AXPY d =,z + æd; Cette prçesentation permet d'identiæer huit noyaux de calculs. Le noyau è1è est le plus co^uteux Oèn è et correspond ça des BLAS de niveau ë11ë. Les noyaux èè, è4è, è6è et è8è correspondent ça des BLAS de niveau 1 èdot ou AXPYè de complexitçe Oènè. Les noyaux è3è et è7è correspondent ça deux divisions. La complexitçe dunoyau è5è dçepend du choix fait pour M au dçepart, mais dans le pire des cas ce noyau de calcul co^ute Oèn è.
87 76 Chapitre 3. Communications globales parallçelisation de l'çetape è1è Cette çetape correspond ça un produit matrice-vecteur. Aæn que chaque processeur puisse calculer les composantes du vecteur v = Ad, il faut que tous les çelçements a i;j rencontrent les çelçements d j. Comme nous avons rçealisçe un placement par lignes de la matrice, tous les processeurs possçedent des lignes complçetes. Malheureusement, il n'en n'est pas de m^eme pour les composantes du vecteur d. Il est donc nçecessaire d'eæectuer un çechange total, aæn que les processeurs possçedent les composantes du vecteur d. parallçelisation de l'çetape èè Cette çetape consiste ça calculer un produit scalaire distribuçe. Dans un premier temps chaque processeur va calculer un produit scalaire partiel avec les composantes dont il dispose, puis chaque processeur va envoyer le rçesultat de son produit scalaire ça un processeur particulier èp 0 par exempleè par un schçema de communication de regroupement. Ce processeur eæectue la somme des produits scalaires partiels, puis diæuse le rçesultat ça tous les processeurs. Remarque. Il est possible de parallçeliser cette çetape d'une autre façcon. En eæet, chaque processeur peut calculer son produit scalaire partiel, mais au lieu d'eæectuer un regroupement puis une diæusion, l'ensemble des processeurs eæectue un çechange total. Ainsi, chaque processeur eæectue la somme des produits scalaires partiels aæn d'obtenir le rçesultat. Cette deuxiçeme solution est d'autant meilleure, qu'elle est rçealisable en un nombre d'çetapes de communication çegal au diamçetre de la topologie du rçeseau, alors que la premiçere solution est en deux fois le diamçetre. parallçelisation de l'çetape è5è En fait la parallçelisation du prçeconditionnement dçepend du choix de celui-ci. í si M est la diagonale de A, le systçeme de prçeconditionnement peut ^etre rçesolu en eæectuant une division sur chaque composante. En parallçele, cela peut se faire uniquement par des calculs locaux sur les morceaux de vecteurs que possçede chaque processeur : AXPY locaux. í si M est un polyn^ome de faible degrçe en A, il faut calculer successivement Ar, AèArè, AèA rè, etc. En stockant les calculs prçecçedents, ça chaque itçeration il n'y a qu'un produit matrice-vecteur ça eæectuer. Du point de vue de la parallçelisation, cette çetape est identique ça l'çetape è1è. í si M est une matrice triangulaire supçerieure, ou infçerieure, ou le produit de deux matrices triangulaires M = LL t, le systçeme de prçeconditionnement met en çuvre la rçesolution d'un ou de deux systçemes triangulaires. Dans
88 3.4. Utilisation des schçemas de communications globales 77 le pire des cas, il faut eæectuer deux rçesolutions successives Ly = r et L t z = y oçu y est un vecteur intermçediaire. Nous ne dçetaillerons pas cette phase de parallçelisation èpour cela se rçefçerer aux articles de Coleman et Li ë4ë et Ortega et Romine ë1ë sur hypercubeè, mais nous allons juste donner le principe de la rçesolution d'un systçeme triangulaire supçerieur. Comme dans l'çelimination de Gauss, nous considçerons, une allocation circulaire des lignes par processeur aæn que ceux-ci travaillent le plus longtemps possible. Al'çetape k de la rçesolution triangulaire, on calcule l'çelçement x n,k. Aæn que l'ensemble des processeurs puissent eæectuer la mise ça jour de leur solution partielle, il est nçecessaire que le processeur qui vient de calculer x n,k le diæuse ça l'ensemble des processeurs. Les noyaux è3è, è4è, è7è et è8è sont des calculs locaux que tous les processeurs eæectuent sur leurs donnçees. Le noyau è6è est identique au noyau èè, donc pour sa parallçelisation se rçefçerer ça la parallçelisation du noyau èè. L'algorithme parallçele est le suivant: Algorithme 3.5 Algorithme parallçele du gradient conjuguçe Echange total de taille è n è avec les composantes de d; p Calculer n produits scalaires de taille n; p Calculer un produit scalaire de taille n p ; Regroupement de taille 1 vers le processeur P 0 Si processeur P 0 alors calculer la somme de tous les morceaux reçcus; Diæusion de taille 1 depuis le processeur P 0 ; Calculer le scalaire ç; Calculer x = x + çd; Calculer r = r + çv; Calculer un produit scalaire de taille n p ; Regroupement de taille 1 vers le processeur P 0 Si processeur P 0 alors calculer la somme de tous les morceaux reçcus; Diæusion de taille 1 depuis le processeur P 0 ; Calculer le scalaire æ; calculer d =,z + æd; Aæn de simpliæer l'algorithme nous avons omis la phase de prçeconditionnement. De plus, pour cet algorithme nous avons considçerçe la matrice A comme
89 78 Bibliographie dense, ce qui n'est pas toujours vrai. Dans le cas oçu la matrice A est creuse, il n'est pas nçecessaire d'eæectuer un çechange total, mais seulementunçechange total partiel èmany-to-manyè. Il en va de m^eme pour le regroupement et la diæusion. Rçecapitulatif Aæn de rçesumer l'importance des schçemas de communications globales, voici un tableau rçecapitulatif, donnant une liste ènon exhaustiveè d'applications numçeriques utilisant ces schçemas. diæusion çechange total distribution multidistribution regroupement rçesolution de systçemes linçeaires, çelimination de Gauss, etc. produit matrice-vecteur èplacement par lignesè, algorithme de Durand-Kerner, etc. chargement de code, chargement de donnçees produit matrice-vecteur èplacement par colonnesè, transposition, etc. produit scalaire distribuçe, calcul de test d'arr^et 3.5 Conclusion Nous venons de montrer que les schçemas de communications globales sont nçecessaires ça la parallçelisation des algorithmes numçeriques tels que l'çelimination de Gauss, le gradient conjuguçe et le produit matrice-vecteur. C'est pour cela que l'çetude et l'optimisation de tels schçemas de communications sont importantes. En eæet c'est en utilisant des noyaux de calculs optimisçes èblas,lapackè et des bibliothçeques de communications optimisçees que les utilisateurs de machines parallçeles ça mçemoire distribuçee obtiendront de bonnes performances. Mais du fait du grand nombre de topologies des machines parallçeles, il est nçecessaire de crçeer des bibliothçeques de communications eæcaces pour toutes ces topologies. Actuellement ces bibliothçeques mettent en çuvre des mçecanismes de gestion logicielle des messages, qui sont encore fort pçenalisant, aæn de rçeduire ces co^uts de gestion, une solution serait des mçecanismes de gestion matçerielle. Bibliographie ë1ë E. Anderson, A. Benzoni, J. Dongara, S. Moulton, S. Ostrouchov, B. Tourancheau, and R. Van de Geijn. BLACS: Basic linear algebra communication subroutines. In IEEE Computer Society Press, editor, Sixth Distributed Memory Computing Conference - Portland èusaè, pages 87í90, ëë S. F. Ashby, T. A. Manteuæel, and P. E. Saylor. methods. SIAM J. Numer. Anal., Vol. 7, A taxonomy for conjugate gradient
90 Bibliographie 79 ë3ë J. Choi, J. J. Dongarra, and D. W. Walker. PUMMA: parallel universal matrix multiplication algorithms on distributed concurrent computers. Technical Report ORNLèTM-15, Oak Ridge National Laboratory èusaè, April ë4ë T. F. Coleman and G. Li. A parallel triangular solver for hypercube multiprocessor. Technical Report TR , Department of Computer Science, Cornell University, October ë5ë M. Cosnard, M. Marrakchi, Y. Robert, and D. Trystram. Gauss elimination for MIMD computers. Parallel Computing, ë6ë M. Cosnard and D. Trystram. Algorithmes et architectures parallçeles. InterEditions, ë7ë Jean de Rumeur. Communications dans les rçeseaux de processeurs. Collection ERI. Masson, ë8ë Jean de Rumeur. Communications dans les rçeseaux de processeurs. Collection ERI. Masson, ë9ë J. Demmel, J. J. Dongara, and W. Kahan. LAPACK working note. LAPACK: on designing portable high-performance numerical libraries. Technical Report 39, Department of Computer Science - University of Tennessee èusaè, ë10ë J. Demmel, J. J. Dongarra, R. Van De Geijn, and D. W. Walker. LAPACK for distributed memory architectures: the next generation. In SIAM, editor, Sixth SIAM Conference on Parallel Processing for Scientiæc Computing, pages 33í39, ë11ë J. J. Dongarra, J. Du Croz, S. Hammarling, and R. Hanson. An extended set of FORTRAN basic linear algebra subroutines. ACM Transaction on Mathematical Software, 14è1è:1í17, March ë1ë J. J. Dongarra, A. Geist, R. Manchek, and W. Jiang. Using PVM 3.0 to run grand challenge applications on a heterogenous network of parallel computers. In SIAM, editor, Sixth SIAM Conference onparallel Processing for Scientiæc Computing, pages 873í877, ë13ë J. J. Dongarra, R. Hempel, A. J. G. Hey, and D. W. Walker. A proposal for a user-level message passing interface in a distributed memory environment. Technical report, Oak Ridge National Laboratory èusaè, February ë14ë J. J. Dongarra and D. Walker. LAPACK working note: the design of linear algebra libraries for high performance computer. Technical Report 58, Department of Computer science - University oftennessee, ë15ë G. A. Geist, M. T. Heath, B. W. Peyton, and P. H. Worley. PICL: a portable instrumented communication library. Technical Report ORNLèTM-11130, Oak Ridge National Laboratory èusaè, July ë16ë G. H. Golub and C. F. Van Loan. Matrix Computations; second edition. The John Hopkins University Press, ë17ë M. R. Hestenes and D. E. Stiefel. Methods of conjugate gradient for solving linear systems. Journal Res. Nat. Bur. Stan., Vol. 49, 195. ë18ë C. Lawson, R. Hanson, D. Kincaind, and F. Krogh. Basic linear subprograms for FOR- TRAN usage. ACM Transaction on Mathematical Software, 5:308í33, ë19ë P. Quinton and Y. Robert. Algorithmes et architectures systoliques. collection ERI. Masson, 1989.
91 80 Bibliographie ë0ë Y. Robert, B. Tourancheau, and G. Villard. Data allocation strategies for the Gauss and Jordan algorithms on a Ring of Processors. Information Processing Letters, 31:1í9, ë1ë C. H. Romine and J. M. Ortega. Parallel solution of triangular system of equations. Technical Report RM-86-05, Department of Applied Mathematics, University of Virginia, ëë Y. Saad. Gaussian elimination on hypercubes. In M. Cosnard and al., editors, Parallel Algorithms and Architectures, pages 5í17. Elsevier Science Publishers, 1986.
92 Chapitre 4 Diæusion dans les grilles toriques Au cours de la derniçere dçecennie, beaucoup d'çetudes ont çetçe rçealisçees sur les communications dans les hypercubes. Ceci çetait d^u au fait qu'un grand nombre de machines parallçeles utilisaient ce type de rçeseau d'interconnexion. Mais l'augmentation de la demande en puissance de calcul a conduit les constructeurs de machines parallçeles ça assembler plusieurs centaines de nçuds performants, ce qui posait de gros problçemes lors de la conception de machines ayant une topologie en hypercube. En eæet, comme nous l'avons vu au chapitre 1 le nombre de liens sortants d'un processeur n'est pas inæni, ce qui limite le nombre de connexions et par lça m^eme, le nombre de nçuds de la machine. De plus, ces derniçeres annçees est apparue la notion de machine extensible èscalableè, c'est-ça-dire qu'ça partir d'une machine de taille donnçee, on peut augmenter le nombre de nçuds de celle-ci, en rajoutant simplement des cartes. Ceci n'est rçealisable matçeriellement que sur des topologies dont le degrçe de chaque nçud est indçependant du nombre de nçuds du rçeseau, ce qui n'est pas le cas de l'hypercube. C'est pourquoi les rçeseaux d'interconnexion ça degrçe faible et æxçe ècomme les grilles et les grilles toriquesè se sont dçeveloppçes. Ce type de rçeseau d'interconnexion est la base de machines telles que la Paragon et le iwarp d'intel, l'ap1000 de Fujitsu et plus rçecemment le Cray T3D èvoir chapitre 1è. Mais en contrepartie ces rçeseaux ont l'inconvçenient d'avoir des diamçetres çelevçes, c'est pourquoi l'çetude de schçemas de communications globales est importante. Dans ce chapitre, nous allons nous intçeresser au problçeme de la diæusion dans les grilles toriques. Dans un premier temps nous dçecrirons la construction d'arbres de recouvrement deux ça deux disjoints de profondeur minimale dans la grille torique orientçee. Nous pouvons utiliser ces arbres pour rçealiser des diæusions pipeline avec des communications store and forward full-duplex. Enæn une çetude similaire est rçealisçee pour la grille torique non-orientçee. 81
93 8 Chapitre 4. Diæusion dans les grilles toriques 4.1 Notations et modçele de communication Dans ce paragraphe nous considçerons des grilles toriques ayant p processeurs, oçu p est un carrçe parfait. Chaque nçud est repçerçe par ses coordonnçees cartçesiennes èi; jè telles que : jijçb p p c et jjjçb p p c p si p est impair ;,b p pc +1ç i çb p pc et,b p pcçj çb p p pc,1si p est pair ; L'initiateur de la diæusion est en position è0; 0è. Il sera reprçesentçe en grisçe et sera positionnçe au centre des diæçerentes ægures. Pour simpliæer les notations, on notera x min, x max, y min, y max, les bornes supçerieures et infçerieures atteintes par i et j. Rappelons p que p le diamçetre D p p d'une grille torique p æ p p est çegal ça b p p c'est-ça-dire p si p est pair, ou p, p 1si p est impair. Pour que cette çetude soit utilisable sur des machines parallçeles ça mçemoire distribuçee, nous avons choisi le modçele de communication le plus rçepandu sur ces machines, c'est-ça-dire un modçele æ-port èlink-boundedè ë5ë avec des liens de communication full-duplex, et une transmission de messages entre nçuds par commutation de messages èstore and forwardè ë6, 8, 10ë. Le temps de communication d'un message de taille L entre deux nçuds voisins est : æ + Lç oçu æ est le start-up et ç le taux de transmission èvoir chapitre è. Par abus, on dira qu'un nçud èi; jè appartient au bord de la grille torique si i ç x min, 1oux max +1ç i ou j ç y min, 1ouy max +1ç j. 4. Les outils de la diæusion Les techniques utilisçees pour l'çetude des communications dans un rçeseau d'interconnexion proviennent de la thçeorie des graphes ëë. En eæet, le rçeseau peut ^etre modçelisçe par un graphe G = èv;eè, oçu l'ensemble V des sommets du graphe reprçesente les nçuds, et l'ensemble E des ar^etes reprçesente les liens de communication entre les processeurs. Aæn de bien comprendre les autres outils nçecessaires ça la diæusion dans les grilles toriques, examinons ceux utilisçes lors de la communication entre deux nçuds èotoè. Lors du chapitre on a vu que l'utilisation de la technique du pipeline couplçee ça l'utilisation de chemins disjoints permettait de rçeduire considçerablement le temps de communication entre deux nçuds. Pour les grilles toriques, une çetude rçealisçee par Saad et Schultz aboutit ça la proposition suivante : c
94 4.. Les outils de la diæusion 83 Proposition 4..1 Il existe quatre chemins disjoints deux ça deux reliant tout couple de nçuds A et B dans une grille torique. De plus si A et B ne sont pas alignçes, on peut choisir ces chemins de longueur çegale ça dèa,bè+ ; si A et B sont alignçes mais non voisins, alors on peut choisir ces chemins de longueur distance çegale ça dèa,bè+4 ; et si A et B sont voisins, alors on peut choisir ces chemins de longueur 7. La ægure 4.1 illustre cette proposition. Fig. 4.1 : Envoi en utilisant quatre chemins de longueur distanceèa,bè+. De plus, dans le modçele store and forward, les nçuds intermçediaires gardent trace en mçemoire de tous les messages qui les traversent, d'oçu l'idçee, pour diæuser dans la grille torique, de construire ça partir de la racine R èinitiatrice de la diæusionè le plus grand nombre possible d'arbres de recouvrementèspanning treesè arcs disjoints. Rappels : í Etant donnçes un graphe G =èv;eè et un arbre orientçe T de racine x èx V è, on dit que T est un arbre de recouvrement ou couvrant s'il contient tous les nçuds du graphe. í Deux arbres de recouvrement de G sont dit arcs disjoints s'ils n'ont pas d'arc en commun. Le nombre d'arbres de recouvrement peut ^etre donnçe par le thçeorçeme d'edmonds ë3ë. Dans son thçeorçeme Edmonds utilise l'arc-connexitçe, cette notion est dçeænie de la façcon suivante : Dçeænition. L'arc-connexitçe d'un graphe connexe G, notçe çègè, est le nombre minimum d'arcs qu'il faut supprimer pour que G ne soit plus connexe.
95 84 Chapitre 4. Diæusion dans les grilles toriques Thçeorçeme 4.. Soit G = èv;eè un graphe orientçe d'arc-connexitçe ç et soit x un sommet quelconque de V. Il existe au moins ç arbres de recouvrement arcs disjoints dans G de racine x. Comme dans la grille torique l'arc-connexitçe est çegale au degrçe, nous en dçeduisons qu'ça partir de chaque nçud de la grille torique il existe quatre arbres de recouvrement arcs disjoints. Les quatre ar^etes incidentes ça chaque nçud sont caractçerisçees par les quatre points cardinaux N, E, S, W. Comme les liens sont orientçes nous distinguerons N i, E i, S i, W i les arcs entrants d'un nçud, et N o, E o, S o, W o les arcs sortants d'un nçud èvoir ægure 4.è. N i N o W i E i W o E o S i S o Fig. 4. :Les quatre arcs entrants et sortants d'un nçud. Chaque arbre est çetiquetçe par ces m^emes points cardinaux. L'arbre de recouvrement ça arcs disjoints notçe EST pour East Spanning Tree èrespectivement NST, SST, WSTè correspond ça l'arbre qui utilise l'arc E o èrespectivement N o, S o, W o è de la racine. 4.3 Une premiçere solution En utilisant le principe des arbres de recouvrementça arcs p disjoints, Fraigniaud ë4ë donne la construction de quatre arbres de profondeur p. En fait il s'agit lça de la formalisation d'un rçesultat de Saad et Schultz ë8ë. La ægure 4.3 montre la construction de l'arbre EST. Les trois autres arbres sont obtenus par rotations successives de ç de l'arbre EST. Il est facile de vçeriæer qu'ils sont arcs disjoints. En pipelinant l'envoi des messages sur les quatre arbres ë8ë, on obtient alors un temps de diæusion de : T diffusion = q è p p, 1èæ +s L 4 ç 1 A è4:1è La profondeur de ces arbres est grande, ce qui a pour consçequence de produire un start-up important et de rendre co^uteuse cette technique de diæusion pour des
96 4.4. Des arbres de recouvrement de profondeur minimale 85 Fig. 4.3 :Arbre derecouvrement EST de profondeur p p. messages de petite taille, d'oçu l'idçee de trouver la profondeur minimale des arbres de recouvrement que l'on peut construire dans les grilles toriques, et de construire de tels arbres. 4.4 Des arbres de recouvrement de profondeur minimale Le diamçetre d'une grille torique çetant D =b p p c, il çetait possible d'espçerer trouver quatre arbres ayant cette profondeur, mais la proposition suivante montre que ceci est impossible et donne une borne infçerieure sur la profondeur de tels arbres. Proposition Dans une grille torique de diamçetre D quatre arbres de recouvrement ça arcs disjoints ayant la m^eme racine sont de profondeur au moins D +1. Preuve. Soit R la racine des quatre arbres, et P i è1 ç i ç 4è ses quatre voisins directs. Sous l'hypothçese d'avoir des arcs disjoints, chaque arbre utilise exactement 1 arc sortant der, ce qui ç force ç une direction de dçepart pour chaque arbre. Les nçuds ça distance D des P i dans la grille torique, sont donc dans l'arbre correspondant ça distance D + 1 de la racine R. Pour espçerer atteindre cette borne lors de la construction des arbres de recouvrement, il faut aller au plus vite aux nçuds les plus çeloignçes. De plus chaque
97 86 Chapitre 4. Diæusion dans les grilles toriques arbre ne doit pas utiliser plus d'un quart des arcs du graphe. Enæn pour des raison de simplicitçe nous cherchons des arbres qui se dçeduisent les un des autres par rotations ou symçetries. Ces trois remarques nous ont permis de construire un principe de base applicable pour toutes les tailles de grilles toriques. Aprçes avoir prçesentçe ce principe, nous prçesenterons la construction des arbres pour les diæçerentes tailles de grilles toriques, et nous montrerons que ces arbres sont arcsdisjoints Le principe de base Le principe de base que nous allons prçesenter s'applique ça tous les nçuds sauf ceux situçes sur les bords. Aæn de mieux comprendre ce principe, et de dçemontrer plus facilement par la suite que ce principe permet de construire des arbres disjoints, la grille ègrille torique ça laquelle on a supprimer les bordsè est divisçee en six zones èvoir ægure 4.4è. IV VI I V V III VI II Fig. 4.4 :Reprçesentation des six zones. Expliquer en dçetail la construction des arbres èarcs entrants et sortants pour chaque nçudè nuirait ça la clartçe du document, c'est pourquoi nous ne dçetaillons que les arcs entrants de chaque nçud. Voici la construction du principe de base dans chacune des zones, pour un arbre de recouvrement EST dans une grille torique pour les nçuds non situçes sur le bord. í Dans la zone I, tous les nçuds des colonnes impaires sont atteints par leur lien S i, et les nçuds des colonnes paires, par leur lien E i ; í Dans la zone II, les liens N i sont utilisçes pour atteindre les nçuds des colonnes impaires et les liens E i pour atteindre les nçuds des colonnes paires ;
98 4.4. Des arbres de recouvrement de profondeur minimale 87 í Dans la zone III, tous les nçuds des lignes paires sont atteints par leur lien E i, et les nçuds des lignes impaires par leur lien S i ; í Dans la zone IV, les liens E i sont utilisçes pour atteindre les nçuds des lignes paires et les liens N i pour atteindre les nçuds des lignes impaires ; í Dans la zone V, tous les nçuds sont atteints par leur lien E i ; í Dans la zone VI, tous les nçuds sont atteints par leur lien W i ; La ægure 4.5 illustre cette construction Fig. 4.5 :Le principe de base pour l'arbre EST Fig. 4.6 : Liste des ç crochets ç possibles. En appliquant le principe de base nous n'utilisons qu'une colonne sur deux dans les zones I et II, et une ligne sur deux dans les zones III et IV, il est facile
99 88 Chapitre 4. Diæusion dans les grilles toriques de constater que les bords vont demander un traitement particulier. Une solution pour atteindre ces bords est l'utilisation de ç crochets ç. Les ç crochets ç possibles sont au nombre de huit, ils sont issus de motifs du principe de base. La ægure 4.6 montre les huit types possibles. De plus si p p est pair, l'çemetteur ne peut plus ^etre vu comme le centre de la grille torique. Il s'avçere que nous devons çetudier quatre cas : 4k +1,4k + 3 pour p p impair, et 4k, 4k + pour p p pair Cas 1 : 4k+1 Pour ce type de grilles toriques il est facile d'obtenir des arbres de recouvrement de profondeur D +. En eæet il suæt de continuer le principe de base jusqu'aux derniçeres lignes, c'est-ça-dire j = y min et j = y max.par contre, les nçuds de la derniçere colonne i = x max sont atteints par des ç crochets ç de types 7 et 8. Si on regarde plus prçecisçement leç crochet ç de type8entre les nçuds èx max, 1;y max è; èx max ;y max è; èx max ;y max, 1è on constate que ce ç crochet ç se transforme par rotation en ç crochet ç de type5entre les nçuds èx min ;y max,1è; èx min ;y max è; èx min +1;y max è, en ç crochet ç de type entre les nçuds èx max ;y min +1è; èx max ;y min è; èx max, 1;y min è, et en ç crochet ç de type 3entre les nçuds èx min +1;y min è; èx min ;y min è; èx min ;y min + 1è. Comme ça aucun moment deux arcs ne se superposent, l'utilisation du ç crochet ç de type 8 pour atteindre la colonne i = x min est possible. En eæectuant lem^eme raisonnement on peut justiæer l'utilisation des autres ç crochets ç de types 7 et 8. Les nçuds de la premiçere colonne i = x min sont atteints depuis les nçuds de la colonne i = x max par les arcs W i, ceci est possible car les autres arbres sont obtenus par rotations successives. En eæet le seul arbre qui utilise ce lien est l'arbre WST, mais comme il l'utilise dans l'autre sens, il n'y a pas de problçeme. La ægure 4.7 donne la construction de l'arbre EST. Les trois autres arbres sont obtenus par des rotations successives de ç de l'arbre EST. Si l'on dçesire rçeduire le diamçetre de ces arbres, tout en conservant la construction obtenue par le principe de base, il faut ç casser ç les chemins les plus longs. La ægure 4.8 montre ces chemins, et les quatre nçuds ça distance D + èen noir sur la ægureè. Ces quatre nçuds sont: èx min ;y max, 1è; èx min ;y min +1è; èx min + 1;y max, 1è; èx min +1;y max, 1è.
100 4.4. Des arbres de recouvrement de profondeur minimale 89 Fig. 4.7 : L'arbre EST de profondeur D + dans une grille torique 9 æ 9. Fig. 4.8 :Les chemins de longueur D +de l'arbre EST. Pour rçeduire la distance entre l'çemetteur è0; 0è et èx min ;y max,1è, il est nçecessaire de modiæer le chemin entre ces deux points. On constate que leç crochet ç de type 8 entre les nçuds èx max, 1;y max è; èx max ;y max è; èx max ;y max, 1è augmente la longueur du chemin, d'oçu la nçecessitçe de supprimer ce ç crochet ç. La solution consiste ça atteindre ces nçuds depuis le nçud èx max ;y max, è en remontant le long du bord droit èi = x max è jusqu'ça èx max ;y max è. Les nçuds
101 90 Chapitre 4. Diæusion dans les grilles toriques èx max, 1;y max èetèx max, 1;y max, 1è sont atteints depuis les nçuds du bord par leur lien E i.par ailleurs, comme on dçesire construire des arbres de recouvrement arcs disjoints par rotation, les arcs èx max ;y max, è vers èx max ;y max, 1è et èx max ;y max, 1è vers èx max, 1;y max è nous obligent ça supprimer les arcs èx min +;y max èvers èx min +1;y max èetèx min +1;y max èvers èx min +1;y max, 1è de l'arbre EST. En eæet, ces arcs sont maintenant utilisçes par l'arbre NST. La m^eme opçeration doit ^etre faite sur le ç crochet ç de type 7 formçe par les nçuds èx max,1;y min è; èx max ;y min è; èx max ;y min +1è. Ces nouvelles modiæcations ont, pour les m^emes raisons que prçecçedemment, des consçequences sur les arcs entre les nçuds èx min +;y min èvers èx min +1;y min èetèx min +1;y min èvers èx min +1;y min + 1è. L'ensemble de ces modiæcations permet de rçeduire d'1 la distance entre les nçuds èx min ;y min +1è; èx min ;y max, 1è et l'çemetteur. Le fait supprimer les arcs èx max, 1;y max, è vers èx max, 1;y max, 1è et èx max, 1;y max, 1è vers èx max, 1;y max è, nous permet d'utiliser les arcs èx min +1;y max,è vers èx min +1;y max,1è et èx min +1;y max, 1è vers èx min +1;y max è, sinon ces arcs auraient çetçe utilisçes par l'arbre WST.Dem^eme, il est possible d'utiliser les arcs èx min +1;y min +è vers èx min +1;y min +1èetèx min +1;y min +1èvers èx min +1;y min è. Aprçes cette premiçere sçerie de modiæcations, certains nçuds èau nombre de quatreè se trouvent isolçes èc'est-ça-dire qu'il n'appartiennent plus ça l'arbre ESTè comme le montre la ægure 4.9. Ces nçuds sont reprçesentçes en noirs. Fig. 4.9 :Arbre EST aprçes la premiçere sçerie de modiæcations. Pour atteindre les nçuds èx max, ;y max èetèx max, ;y max, 1è une solution consiste ça utiliser un ç crochet ç de type 8 ça partir du nçud èx max, 3;y max è.
102 4.4. Des arbres de recouvrement de profondeur minimale 91 Mais ceci ça pour consçequence d'interdire l'utilisation des arcs èx min +3;y min èvers èx min +;y min èetèx min +;y min èvers èx min +;y min + 1è dans l'arbre EST, car ces arcs sont utilisçes dans l'arbre WST. Si on applique le m^eme procçedçe èc'est-ça-dire un ç crochet ç de type 7è aux nçuds èx max,;y min èetèx max,;y min +1è il vayavoir des rçepercutions sur les nçuds èx min +;y max èetèx min +;y max, 1è, ce qui ne change pas le problçeme ètoujours quatre nçuds isolçes et surtout positionnçes de la m^eme façcon!è. D'oçu la nçecessitçe d'atteindre le nçud èx max, ;y min è d'une autre maniçere. La solution que nous allons dçecrire maintenant s'applique aussi au nçud èx min +;y min è. En fait, il s'agit d'atteindre ces deux nçuds par leur lien S i, depuis les nçuds èx max, ;y max èetèx min +;y max è. Cela ça pour consçequence de ç casser ç les arcs èx max ;y max, è vers èx min ;y max, è et èx max ;y min +èvers èx min ;y min + è, car ceux-ci seront utilisçes dans l'arbre SST par les arcs derniçerement crçees. Ces modiæcations, font appara^çtre deux nouveaux nçuds isolçes que l'on peut facilement rattacher ça l'arbre EST. Le nçud èx min ;y max, è peut ^etre atteint par son lien N i depuis le nçud èx min ;y max, 1è, et le nçud èx min ;y min + è peut quant a lui ^etre atteint par son lien S i depuis èx min ;y min +1è. Cette opçeration est possible, gr^ace ça la toute premiçere modiæcation eæectuçee sur EST. Aprçes cette deuxiçeme sçerie de modiæcations, il reste plus que deux nçuds isolçes, reprçesentçes en noir sur la ægure Fig :Arbre EST aprçes la deuxiçeme sçerie de modiæcations.
103 9 Chapitre 4. Diæusion dans les grilles toriques Pour atteindre le nçud èx min +;y min +1è il semble exister quatre possibilitçes que nous allons maintenant dçetailler : í accçes par N i, c'est-ça-dire utiliser l'arc èx min +;y min +è vers èx min +;y min + 1è. Ceci est impossible car cet arc se transforme en èx min +;y max, è vers èx min +1;y max, è dans l'arbre SST,orEST utilise dçejça cet arc. í accçes par E i, c'est-ça-dire utiliser l'arc èx min +3;y min +1è vers èx min +;y min + 1è. Ceci est impossible car cet arc se transforme en èx max, 1;y min +3è vers èx max, 1;y min + è dans l'arbre NST,orEST utilise dçejça cet arc. í accçes par S i, c'est-ça-dire utiliser l'arc èx min +;y min èvers èx min +;y min + 1è. Ceci est impossible car cet arc se transforme en èx max, ;y max èvers èx max, ;y max, 1è dans l'arbre WST,orEST utilise dçejça cet arc. í Il reste donc l'accçes par W i, c'est-ça-dire l'arc èx min +1;y min +1è vers èx min + ;y min + 1è. En eæectuant les divers rotations par rapport ça l'çemetteur è ç ;ç;3ç è on constate que cet arc ne se superpose avec aucun autre. En eæectuant le m^eme type de raisonnement on peut monter que la seule possibilitçe pour atteindre èx max, ;y min + 1è est son lien E i, c'est-ça-dire crçeer l'arc de èx max, 1;y min +1èvers èx max, ;y min + 1è. La ægure 4.11 montre l'arbre de recouvrement ainsi obtenu. Cet arbre est de profondeur minimale çegale ça D +1. Les trois autres arbres s'obtiennent facilement par rotations successives de ç de l'arbre EST. La construction de tels arbres est gçençeralisable ça toutes les valeurs de ké1. En eæet, pour passer d'une grille torique 4k +1 ça une de taille 4èk +1è+1 il faut ajouter colonnes ça droite, colonnes ça gauche, lignes en haut, et lignes en bas. Donc lors de la construction de l'arbre de recouvrement EST il suæt de prolonger le principe de base sur les nçuds supplçementaires. Une construction systçematique plus rigoureuse de ces arbres est donnçee dans les tableaux qui se trouvent en annexe ça la æn de ce document. Ces tableaux dçetaillent les conditions sur i et j pour qu'un nçud èi; jè ait des arcs entrants N i, E i, S i, W i. Remarque. Pour k = 1, c'est-ça-dire pour les grilles toriques de taille 5 æ 5, il existe quatre arbres de recouvrement de profondeur D + soit 6. Il ne nous a pas çetçe possible de construire des arbres de profondeur plus faible avec ce mode de construction. Comme le montre la ægure 4.1 la grille torique de taille 5æ5 possçede deux nçuds ç intçerieurs ç èreprçesentçes en noir sur la ægureè pour l'arbre de recouvrement EST, qui sont ça une distance è6 par constructionè supçerieure ça celle du diamçetre èd = 4è.
104 4.4. Des arbres de recouvrement de profondeur minimale 93 Fig : L'arbre EST de profondeur D +1dans une grille torique 9 æ 9. Nçuds intçerieurs Fig. 4.1 : L'arbre EST de profondeur D +dans une grille torique 5 æ Cas : 4k+3 Comme prçecçedemment, il est facile p d'obtenir des arbres de recouvrementde profondeur D+. Du fait de la paritçede p, le principe de base peut ^etre appliquçe jusqu'ça la derniçere colonne i = x max, pour la construction de l'arbre EST èvoir ægure 4.13è. Les nçuds de la colonne i = x min sont alors atteints depuis les nçuds de la colonne i = x max, par les arcs W i.pour atteindre les nçuds des lignes j = y min et j = y max il faut utiliser des ç crochets ç de types5et7. Les trois autres arbres s'obtiennent facilement par rotations successives de ç de l'arbre EST.
105 94 Chapitre 4. Diæusion dans les grilles toriques En rçealisant des modiæcations sur cet arbre, on peut construire un arbre de profondeur minimale D + 1, comme le montre la ægure Les modiæcations consistent ça rompre les chemins de longueur D +. Ces modiæcations entra^çnent un jeu de taquin entre les arcs, comme nous l'avons vu dans le cas prçecçedent. Fig : L'arbre EST de profondeur D + dans une grille torique 11 æ 11. La construction de tels arbres est gçençeralisable ça toutes les valeurs de k. En eæet, pour passer d'une grille torique 4k +3ça une de taille 4èk + 1è + 3 il faut ajouter colonnes ça droite, colonnes ça gauche, lignes en haut, et lignes en bas. Donc, lors de la construction de l'arbre de recouvrement EST il suæt de prolonger le principe de base et les modes de construction sur les bords pour les nçuds supplçementaires.
106 4.4. Des arbres de recouvrement de profondeur minimale 95 Fig : L'arbre EST de profondeur D +1 dans une grille torique 11 æ 11. Une construction complçete de ces arbres est de m^eme donnçee en annexe Cas 3 : 4k Du fait que les grilles toriques de taille paire ne possçedent pas de centre, les arbres doivent couvrir quatre zones de tailles diæçerentes. Par consçequent, dans chaque zone le principe de base va ^etre appliquçe sur des nombres de lignes et de colonnes diæçerents. Les arbres de recouvrement ne peuvent pas se dçeduire par simples rotations ça partir d'un seul arbre. On s'aperçcoit que la construction de deux arbres est suæsante, et que les deux autres se dçeduisent des premiers par rotations et symçetries. La construction des arbres de profondeur D + 1 EST et NST se fait de la façcon suivante : í pour l'arbre EST on applique le principe de base tant que cela est possible. Puis on utilise desç crochets ç de type 5 pour atteindre les nçuds de la ligne j = y max et des ç crochets ç de types 7 et 8 pour les nçuds de la colonne i = x max.toutefois le nçud èx max ;y max è n'est pas atteint. Il peut l'^etre facilement par son lien S i depuis le nçud èx max ;y max, 1è. Aæn de rçeduire la profondeur de l'arbre la m^eme stratçegie peut ^etre appliquçee aux nçuds èx max ;y min èetèx max ;y min +1è. En eæet, le nçud èx max ;y min +1è est atteint par son lien N i depuis le nçud èx max ;y min + è, et le nçud èx max ;y min è est
107 96 Chapitre 4. Diæusion dans les grilles toriques atteint par son lien N i depuis le nçud èx max ;y min + 1è. Les nçuds de la colonne i = x min sont atteints depuis la colonne i = x max par les arcs W i. í pour l'arbre NST le principe de base est appliquçe le plus longtemps possible, et l'utilisation de ç crochets ç de types 3 et 4 permet d'atteindre les nçuds de la colonne i = x min. Mais le nçud èx min ;y min +1ènepeut^etre atteint de cette façcon, il peut l'^etre facilement par son arc S i depuis le nçud èx min ;y minè. Du fait de la construction de l'arbre EST, les nçuds èx max ;y min +1èetèx max, 1;y min + 1è ne peuvent pas ^etre atteints par des ç crochets ç. La solution consiste ça atteindre ces deux nçuds par leur arc S i depuis les nçuds èx max ;y min èetèx max, 1;y min è. Par ailleurs, les nçuds de la ligne j = y min sont atteints depuis la ligne j = y max par les arcs S i. La ægure 4.15 illustre cette construction. Fig :Les arbres EST et NST de profondeur D +1 dans une grille torique 8 æ 8. L'arbre SST se dçeduit de l'arbre EST, par une rotation de, ç et une symçetrie par rapport ça l'axe èi = 0è. De m^eme l'arbre WST se dçeduit de l'arbre NST, par une rotation de, ç et une symçetrie par rapport ça l'axe èj = 0è. Comme dans les deux cas prçecçedents, la construction de tels arbres se gçençeralise facilementça toutes les valeurs de k. Une construction complçete de ces arbres est donnçee dans les tableaux qui se trouvent en annexe Cas 4 : 4k+ Comme nous l'avons fait au paragraphe prçecçedent pour les tailles paires, il est nçecessaire de construire deux arbres de recouvrement ènst et ESTè. La
108 4.4. Des arbres de recouvrement de profondeur minimale 97 construction des ces arbres de profondeur D +1 EST et NST se fait de la façcon suivante : í pour l'arbre EST le principe de base est appliquçe le plus longtemps possible, et l'utilisation de ç crochets ç de type 4 permet d'atteindre les nçuds de la ligne j = y min. Mais le nçud èx min +1;y min è ne peut pas ^etre atteint par ces moyens, cependant il peut l'^etre facilement par son arc S i depuis le nçud èx min +1;y max è. Par ailleurs les nçuds de la colonne i = x min sont atteints depuis la colonne i = x max par les arcs W i. í pour l'arbre NST l'utilisation du principe de base et des ç crochets ç de types 3, 4, 6 permettent de couvrir presque toute la grille. Mais le nçud èx max ;y max è ne peut pas ^etre atteint. La solution consiste ça l'atteindre depuis le nçud èx max, 1;y max è par son arc W i. Aæn de rçeduire la profondeur de l'arbre le nçud èx max ;y min +è ne peut ^etre atteint par un ç crochet ç de type 4, mais depuis le nçud èx min ;y min + è par son arc E i. Cet arc et certains autres de l'arbre EST obligent le nçud èx min +1;y min èça^etre atteint par son arc W i depuis le nçud èx min ;y min è et le nçud èx max, ;y min èça ^etre atteint par son arc E i depuis le nçud èx max,1;y min è. Enæn, les autres nçuds de la ligne j = y min sont atteints depuis la ligne j = y max par les arcs S i. La ægure 4.16 illustre cette construction. Fig :Les arbres EST et NST de profondeur D +1dans une grille torique 10æ 10. Comme dans le cas prçecçedent l'arbre SST èrespectivement WSTè se dçeduit facilement de l'arbre EST èrespectivement NSTè par une rotation et une sy-
109 98 Chapitre 4. Diæusion dans les grilles toriques mçetrie. Comme dans les trois cas prçecçedents la construction de tels arbres se gçençeralise facilement ça toutes les valeurs de k. Une construction complçete de ces arbres est donnçee dans les tableaux qui se trouvent en annexe Etude thçeorique des arbres Les arbres que nous avons construits l'ont çetçe en deux phases : une application systçematique du principe de base et une sçerie d'ajustements sur les bords. Pour dçemontrer que ces arbres sont arcs disjoints, nous allons montrer que les parties obtenues par le principe de base de chaque arbre sont disjointes, et que les ajustements locaux sont disjoints. Lemme 4.4. Si un nçud èi; jè est tel que le principe debase lui soit applicable pour chaque arbre construit, alors les arcs entrants de ces quatre arbres sont disjoints. Preuve. Rappelons les diæçerents types d'arcs entrants qui se trouvent dans chaque zone, pour l'arbre EST. zone I zone II zone III zone IV zone V zone IV E i pour les colonnes paires S i pour les colonnes impaires N i pour les colonnes impaires E i pour les colonnes paires E i pour les lignes paires S i pour les lignes impaires N i pour les lignes impaires E i pour les lignes paires W i E i Il nous faut prouver que les arbres construits avec le principe de base sont disjoints dans les six zones. Pour cela, regardons ce qui se passe dans la zone I. Pour les tailles de grilles toriques impaires les arbres se dçeduisent les un des autres par des rotations successives et pour les tailles impaires par des rotations et des symçeties. Comme le principe de base est rçegulier et possçede un axe de symçetrie suivant lequel on eæectue des symçetries sur les arbres pour les tailles impaires, il n'y a pas diæçerence pour le principe de base entre les tailles paires et impaire. í L'arbre NST est obtenu par une rotation de ç de l'arbre EST, c'est-ça-dire que les arcs entrants de la zone II vont subir une rotation de ç avant de venir se placer dans la zone I. Aprçes rotation, les arcs N i deviennent W i et les arcs E i deviennent N i. Les arcs W i et N i ne sont pas utilisçes par EST dans la zone I, donc EST et NST sont disjoints dans la zone I.
110 4.4. Des arbres de recouvrement de profondeur minimale 99 í L'arbre SST est obtenu par une rotation de,ç de l'arbre EST, c'est-ça-dire que les arcs entrants de la zone IV vont subir une rotation de,ç avant de venir se placer dans la zone I. Aprçes rotation, les arcs N i deviennent E i et les arcs E i deviennent S i. Les arcs N i concernaient les nçuds des lignes impaires, donc par rotation les arcs E i vont atteindre les nçuds des colonnes impaires. De m^eme les arcs E i concernaient les nçuds des lignes impaires, donc par rotation les arcs S i vont atteindre les nçuds des colonnes paires. Comme EST utilisait les arcs E i pour atteindre les nçuds des colonnes paires et les arcs S i pour atteindre les nçuds des colonnes impaires, EST et SST sont disjoints dans la zone I. De plus, comme SST et NST n'utilisent pas le m^eme type d'arc èe i et S i pour SST et W i et N i pour NSTè, SST et NST sont disjoints dans la zone I. í L'arbre WST est obtenu par une rotation de ç de l'arbre EST, c'est-ça-dire que les arcs entrants de la zone III vont subir une rotation de ç avant de venir se placer dans la zone I. Aprçes rotation, les arcs E i deviennent W i et les arcs S i deviennent N i. Comme WST n'utilise pas le m^eme type d'arc que EST et SST èe i et S i pour EST et SSTè, WST est disjoint deest et de SST dans la zone I. Mais il nous reste ça vçeriæer que WST et NST sont disjoints. Les arcs E i concernaient les nçuds des lignes paires, donc par rotation les arcs W i vont atteindre les nçuds des colonnes paires, de m^eme les arcs S i concernaient les nçuds des lignes impaires, donc par rotation les arcs N i vont atteindre les nçuds des colonnes impaires. Comme l'arbre NST utilise les arcs N i pour atteindre les nçuds des colonnes paires, et les arcs W i pour atteindre les nçuds des colonnes impaires, les arbres WST et NST sont disjoints dans la zone I. Donc les arbres construits avec le principe de base sont arcs disjoints dans la zone I. Du fait de la symçetrie du problçeme, on dçeduit facilement que les arbres construits avec le principe de base dans les zones II, III, et IV sont arcs disjoints. Dans la zone V l'arbre EST utilise les arcs W i, l'arbre NST utilise les arcs N i èrotation de ç des arcs de la zone VIè, l'arbre SST utilise les arcs S i èrotation de,ç des arcs de la zone VIè, et l'arbre WST utilise les arcs E i èrotation de ç des arcs de la zone VIè, ils sont donc disjoints. En eæectuant le m^eme raisonnement sur la zone VI on montre que les arbres construits avec le principe de base sont arcs disjoints dans les zones V et VI. Nous venons de dçemontrer que la partie des arbres crçee avec le principe de base çetait arcs disjoints. Il nous reste donc ça monter que la construction des bords est aussi arcs disjoints.
111 100 Chapitre 4. Diæusion dans les grilles toriques Nous avons vu lors de la construction des arbres pour la grille torique de taille p p =4k +1 èavec k=è que le bord de la grille est disjoint, et de plus comme sur les autres nçuds le principe de base s'applique et d'aprçes le lemme 4.4., les quatre arbres de recouvrement sont arcs disjoints. La ægure 4.17 permet de conærmer ce fait. Fig :Les quatre arbres de recouvrement de profondeur D +1dans une grille torique 9 æ 9. En eæectuant le m^eme travail sur les bords lors de la construction des autres arbres, pour les diæçerentes tailles de grilles toriques on montre que les arbres prçesentçes sont arcs disjoints pour k =. Maintenant il s'agit de montrer que pour tout k supçerieur ça deux, nous avons une construction arcs disjoints. Pour cela nous allons procçeder par rçecurrence. Supposons que les arbres soient disjoints pour une grille torique de taille 4k 0 +1 èrespectivement4k 0 +3, 4k 0,4k 0 +è avec k 0 ç, montrons que pour 4èk 0 +1è+1 èrespectivement4èk 0 + 1è + 3, 4èk 0 + 1è,4èk 0 + 1è + è les arbres de recouvrements sont toujours disjoints. Pour un type de taille donnçe èpar exemple 4k 0 +1è le
112 4.4. Des arbres de recouvrement de profondeur minimale 101 passage ça la taille supçerieure du m^eme type èc'est-ça-dire 4èk +1è 0 + 1è s'eæectue en rajoutant deux lignes en haut de la grille torique, deux lignes en bas, deux colonnes ça droite et deux colonnes ça gauche. Il est possible de dçecomposer la grille torique en sept zones èvoir ægure 4.18è : í zone 1 : partie centrale de la grille torique oçu s'applique le principe de base ; í zone : constituçee par les nçuds du bord nord-est ; í zone 3 : constituçee par les nçuds du bord sud-est ; í zone 4 : constituçee par les nçuds du bord sud-ouest ; í zone 5 : constituçee par les nçuds du bord nord-ouest ; í zone 6 : constituçee par les nçuds du bord ayant pour abscisses 0 ; í zone 7 : constituçee par les nçuds du bord ayant pour ordonnçees 0 ; zone 5 6 zone 7 zone 1 7 zone 4 6 zone 3 Fig :Localisation des sept zones. En enlevant les bords de la grille torique de taille 4k èrespectivement 4k 0 +3, 4k 0,4k 0 + è on obtient la zone 1, que l'on retrouve dans la grille torique de taille 4èk 0 + 1è + 1 èrespectivement 4èk 0 +1è+3,4èk 0 + 1è, 4èk 0 + 1è + è. De la m^eme façcon on peut rçeutiliser les six autres zones èvoir ægure 4.19è.
113 10 Chapitre 4. Diæusion dans les grilles toriques zone 5 6 zone 7 zone 1 7 zone 4 6 zone 3 Fig :Localisations des sept zones pour la taille supçerieure. Ceci nous donne un recouvrement partiel de la grille torique de taille supçerieure. Dans la zone comprise entre la zone 1 et les bords, il est possible d'çetendre le principe de base, puisque cette zone ne fait pas partie des bords de la grille torique 4èk 0 + 1è + 1 èrespectivement4èk 0 +1è+3,4èk 0 + 1è, 4èk 0 + 1è + è. Donc par construction la zone centrale de grille torique de taille supçerieure est arcs disjoints. Pour combler les trous qui restent dans le bord nous allons prendre des patterns dçejça utilisçes dans le bord. En fait, dans chaque trou du bord nous avons quatre nçuds que nous allons atteindre par le pattern dçeæni par les quatre derniers nçuds de chaque zone. Comme le montre la ægure 4.0 chaque zone du bord possçede deux patterns que nous allons appeler a et b.pour boucher les trous, il suæt de dupliquer les patterns a et b comme le montre la ægure 4.0. Remarque. Il est trçes important de noter le passage de la grille torique 9æ9 ça la grille torique 13 æ 13 ne se fait pas aussi simplement. Du fait de la trçes grande irrçegularitçe des arbres, et du faible nombre de lignes et de colonnes de cette grille torique, les patterns a et b n'ont pas une forme stable. Mais dçes la taille 13, nous ne rencontrons plus de problçeme pour la rçecurrence.
114 4.4. Des arbres de recouvrement de profondeur minimale 103 zone 5 5b 5b 6 a a zone 5a b 5a b 7 7 4b 3a 4b 3a zone 4 4a 4a 6 3b 3b zone 3 Fig. 4.0 : Construction de la taille supçerieure. Or, par hypothçese de rçecurrence les bords sont arcs disjoints, donc les arbres de recouvrements dans la grille torique de taille 4èk 0 + 1è + 1 èrespectivement 4èk 0 + 1è + 3, 4èk 0 + 1è,4èk 0 +1è+èsont arcs disjoints. Comme la rçecurrence est vrai pour k =; ::; k 0 ;k pour les grilles torique du type 4k +3; 4k; 4k + et pour k = 3 pour les grilles torique du type 4k +1 elle est vraie pour tout k ç 3. Ceci nous permet d'çenoncer le thçeorçeme suivant: k de profondeurs minimale jp p +1. Thçeorçeme Il existe dans une grille torique p pæ p p quatre arbres disjoints Algorithme de diæusion Pour rçealiser la diæusion, nous considçerons une grille torique de taille p pæ p p, dans laquelle les communications sont en mode commutation de messages èstore et forwardè full-duplex,æ-ports. L'utilisation des quatre arbres de recouvrement disjoints va permettre de dçecouper le message ça diæuser en quatre parties çegales èl N ;L E ;L S ;L W è, et de pipeliner l'envoi de chacun de ces paquets dans l'arbre de recouvrement correspondant. L'algorithme s'çecrit de la façcon suivante :
115 104 Chapitre 4. Diæusion dans les grilles toriques Algorithme 4.1 Diæusion optimale dans les grilles toriques si racine alors Couper L en quatre partie çegales L N ;L E ;L S ;L W ; Pipeliner L N ;L E ;L S ;L W dans l'arbre derecouvrement de racine R correspondant ; sinon Faire enparallçele Recevoir de son pçere dans chaque arbre; Envoyer ça ses æls dans chaque arbre ; Du fait que cet algorithme utilise des arbres de recouvrement de profondeur minimale, et un nombre maximal de ces arbres, on peut çenoncer la proposition suivante : Proposition Il existe une diæusion optimale en mode pipeline sous les hypothçeses communication en commutation de message æ-ports, full-duplex, dans les grilles toriques de taille p p æ p p.le temps de cette diæusion est de : T diffusion = s b p s p L 1 cæ + 4 A ç : è4:è Preuve. D'aprçes le rçesultat.6 nous savons que le temps nçecessaire pour envoyer un message de taille L ça une distance d en utilisant æchemins disjoints est de : q èd, 1èæ +s L æ ç 1 A è4.3è k Les quatre arbres utilisçes ont une profondeur de jp p +1, d'oçu en remplaçcant dans la formule ci-dessus, on obtient le temps de la proposition. Cette diæusion est optimale en mode pipeline, car nous utilisons le maximum d'arbre que permet la grille torique et chaque arbre est de profondeur minimale. 4.5 Gçençeralisation Il est facile d'çetendre le principe de base ça des grilles toriques de taille arbitraire p p æ p q, toutefois le problçeme des nçuds situçes sur les bords subsiste.
116 4.5. Gçençeralisation 105 Pour les tailles telles que p p =4k + s et p q =4k 0 + s, il n'y pas de problçeme sur les bords, les arbresç s'embo^çtent ç bien. On peut vçeriæer gr^ace aux tables qui se trouvent en æn de document, que la construction est toujours ça arcs disjoints. Mais pour les autres tailles cela se passe moins bien. En eæet, pour les tailles telles que p p =4k + s et p q =4k 0 + t, avec s 6= t, cela conduit ça la construction de plusieurs arbres èen gçençeral trois, et le quatriçeme se dçeduit d'un des trois autresè. L'utilisation des arbres de profondeur minimale n'çetant pas possible, la solution consiste ça utiliser comme prçecçedemment des arbres de profondeur minimale plus un et de rçealiser des adaptations au cas par cas. Une prçesentation de ces arbres est donnçee dans ë7ë. Le tableau suivant est une synthçese des rçesultats obtenus. p p p q profondeur des arbres de recouvrement 4k 4k b p p c + b p q 4k+1 4k+1 b p p c + b p q 4k+ 4k+ b p p c + b p q 4k+3 4k+3 b p p c + b p q 4k 4k' b p p c + b p q 4k+1 4k'+1 b p p c + b p q 4k+ 4k'+ b p p c + b p q 4k+3 4k'+3 b p p 4k'+1 4k 4k'+ b p p 4k'+3 4k+1 4k'+ b p p c + b p q c + b p q c +1 c +1 c +1 c +1 c +1 c +1 c +1 c +1 c + c + b p qc + 4k'+3 4k+ 4k'+3 b p pc + b p qc + Gçençeralisation au half-duplex Une çetude similaire a çetçerçealisçee en gardant unmodçele æ-port èlink-boundedè, une transmission de messages entre nçuds par commutation de messages èstore and forwardè, mais avec des liens de communication half-duplex. Cette çetude a çetçe rçealisçee avec Jean-Claude Bermond et Denis Trystram ë1ë. Aprçes avoir prçesentçe les diæçerentes constructions d'arbres de recouvrement existantes ainsi que les temps de diæusion pipeline dans ces arbres, nous dçecrirons la construction d'une nouvelle famille d'arbres de profondeurs minimales, ce qui nous permettra de rçealiser la diæusion pipeline de façcon quasi optimale.
117 106 Chapitre 4. Diæusion dans les grilles toriques Les solutions existantes Ici nous allons prçesenter les diæçerentes constructions proposçees par Saad et Schultz ë8ë et Simmen ë9ë. Une premiçere solution La premiçere solution, consiste ça construire un seul arbre de recouvrement, comme le montre la ægure 4.1 Fig. 4.1 : Un arbre couvrant de la grille torique. k La profondeur de cet arbre est minimale et est çegal au diamçetre jp p. Cet arbre permet de rçealiser un diæusion pipeline en un temps de : T diffusion =èv u t è $p p è, 1èæ + p çlè : è4.4è L'algorithme de Saad et Schultz Saad et Schultz ont proposçe dans ë8ë une solution k basçee sur l'utilisation de deux arbres de recouvrant partiels de profondeur jp p comme le montre la ægure 4.. On constate que ces arbres ressemblent beaucoup ça l'arbre donnçe par la ægure 4.1.
118 4.5. Gçençeralisation 107 Fig. 4. : Deux arbres de recouvrement partiels. Le deuxiçeme arbre de recouvrant partiel est obtenu par rotation de ç du premier. On peut remarquer que ces deux arbres sont ar^etes disjointes. Saad et Schultz utilisent ces deux arbres pour rçealiser la diæusion pipeline du message, en pipelinant l'envoie de la moitiçe du message dans chaque arbres. Toutefois, comme chaque arbre ne couvre pas totalement la grille torique, certain nçuds ne conna^çtront que la moitiçe du message. Ces nçuds ont pour abscisse 0 ou pour ordonnçee 0. Pour remçedier ça ce problçeme Saad et Schultz propose de diæuser de façcon pipeline la moitiçe de message manquante durant la phase de vidage du pipeline. En eæet dçes que le dernier paquet du message de taille L est envoyçe, l'çemetteur commence ça envoyer le message de taille L manquant. Malheureusement, ceci ne fonctionne pas aussi simplement. Simmen a montrçe ë9ë que pour de grandes tailles de L cette mçethode k çetait mauvaise. En eæet la premiçere diæusion s'eæectue sur une distance de jp p k alors que la deuxiçeme s'eæectue sur une distance de jp p. Du fait du dçecoupage du message en paquets de taille optimal èvoir chapitre è, dans les deux phases consçecutive de pipeline la taille des paquets est diæçerente, ce qui inæue sur la vitesse de progression des paquets dans le rçeseau. En fait pour L ç L 0 èoçu L 0 = æ D ç D,1 è la deuxiçeme phase de pipeline ça le temps de ænir avant la premiçere. D'oçu le temps de diæusion est de : 0 1 T diffusion = A : v ut è $p p è, 1èæ + s çl Par contre pour L ç L 0, la deuxiçeme phase n'a pas le temps de ænir, ce qui donne un temps d'exçecution de : ès v! + u p k tæçlèjp, çl 1è 0 + èçp p ç, 1èæ +r çl jp, p k 1 B@æ +v u æçl t k C, 1è A :è4.6è èj pp
119 108 Chapitre 4. Diæusion dans les grilles toriques L'algorithme de Simmen k Simmen ë9ë propose deux arbres de recouvrement de profondeur 4 jp p +1. La ægure 4.3 montre un de ces arbres. Le deuxiçeme arbre s'obtient en eæectuant une rotation de ç du premier suivit par une symçetrie axiale èopçeration miroirè. Fig. 4.3 : Un des deux arbres de Simmen. v $p ut p 4 Le temps de diæusion pipeline avec ces arbres est donc de : è T diffusion = A : æ +s çl 1 è4.7è 4.5. Quelques amçeliorations Nous allons prçesenter de nouveaux algorithmes issus de modiæcations eæectuçees sur la construction des arbres. Dans le cas du full-duplex, nous avons prçesentçe des arbres de profondeur minimale qu'il est possible d'utilisçe dans le cas half-duplex. En eæet, il suæt de dçecomposer chaque çetape de communication en deux sous-çetapes. Durant la premiçere on eæectue les communications dans un sens, et durant la seconde, on eæectue les communications dans l'autre sens. Ceci revient ça doubler le diamçetre. Avec cet algorithme le temps de diæusion est çegale ça: è 1 A : è4.8è T diffusion v u t è $p p +1èæ +s çl 4 Parmi les rçesultats prçesentçes prçecçedemment, il est possible d'eæectuer une amçelioration aux arbres de Simmen èvoir ægure 4.4è. Cette amçelioration consiste
120 4.5. Gçençeralisation 109 en une meilleure utilisation des particularitçesk de la grille torique. Les arbres ainsi obtenus ont une profondeur de 3D soit 3jp p. Fig. 4.4 : Un des arbres de profondeur 3D. Le deuxiçeme arbre de recouvrement est obtenu par une rotation ç suivie par une symçetrie axiale. La diæusion pipeline le long de ces arbres donne un temps de : 0 1 T diffusion = A : v ut è3 $p p è, 1èæ + s çl Du fait que nous cherchons ça rçealiser une diæusion pipeline en temps minimum, il est nçecessaire d'avoir le nombre maximum d'arbres c'est-ça-dire deux, et d'avoir des arbres de profondeur minimale Construction d'arbres de profondeur minimale Aæn de construire des arbres de profondeur minimale, il faut conna^çtre celleci. Le thçeorçeme donne une borne sur la profondeur minimale de deux arbres disjoints dans une grille torique de taille p p æ p p Thçeorçeme Dans une grille torique de taille p pæ p p, il existe deux arbres de recouvrement de profondeur minimale p p. Preuve. Les arbres ont au moins une profondeur de D, donc ce rçesultat est optimal dans le cas oçu p p est pair, puisque D = p p.pour le cas oçu p p est impair, le diamçetre est p p,1, mais il est impossible de construire deux arbres de recouvrementar^etes disjointes de profondeur D. Il y a quatre nçuds èx min ;y min è, èx min ;y max è, èx max ;y min è, èx max ;y max è qui sont ça distance D de l'çemetteur,de
121 110 Chapitre 4. Diæusion dans les grilles toriques plus il y a quatre ar^etes entre ces quatre nçuds. Ces ar^etes ne peuvent pas ^etre utilisçees si on dçesir construire des arbres de recouvrement de profondeur D. Ainsi nous pouvons utiliser au plus n, 4ar^etes pour ces deux arbres. Mais n, 1 ar^etes sont au minimum nçecessaire pour construire un arbre, donc nous avons une contradiction. Donc pour les tailles impaires la profondeur minimale est D + 1 soit p p. Aæn de construire les arbres de profondeur minimale, nous allons diviser la grille torique en quatre parties çegales èou quasi çegaleè èvoir ægure 4.5è. Pour faciliter la construction nous allons imposer que ces arbres soient symçetriques par rapport ça l'çemetteur et de plus que le deuxiçeme se dçeduise du premier par une simple rotation de ç. Le premier arbre contient tous les nçuds dont l'ordonnçee est nulle èc'est-ça-dire èi,0èè et le second contient donc tous les nçuds dont l'abscisse est nulle èc'est-ça-dire è0,jèè. domaine 4 domaine 1 domaine 3 domaine Fig. 4.5 :Idçee de construction du premier arbre. Pour construire un arbre, l'idçee de base consiste ça utiliser deux domaines diæçerents pour deux colonnes consçecutives. Par exemple, si l'on considçere la partie droite de la grille torique par rapport ça l'çemetteur, l'arbre utilise les colonnes impaires dans le domaine 1 et les colonnes paires dans le domaine. èvoir ægure 4.5è Les nçuds des colonnes non utilisçees par l'arbre dans chaque domaine, sont atteints par des ç crochets ç identiques ça ceux dçeænis dans le cas full-duplex.
122 4.5. Gçençeralisation 111 Comme pour le cas full-duplex la construction des bords diæçerent, elle dçepend de la congruence de p p modulo 4. Les ægures 4.6, 4.7, 4.8, 4.9 donne la construction des arbres pour les taille p p =10; 11; 1; 13. Fig. 4.6 : Construction d'un arbre derecouvrement pour p p =10. Fig. 4.7 : Construction d'un arbre derecouvrement pour p p =11.
123 11 Chapitre 4. Diæusion dans les grilles toriques Fig. 4.8 : Construction d'un arbre derecouvrement pour p p =1. Fig. 4.9 : Construction d'un arbre derecouvrement pour p p =13. La construction de ces arbres peut facilement s'çetendre, en eæet il suæt de rajouter quatre lignes intermçediaires et quatre colonnes intermçediaires èdeux dans
124 4.6. Conclusion 113 chaque domaineè. L'utilisation de ces arbres pour eæectuçe une diæusion pipeline donne le temps : T diffusion = q p è p, 1èæ +s çl 1 A è4.10è L'çetude que nous venons de mener nous a permis de prçesenter une sçerie d'algorithmes de diæusion pipeline dans les grilles toriques en mode half-duplex. Cette çetude s'est terminçee par la prçesentation d'une nouvelle famille d'arbres de recouvrement ar^etes disjointes de profondeur minimale. 4.6 Conclusion Dans ce chapitre des nouvelles familles d'arbres couvrants de profondeur minimale ont çetçe prçesentçees. Ces familles permettent de rçealiser des diæusions dans les grilles toriques carrçees en mode pipeline de façcon optimale. De plus, une gçençeralisation du mçecanisme de construction de ces arbres permet d'obtenir des rçesultats sur les grilles toriques rectangulaires. Aæn qu'un utilisateur puisse crçeer sa propre bibliothçeque de communication dans les grilles toriques, nous allons prçesenter dans le chapitre suivant une synthçese des meilleurs algorithmes pour les autres schçemas de communications. Bibliographie ë1ë J-C Bermond, P. Michallon, and D. Trystram. Broadcasting in wraparound meshes with parallel monodirectionnal links. Parallel Computing, pages 639í648, 199. ëë Jean de Rumeur. Communications dans les rçeseaux de processeurs. Masson, ë3ë J. Edmonds. Edges-disjoint branching, combinatorial algorithms. Algorithms press, New- York, 197. ë4ë P. Fraigniaud. Communications intensives dans les architectures ça mçemoire distribuçee et algorithmes parallçeles pour la recherche de racines de polyn^omes. PhD thesis, Universitçe de Lyon I, ENS, ë5ë P. Fraigniaud and E. Lazard. Methods and problems of communication in usual networks. to appear in Discrete Applied Mathematics, special issue on broadcasting and gossiping. ë6ë S.L. Johnsson and C.T. Ho. Optimum broadcasting and personalized communications in hypercubes. IEEE Transaction on Computers, 38è9è:149í168, ë7ë P. Michallon, D. Trystram, and G. Villard. Optimal broadcasting algorithms on torus. Technical Report 87-I-, LMC-IMAG èfranceè, January 199. ë8ë Y. Saad and M.H. Schultz. Data communication in parallel architectures. Journal of Parallel Computing, 11:131í150, ë9ë M. Simmen. Comments on broadcast algorithms for -dimensional grids. Parallel Computing, 17:109í11, 1991.
125 114 Bibliographie ë10ë Q. Stout and B.Wagar. Intensive hypercube communication; prearranged communication in link-bound machines. Journal of Parallel and Distributed Computing, 10èè:167í181, 1990.
126 Chapitre 5 Communications globales dans les grilles toriques Dans le chapitre prçecçedent, nous avons çetudiçe en dçetail la diæusion dans les grilles toriques de processeurs, sous l'hypothçese de communication par commutation de message. Au cours de cette çetude nous avons dçecrit et utilisçe un outil : les arbres de recouvrementça arcs-disjoints. Dans ce chapitre, nous allons rçealiser une çetude similaire, sous les m^emes hypothçeses èc'est-ça-dire commutation de message avec temps linçeaire et liens full-duplexè, qui correspondent aumodçele de machine dont nous disposons, par les autres schçemas de communications globales. Le but de cette çetude est de fournir un outil pour chaque schçema de communication. Dans un premier temps, nous dçecrirons les diæçerentes façcons de rçealiser un çechange total. Puis nous prçesenterons des algorithmes qui permettent de rçealiser la distribution, le regroupement et la multidistribution. Enæn, nous conclurons ce chapitre par un tableau rçecapitulatif des principaux rçesultats. 5.1 L'çechange total Comme nous l'avons vu au chapitre 3, l'çechange total est un schçema de communication oçu chaque processeur du rçeseau envoie le m^eme message ça tous les autres processeurs. Une borne infçerieure de cet algorithme est donnçee dans la proposition suivante ë1, ë : Proposition Soit un rçeseau d'interconnexion de degrçe æ, de diamçetre D, possçedant p processeurs. Sous les hypothçeses d'une modçelisation temps linçeaire et de liens parallçeles full-duplex, une borne infçerieure du temps d'çechange total en mode commutation de circuit est : ç max æd;çlç p, çç 1 è5.1è æ 115
127 116 Chapitre 5. Communications globales dans les grilles toriques Preuve. La distance maximale entre deux processeurs çetant D, il faudra donc au moins D çetapes pour çechanger des messages entre ces deux processeurs. m. Chaque processeur l doit recevoir p, 1 messages, donc en supposant que le processeur puisse recevoir sur ses æ liens simultançement, le temps de propagation p,1 minimal sera de æ Comme nous çetudions les grilles toriques TMè p p; p pè, le nombre minimal d'çetapes sera de jp p k et le temps minimal de propagation sera de l p,1 4 Pour ce schçema de communication, il est çevident que nous ne pouvons pas utiliser des arbres de recouvrement disjoints comme pour la diæusion. Toutefois il est possible, comme nous allons le voir, d'utiliser encore des arbres, mais cette fois ayant des arcs disjoints dans le temps, de façcon ça çeviter les conæits d'accçes sur les liens de communication. Parmi les algorithmes qui rçealisent l'çechange l total, nous allons prçesenter trois mçethodes qui permettent d'atteindre soit le temps de m propagation minimal èdæ+ p,1 termeè, soit le nombre d'çetapes minimal èçl æ + termeè, soit la somme l du m p,1 temps minimum de propagation et du temps de start-up minimal èdæ+çl æ è. Du fait de la rçegularitçe du problçeme èchaque processeur envoie le m^eme message ça tout le mondeè, on considçere qu'ça chaque çetape tous les processeurs eæectuent la m^eme chose. Ceci permet de considçerer l'algorithme en un seul processeur, le 0, tout en faisant attention aux problçemes de conæits entre les liens de communication. m Dçecomposition de la grille torique Dans le chapitre nous avons vu que la grille torique ètorus meshè TMè p p; p pè pouvait se dçecomposer en somme cartçesienne de cycles de longueur p p, d'oçu l'idçee d'çetudier l'çechange total sur un anneau èou cycleè de taille p p aæn d'çetendre ce rçesultat ça la grille torique. Prçeliminaire: çechange total sur un anneau L'çevolution des messages reçcus par le processeur 0, ainsi que la progression du message çemis par ce processeur sont illustrçees par la ægure 5.1. A l'çetape 1 tous les processeurs çechangent leur message avec leurs voisins, puis aux çetapes suivantes ils çechangent les messages qu'ils ont reçcus ça l'çetape prçecçedente et ainsi de suite ë1, 3ë.
128 5.1. L'çechange total çetat initial çetape çetape çetape 3 Fig. 5.1 : Echange total sur un anneau de 7 processeurs. Soit L q le message du processeur q et L èq+1 modulo p pè èrespectivement L èq,1 modulo p pèè le message que le processeur q reçcoit de son voisin èq +1modulo p pè èrespectivement èq, 1 modulo p pèè. L'algorithme du processeur q est le suivant:
129 118 Chapitre 5. Communications globales dans les grilles toriques Algorithme 5.1 Echange total sur un anneau è p p impairè Faire enparallçele Envoyer L au processeur èq +1 modulo p pè; Envoyer L au processeur èq, 1 modulo p pè; Recevoir L èq+1 modulo p pè du processeur èq +1 modulo p pè; Recevoir L p èq,1 modulo k pè du processeur èq, 1 modulo p pè; Pour i è jusqu'ça jp p Faire enparallçele Envoyer L p èq,1 modulo pè au processeur èq +1 modulo p pè; Envoyer L èq+1 modulo p pè au processeur èq, 1 modulo p pè; Recevoir L èq+1 modulo p pè du processeur èq +1modulo p pè; Recevoir L p èq,1 modulo pè du processeur èq, 1 modulo p pè; Proposition 5.1. Le temps nçecessaire çal'çechange total sur un anneau de p p processeurs est de : $ pp è p p, 1 T Echange total = æ + Lç è5.è k Preuve. Il est facile de constater que cet algorithme nçecessite jp p k envois et rçeceptions, ce qui donne un temps d'exçecution de jp p èæ + Lçè. Dans le cas oçu p p est impair, le rçesultat est immçediat. Mais dans le cas oçu p p est pair, il est nçecessaire de modiæer lçegçerement l'algorithme. En eæet, dans ce cas-lça, aprçes p p, 1çetapes chaque processeur a reçcu tous les messages sauf celui du processeur ça distance p p. Mais le message manquant çachaque processeur se trouve sur ses deux voisins, et dans la derniçere çetape, chaque processeur reçcoit de chacun de ses voisins la moitiçe du message. Le temps d'exçecution de l'algorithme est donc : çp 1ç p, èæ + Lçè+æ + L ç ce qui correspond au temps çenoncçe dans la proposition. Application ça la grille torique L'algorithme qui permet de rçealiser l'çechange total sur la grille torique est une gçençeralisation de l'çechange total sur l'anneau. En eæet, sur la grille torique l'algorithme peut se dçecomposer en deux phases successives : 1. sur les anneaux verticaux, rçealiser un çechange total avec des messages de taille L.
130 5.1. L'çechange total 119. sur les anneaux horizontaux, eæectuer un çechange total avec des messages de taille p pl. Le temps de cet algorithme est : T Echange total =$p p è æ + p, 1 Lç è5.3è Toutefois on constate que, lors de chaque phase, seule la moitiçe des liens est utilisçee, ce qui ne permet pas d'obtenir une propagation optimale du message. Il est possible d'eæectuer des çechanges totaux avec des moitiçes de messages sur les anneaux verticaux et horizontaux simultançement. Les deux phases deviennent alors ë1, 3, 5ë : 1. sur les anneaux verticaux et horizontaux, rçealiser un çechange total avec des messages de taille L.. sur les anneaux verticaux et horizontaux, eæectuer un çechange total avec des messages de taille p p L. L'algorithme d'un processeur q de la grille torique est le suivant: Algorithme 5. Echange total sur grille torique èsomme cartçesienne d'anneauxè Faire enparallçele Echange total sur les anneaux verticaux de messages de taille L ; Echange total sur les anneaux horizontaux de messages de taille L ; Faire enparallçele Echange total sur les anneaux verticaux de messages de taille p p L ; Echange total sur les anneaux horizontaux de messages de taille p p L ; Proposition Le temps de l'çechange total de messages de longueur L dans une grille torique p p æ p p processeurs de l'algorithme prçecçedent est çegal ça: T Echange total =$p p è æ + p, 1 Lç è5.4è 4 Preuve. Ce temps est la somme des durçees de chacune des deux phases : 1. un jp çechange total avec des messages de taille L soit : p k p p,1 æ + L ç p. un çechange total avec des messages de taille p jp L soit : p k p æ + p,1p p L ç
131 10 Chapitre 5. Communications globales dans les grilles toriques En eæectuant la somme on retrouve bien le temps çenoncçe dans la proposition. Remarque. L'implçementation de cet algorithme est assez complexe, et nçecessite une zone mçemoire assez importante pour stocker les messages. Toutefois il permet d'obtenir un temps de propagation et un nombre d'çetapes minimaux Les chemins hamiltoniens Comme pour la diæusion, il est possible d'utiliser des arbres de recouvrement orientçes pour rçealiser l'çechange total. Mais cette fois-ci les arbres utilisçes sont arcs disjoints dans le temps. Dçeænition. æ arbres de recouvrement orientçes de profondeur d 1 ;d ; :::; d æ, dans un graphe orientçe sont arcs disjoints dans le temps si et seulement si : quel que soit h, 1 ç h ç maxèd 1 ;d ; :::; d æ è, tout arc dugraphe appartient au plus au niveau h d'un seul arbre. Du fait du r^ole identique jouçe par tous les nçuds de la grille, chaque processeur ne peut ^etre la racine que d'un seul l arbre. De plus, pour exploiter au mieux le degrçe dechaque nçud, chaque arbre m va ^etre constituçe de quatre branches p,1 parcourant chacune une zone de 4 processeurs. Ces conditions trçes fortes imposent l'utilisation de chemins hamiltoniens dans chaque zone ë6ë. Fig. 5. : Parcours de chaque rçegion par un chemin hamiltonien. Localement chaque processeur doit gçerer les envois qu'il eæectue ça chaque çetape. En fait, chaque processeur doit conna^çtre le parcours de son message dans
132 5.1. L'çechange total 11 un seul chemin hamiltonien, et en eæectuant des rotations etèou des translations il sait ce qu'il doit faire ça une çetape donnçee dans chaque chemin. Aæn d'çeliminer le co^ut de cette gestion locale, il faut pouvoir calculer des tables de routage lors de la compilation. L'algorithme d'un processeur q de la grille torique est le suivant: Algorithme 5.3 Echange total sur grille torique èchemins hamiltoniensè Faire enparallçele Envoyer son message de taille L sur les quatre chemins hamiltoniens; Recevoir les messages de taille L de ses quatre voisins; Pour i è jusqu'ça l p,1 4 m Faire enparallçele Envoyer les quatre messages de taille L reçcus ça l'çetape prçecçedente sur le bon chemin; Recevoir les messages de taille L de ses quatre voisins; Proposition Le temps de l'çechange total dans les grilles toriques de l'algorithme utilisant les chemins hamiltoniens est : ç p, 1 4 ç èæ + Lçè T Echange total = l è5.5è m p,1 Preuve. Chaque chemin hamiltonien a une longueur de 4, et comme çachaque çetape, on envoie un message de taille L, le temps de l'algorithme est bien celui de la proposition. Remarque. Cet algorithme a un start-up prohibitif pour de petits messages, mais a un co^ut quasi identique celui de l'algorithme prçecçedent pour de grands messages. De plus, cet algorithme ne nçecessite pas de stockage intermçediaire des messages en mçemoire. Notons que Plateau et Trystram ë7ë donnent une extension de cette mçethode pour les grilles toriques 3-D Stratçegie gloutonne Dans cette stratçegie, ça chaque çetape un processeur reçcoit et envoie quatre messages. Mais en plus, ça une çetape donnçee i, chaque processeur doit recevoir les messages des processeurs situçes ça distance i. Il est clair que cette stratçegie
133 1 Chapitre 5. Communications globales dans les grilles toriques nçecessite une concatçenation des messages ë5, 9ë. La ægure 5.3 illustre les deux premiçeres çetapes de cet algorithme pour le processeur dessinçe au centre. Etape 1 Etape Fig. 5.3 :Les premiçeres çetapes de l'algorithme glouton. Il est facile de constater que si l'on applique l'algorithme tel quel, il y a redondance des messages. Aæn de supprimer cette redondance, chaque message doit suivre un chemin l bien prçecis. Une solution qui permet de recevoir ça l'çetape i tous les messages des processeurs m situçes ça distance i est de diviser la grille torique p,1 en quatre zones de 4 processeurs, et de recevoir ça chaque çetape un message depuis chaque zone. Sur la ægure 5.3, on peut voir ça l'çetape les messages que le processeur central reçcoit de chaque zone. Ces messages çetaient la possession des processeurs entourçes d'un trait noir gras. Fig. 5.4 : L'arbre couvrant çequilibrçe.
134 5.1. L'çechange total 13 En analysant les chemins que doivent suivre les messages dans une zone, on s'aperçcoit que ces messages transitent sur un arbre couvrant çequilibrçe de cette zone èvoir ægure 5.4è. Par simple rotation de cet arbre, on couvre les trois autres zones. Il est possible de voir cet algorithme comme un regroupement s'eæectuant le long d'arbres de recouvrementçequilibrçes, enracinçes en chaque nçud de la grille. Remarque. Notre çetude se limitera au cas des grilles toriques de dimension impaire. En eæet, pour une grille torique de taille paire, de nombreux problçemes se posent, du fait que chaque processeur ne peut pas ^etre considçerçe comme le centre de la grille torique. Algorithme 5.4 Echange total sur grille torique èarbres çequilibrçesè Faire enparallçele Envoyer son message de taille L ça ses quatre voisins; Recevoir les messages de taille L de ses quatre voisins; Pour i è jusqu'ça jp k p Faire enparallçele Faire la gestion des messages et la concatçenation des messages reçcus ça l'çetape prçecçedente; Envoyer les quatre nouveaux messages sur les bons arbres; Recevoir les messages de ses quatre voisins; La gestion et la concatçenation des messages consiste ça faire le tri des messages. Eæectivement ça chaque çetape, un processeur reçcoit quatre messages, qu'il va devoir devoir analyser aæn d'extraire des morceaux de message de taille L et de reconstituer quatre nouveaux messages que le processeur enverra ça l'çetape suivante. Proposition Le temps de l'çechange total dans les grilles toriques de l'algorithme utilisant les arbres de recouvrement çequilibrçes est : $ pp è ç p, 1 ç T Echange total = æ + Lç è5.6è 4 Preuve. La taille des messages varie au cours de l'algorithme : ça l'çetape 1 un processeur reçcoit quatre messages de taille L, çal'çetape il reçcoit quatre messages de taille L, etc. La taille de chaque message va cro^çtre jusqu'ça jp k p, puis va dçecro^çtre jusqu'ça L. Donc cet algorithme s'exçecute en : b p X p=c èæ + ilçè i=1
135 14 Chapitre 5. Communications globales dans les grilles toriques soit, en dçeveloppant, le rçesultat de la proposition. Remarque. Cet algorithme permet d'obtenir un temps de propagation et un nombre d'çetapes minimaux. Toutefois une zone mçemoire importante est nçecessaire pour stocker les messages intermçediaires. Nous venons de prçesenter trois algorithmes permettant de rçealiser l'çechange total sur la grille torique dans un temps de propagation minimum. Implçementer l'algorithme glouton et l'algorithme ça base de chemins disjoints est assez diæcile du fait de la gestion locale des chemins ça suivre pour chaque message. Aæn de faciliter la t^ache du programmeur, il faut pouvoir calculer les tables de routage lors de la compilation aæn de pouvoir les utiliser lors de l'exçecution. Mais la solution idçeale serait d'avoir de telles procçedures c^ablçees sur les processeurs de routage aæn de supprimer le start-up logiciel et ainsi rçeduire considçerablement le co^ut de ces algorithmes pour de petits messages. 5. La distribution La distribution correspond ça l'envoi d'un message diæçerent ça tous les processeurs ça partir d'un seul nçud. La borne infçerieure de cet algorithme est identique ça celle de l'çechange total. En eæet, la distance maximale entre deux processeurs çetant D, il faudra au moins D çetapes avant que le message çemis par la source atteigne le processeur le plus çeloignçe. Par l ailleurs la source ne peut pas çemettre plus de æ messages ça la fois, or il faut qu'elle m çemette p, 1 messages, donc le p,1 temps de propagation minimal sera de æ Lç. Dans ce paragraphe nous allons considçerer le processeur indicçe par 0, comme le processeur initiateur de la distribution. Comme dans le paragraphe prçecçedent, nous allons çetudier auparavant la distribution dans l'anneau. Prçeliminaire : distribution dans l'anneau L'algorithme consiste pour le processeur 0 ça envoyer ça l'çetape k les messages destinçes aux processeurs ça distance D, k. Al'çetapek1 le processeur 0 envoie au processeur 1 le message destinçe au processeur jp p,1 et envoie au processeur p p k, p 1 le message destinçe au processeur jp p,1 +1.Al'çetape les processeurs 1et p, 1 propagent les messages m reçcus ça l'çetape 1 et reçcoivent les messages destinçes aux processeurs lp jp p,1, p,1 1et k +, etc. La ægure 5.5 illustre ce principe sur un anneau ça sept processeurs.
136 5.. La distribution çetat initial çetape çetape çetape 3 Fig. 5.5 : Distribution dans un anneau. k Voici l'algorithme d'un processeur q avec 0 éqç jp p :
137 16 Chapitre 5. Communications globales dans les grilles toriques Algorithme 5.5 Distribution sur un anneau è p p impairè k Pour i è q +1 jusqu'ça jp p faire faire enparallçele Recevoir L du processeur q, 1 modulo p p; Envoyer L au processeur q +1 modulo p p; Recevoir L du processeur q, 1 modulo p p; Remarque. Pour les anneaux de taille paire il suæt de modiæer la premiçere çetape de k l'algorithme, en envoyant la moitiçe du message destinçe au processeur jp p,1 dans chacune des directions, puis d'exçecuter l'algorithme normalement. Fraigniaud, Miguet et Robert ë4ë ont montrçe que cet algorithme çetait optimal. Proposition 5..1 Le temps nçecessaire pour rçealiser une distribution sur l'anneau est : $ pp è p p, 1 T Distribution = æ + Lç è5.7è 5..1 Application aux grilles toriques Comme pour l'çechange total, il est possible de gçençeraliser ce rçesultat ça la grille torique ë8ë. En gardant l'idçee qui consistait ça utiliser les anneaux verticaux et horizontaux simultançement, on trouve un algorithme de distribution, qui se dçecompose en deux çetapes successives : 1. Le processeur 0 rçealise une distribution simultançee sur son anneau vertical et son anneau horizontal avec des messages de taille p p L.. Tous les processeurs ayant reçcu des messages sur leur anneau vertical èrespectivement horizontalè eæectuent une distribution sur leur anneau horizontal èrespectivement verticalè. Comme chacun de ces processeurs a reçcu lors de la premiçere çetape, un message de taille p p L contenant p p messages de taille L èdestinçes aux p p processeurs de l'anneauè, la distribution se fait avec des messages de taille L. La ægure 5.6 illustre ces deux çetapes. Les processeurs qui eæectuent dans chaque çetape des distributions sont reprçesentçes en grisçe. On notera que le processeur 0 eæectue lors de l'çetape une nouvelle distribution, en eæet lors de la premiçere çetape seulement la moitiçe des messages a çetçe distribuçee dans chaque anneau, d'oçu la distribution de la seconde moitiçe.
138 5.3. Le regroupement 17 Etape 1 Etape Fig. 5.6 :Les deux phases d'une distribution dans une grille torique. Proposition 5.. Le temps nçecessaire pour rçealiser une distribution sur la grille torique est : T Distribution =$p p è æ + p, 1 Lç è5.8è 4 Preuve. Cette proposition se dçemontre facilement, car c'est la somme des durçees de chaque phase : k æ + p p,1 p p L ç p 1. une distribution avec des messages de taille p jp L soit : p k p p,1 æ + L ç. jp une distribution avec des messages de taille L soit : p ce qui donne bien le rçesultat de la proposition en additionnant les deux temps. 5.3 Le regroupement Le regroupement correspond ça l'opçeration inverse de la distribution, c'est-çadire que tous les processeurs envoient un message ça un processeur donnçe. La façcon la plus simple de rçealiser un regroupement consiste ça couper la grille torique en quatre zones et d'eæectuer un regroupement dans chaque zone en rçealisant une remontçee selon un arbre couvrant. Les arbres utilisçes ici sont les m^emes que ceux prçesentçes lors de la stratçegie gloutonne de l'çechange total.
139 18 Chapitre 5. Communications globales dans les grilles toriques A l'çetape 1 la racine reçcoit les quatre messages de ses quatre voisins, ça l'çetape la racine reçcoit les messages des processeurs situçes ça distance, etc. Proposition Le temps d'un regroupement sur la grille torique est de : è ç Lç T Regroupement =$p p æ +ç p, 1 4 è5.9è La preuve de cette proposition est identique ça la preuve Remarque. Le temps d'un regroupement est identique au temps d'un çechange total. Gçençeralement le regroupement est utilisçe pour eæectuer le calcul d'un maximum ou encore le produit scalaire de vecteurs distribuçes, ce qui nçecessite ça chaque çetape des calculs intermçediaires sur les donnçees contenues dans les messages. Nous allons çetudier les diæçerentes façcons de rçealiser une telle opçeration sur le produit scalaire distribuçe. Considçerons deux vecteurs de taille n rçepartis chacun çequitablement sur les p processeurs de la grille torique, et soit ç a le co^ut d'une opçeration arithmçetique. La premiçere chose ça faire, quelle que soit la stratçegie, est de calculer sur chaque processeur le produit scalaire de taille n, puis d'eæectuer le regroupement avec p des messages de taille 1. Une premiçere solution consiste ça eæectuer un regroupement selon l'algorithme dçecrit prçecçedemment. Mais on va remplacer la concatçenation des messages par une phase de calcul, en eæet les processeurs qui reçcoivent plusieurs messages vont faire la somme des donnçees contenues dans les messages, avant derenvoyer la nouvelle donnçee sous forme de message. Le temps d'une phase correspond au temps du processeur le plus lent.achaque çetape la racine reçcoit quatre donnçees, qu'elle additionne avec la sienne, soit au total quatre additions. Dans le reste du rçeseau, les processeurs les plus lents sont ceux qui reçcoivent deux donnçees et qui les additionnent ça leur donnçee, soit deux additions. Le temps d'une çetape est donc çegal ça maxèæ + ç +ç a ; 4ç a k è. Il y a exactement jp p, 1çetapes comme celle-ci. La derniçere phase de l'algorithme correspond ça l'envoi par les quatre voisins de la racine des quatre derniçeres donnçees, et ça leur somme sur la racine. Cette derniçere phase co^ute æ +ç +4ç a. La ægure 5.7 illustre cette solution sur une grille torique de 5 processeurs.
140 5.3. Le regroupement 19 Phase 1 Phase Phase 3 Phase 4 Fig. 5.7 :Les quatre phases du regroupement. Etant donnçees les caractçeristiques des machines actuelles, æ ç ç et æ ç ç a, maxèæ + ç +ç a ; 4ç a è est çegal ça æ + ç +ç a. ç jp Cette solution permet de rçealiser un regroupement en: p k, 1 ç èæ + ç +ça è+èæ + ç +4ç a è soit pp è è pp è $ èæ + çè+ç a 4$! + è5.10è Une deuxiçeme solution consiste ça exçecuter l'algorithme de distribution en sens inverse, c'est-ça-dire que le regroupement va s'eæectuer en deux temps. Dans un premier temps, la racine eæectue un regroupement des donnçees situçees sur les deux anneaux qui les contiennent, et simultançement les processeurs sur ces deux anneaux eæectuent un regroupement sur les autres anneaux k èplus prçecisçement sur des ç demi-anneaux çè. Cela prend un temps de : jp p maxèæ +ç +ça ; 4ç a è. Dans k, 1 ç maxèæ + ç + ça ; 4ç a è+èæ + ç +4ç a è. un deuxiçeme temps, les deux anneaux contenant la racine eæectuent un deuxiçeme regroupement, ce qui co^ute çjp p
141 130 Chapitre 5. Communications globales dans les grilles toriques La ægure 5.8 illustre cette solution oçu les diæçerents regroupements sont reprçesentçes par des æçeches en traits pleins et pointillçes. Fig. 5.8 :Le principe du regroupement en utilisant les anneaux. Du fait que æ est trçes supçerieur aux autres paramçetres èç;ç a è, le maxèæ + ç + ç a ; 4ç a è est çegal ça æ + ç + ç a. Donc cette solution permet de rçealiser un regroupement en: $p p è è$p p è! èæ + çè+ç a +4 è5.11è On constate que cette deuxiçeme solution permet de rçeduire le co^ut des calculs. De plus cette solution est plus facile ça implçementer, car elle s'exçecute en deux phases distinctes trçes simples ça programmer. En pratique lorsque l'on calcule un produit scalaire distribuçe, tous les processeurs ont besoin du rçesultat èvoir l'algorithme du gradient conjuguçe dans le chapitre 3è, ce qui oblige aprçes le regroupementça une diæusion de ce rçesultat. Comme le rçesultat est de taille 1 il est impossible de pipeliner cette diæusion, donckil faut rajouter au co^ut du regroupement leco^ut de la diæusion qui est de : jp p èæ + çè ce qui donne dans le meilleur des cas un temps de regroupementdiæusion çegal ça: 4$p p è è$p p è! èæ + çè+ç a +4 è5.1è L'utilisation de deux schçemas de communication successifs conduit ça unstartup prohibitif. Comme nous l'avons remarquçe auparavant, le co^ut d'un regroupement çetant lem^eme que celui d'un çechange total, on peut donc eæectuer un çechange total plut^ot qu'un schçema de regroupement-diæusion. Comme le message est de taille 1, on ne peut pas couper le message, donc le temps de l'çechange total est de : jp p k æ + p,1 ç èvoir formule 5.3è.
142 5.4. La multidistribution 131 Il est possible de rçealiser des calculs lors de l'çechange total, mais nous n'envisagerons pas cet aspect, car ça l'heure actuelle il n'existe pas de schçema de ce type. Donc, aprçes avoir eæectuçe l'çechange total chaque processeur a èp, 1è additions ça rçealiser, ce qui donne un temps de : $ pp è æ + p, 1 ç + ç aèp, 1è è5.13è Malgrçe l'augmentation du nombre d'opçerations, cette stratçegie reste la meilleure, du fait que æ ç ç a. A l'heure actuelle, il existe un facteur 100 entre ces deux paramçetres, ce qui implique que pour les tailles de machines existantes on a toujours èp, 1èç a k é jp p æ. Si on compare cette derniçere formule avec celle donnçee par è5.10è, on constate que le co^ut de la transmission des messages est plus çelevçe et que le start-up est identique. Mais avec cette derniçere solution, tous les processeurs possçedent le rçesultat du regroupement, ce qui çevite d'eæectuer une diæusion par la suite èce qui est souvent le cas lorsqu'on calcule la norme d'un vecteur distribuçe ou encore un test d'arr^etè. La diæusion va doubler le co^ut du start-up, ce qui va fortement pçenaliser le premier algorithme. 5.4 La multidistribution La multidistribution est une distribution simultançee ça partir de tous les processeurs. Comme pour les autres schçemas, le rçesultat de la multidistribution dans les grilles toriques se dçeduit du rçesultat dans l'anneau. Prçeliminaire : multidistribution dans l'anneau La multidistribution dans l'anneau correspond ça une extension du rçesultat de la distribution sur l'anneau. A la premiçere çetape chaque processeur envoie, jp dans chaque direction, les messages destinçes aux processeurs situçes ça distance p k ë3ë. Lors de la deuxiçeme çetape chaque k processeur doit envoyer ses messages aux processeurs situçes ça distance jp p, 1. De plus, chaque processeur doit envoyer ça ceux-ci les messages reçcus ça l'çetape prçecçedente, d'oçu la concatçenation des messages, et l'envoi d'un message de taille double. En rçepçetant ce processus, on obtient une multidistribution dont le temps est donnçe par la proposition suivante : Proposition Le temps de la multidistribution sur l'anneau est de : è p è p, 1èæ + èp,1è T Multidistribution = 8 Lç si p p est impair p pæ + p 8 Lç si p p est pair è5.14è
143 13 Chapitre 5. Communications globales dans les grilles toriques Preuve. Durant la premiçere çetape, un message est çechangçe entre chaque processeur, pendant la deuxiçeme phase deux messages sont çechangçes, etc. d'oçu un temps d'exçecution donnçe par èpour p p impairè : j pp X i=1 k èæ + ilçè Pour les tailles paires, comme pour l'çechange total, la premiçere çetape consiste ça envoyer la moitiçe du message destinçe au processeur le plus çeloignçe dans chacune des directions. Puis il suæt d'appliquer l'algorithme normalement, en tenant compte qu'ça chaque çetape nous avons une moitiçe de message supplçementaire, soit : p p,1 X i=1 èæ +èi + 1 Lçè En dçeveloppant on obtient le temps de la proposition. L'algorithme d'un processeur q de l'anneau est : Algorithme 5.6 Multidistribution dans l'anneau k Pour i è 1 jusqu'ça jp p Faire enparallçele Envoyer les messages de taille il destinçes aux processeurs ça distance jp k p, i, 1; Recevoir de chacun de ses voisins un message de taille il; Remarque. Saad et Schultz ë8ë proposent un algorithme similaire. A l'çetape 1 chaque processeur envoie la totalitçe des messages, puis ça l'çetape chaque processeur garde le message qui lui est destinçe et propage le reste. Au lieu d'avoir une taille de message qui va en augmentant ça chaque çetape, dans cet algorithme la taille diminue. On constate, que cette stratçegie donne le m^eme temps d'exçecution que l'algorithme prçesentçe ci-dessus Application aux grilles toriques Lça encore, ce schçema de communication se dçecompose en deux phases successives sur les anneaux verticaux et horizontaux.
144 5.5. Synthçese des rçesultats 133 La premiçere phase consiste en une multidistribution p sur les anneaux verticaux et horizontaux avec des messages de taille p L.Pendant cette phase chaque processeur a reçcu des messages sur chacun de ses anneaux. Lors de la deuxiçeme phase chaque p processeur va rçealiser une nouvelle multidistribution avec des messages de taille p L. Les messages reçcus lors de la premiçere çetape sur les anneaux verticaux vont ^etre distribuçes sur les anneaux horizontaux et vice-versa. Le co^ut total de la multidistribution dans la grille torique correspond ça la somme des deux multidistributions dans les anneaux. Proposition 5.4. Le temps de la multidistribution dans une grille torique est de : T Multidistribution = è è p p, 1èæ + èp,1èp p Lç si p est impair 8 p p p p p pæ + 8 Lç si p est pair è5.15è L'algorithme de multidistribution dans les grilles toriques se dçeduit facilement de celui dans l'anneau. 5.5 Synthçese des rçesultats Dans ce paragraphe nous allons faire une synthçese des rçesultats prçesentçes dans ce chapitre. Aæn d'avoir tous les meilleurs rçesultats concernant les schçemas de communications globales dans les grilles toriques sous les hypothçeses commutation de messages èmodçelisçe par le temps linçeaireè, liens full-duplex et mode
145 134 Chapitre 5. Communications globales dans les grilles toriques æ-port, nous les avons rçeunis dans le tableau suivant: Types de communication Diæusion pipeline Temps de l'algorithme è r jp p k æ + q L 4 çè Echange total Produit cartçesien ou glouton k jp p æ + p,1 4 Lç Distribution k jp p æ + p,1 4 Lç Regroupement jp p k æ + l p,1 4 m Lç Regroupement avec accumulation-diæusion k jp p æ + p,1 ç + ç aèp, 1è Multidistribution p p p èp,1è p pæ + Lç si p est impair 8 p p p p p pæ + 8 Lç si p est pair Tableau rçecapitulatif des temps des schçemas de communications globales 5.6 Conclusion Au cours de ce chapitre, nous avons dçecrit les schçemas de communications globales dans les grilles toriques, tout en mettant en valeur les outils utilisçes tels que les arbres de recouvrement disjoints dans le temps, les chemins hamiltoniens, la dçecomposition en somme cartçesienne d'anneaux. Les algorithmes prçesentçes ici sont les meilleurs connus, m^eme s'ils ne sont pas tous optimaux. Ils atteignent tous au moins une des bornes infçerieures soit en nombre d'çetapes, soit en temps de propagation, soit les deux en m^eme temps. L'ensemble de ces algorithmes peuvent ^etre plus ou moins facilement implçementçes sur une machine parallçele. Toutefois lors de notre çetude nous n'avons pas
146 Bibliographie 135 tenu compte des co^uts de gestion mçemoire ni des co^uts rçeels des communications en mode æ-ports. Ce dernier point va ^etre abordçe dans le chapitre suivant sur l'exemple de la diæusion. Toutefois, aæn de diminuer ces temps, une solution consisterait ça calculer les tables de gestion des messages lors de la compilation, ou ça implçementer matçeriellement ces algorithmes. Bibliographie ë1ë M. Cosnard and D. Trystram. Algorithmes et architectures parallçeles. InterEditions, ëë Jean de Rumeur. Communications dans les rçeseaux de processeurs. Collection ERI. Masson, ë3ë P. Fraigniaud. Communications intensives dans les architectures ça mçemoire distribuçee et algorithmes parallçeles pour la recherche de racines de polyn^omes. PhD thesis, LIP-ENS- Lyon, December ë4ë P. Fraigniaud, S. Miguet, and Y. Robert. Scattering on a ring of processors. Parallel Computing, 13è3è:377í383, ë5ë P. Michallon and D. Trystram. Rçesolution de schçemas de communications globales sur rçeseau de processeurs en grille torique. In 5çeme rencontres sur le parallçelisme èbrestè, ë6ë B. Plateau and A. Touzene. Optimal multinode broadcast on a mesh connected graph with reduced buæerization. In A. Bode, editor, Distributed Memory Computing, number 487 in Lecture Notes in Computer Science, pages 143í15, ë7ë B. Plateau and D. Trystram. Optimal total exchange for a 3d torus of processors. Information Processing Letters, è4è:95í10, 199. ë8ë Y. Saad and M. Schultz. Data Communication in Parallel Architectures. Parallel Computing, è11è:131í150, ë9ë D. Trystram. Total exchange algorithms on wraparound meshes. En prçeparation, 1993.
147 136 Bibliographie
148 Chapitre 6 Expçerimentations sur machine ça base de Transputers 6.1 Introduction L'çetude thçeorique des schçemas de communications globales sur diæçerentes topologies permet d'obtenir des algorithmes optimaux. Mais lorsque l'on dçesire utiliser ces algorithmes sur une machine parallçele, divers problçemes se posent: í d'abord celui de la programmation : en eæet tous ces algorithmes utilisent localement une gestion de la mçemoire, une gestion des chemins utilisçes par les messages, et çeventuellement une gestion des messages èconcatçenation, dçecoupage du messages en plusieurs morceaux, etc.è qui ne sont pas toujours faciles ça rçealiser ; í il faut ensuite bien conna^çtre le modçele de communication qui correspond ça la machine, aæn de choisir l'algorithme appropriçe. En eæet, dans la pratique, un processeur ne peut pas communiquer simultançement sur tous ses liens sans une perte de performance. Or les çetudes et les algorithmes existants ont çetçe rçealisçes en mode d-ports, ce qui peut avoir des consçequences sur le comportement de certains algorithmes avec des messages de petite taille, oçu le start-up est prçepondçerant. Le Laboratoire de Modçelisation et de Calcul dispose d'une machine MIMD conægurable ça 18 Transputers. Aprçes en avoir modçelisçe les communications, nous avons implçementçe et expçerimentçe divers algorithmes de diæusion sur plusieurs topologies. Les rçesultats obtenus permettent de comparer et de choisir la meilleure topologie pour rçealiser une diæusion sur cette machine en fonction de la taille du message. 137
149 138 Chapitre 6. Expçerimentations sur machine ça base de Transputers 6. Prçesentation du MçegaNode 6..1 Les machines SuperNode Le projet Esprit P1085 ë13ë, regroupant les Universitçes de Liverpool, Southampton, l'institut d'informatique et de Mathçematiques Appliquçees de Grenoble, des entreprises privçees allemandes, britanniques et françcaises avait pour but de dçevelopper une architecture multiprocesseurs ça hautes performances ça faible co^ut. Ce projet s'est concrçetisçe par un processeur, le T800, et par la famille des machines SuperNode èt-node, TandemNode et MçegaNodeè basçees sur ce processeur. Ce sont des machines MIMD reconægurables èstatiquement et dynamiquementè. Une machine SuperNode possçede entre 16 et 104 processeurs qui lui permettent d'atteindre des performances de cr^ete variant de 4 ça 1500 MFlops. Ces ordinateurs sont constituçes de plusieurs unitçes modulaires, appelçees nodes. Le T-Node possçede 16 ou 3 processeurs regroupçes dans un node, le TandemNode possçede 64 processeurs et nodes. Le MçegaNode est la vçeritable machine multinodes. Elle comprend un nombre variable de nodes, permettant de disposer de 18 ça 104 processeurs. Les nodes sont reliçes entre eux par un InterNode Switch, ce qui la diæçerencie du TandemNode oçu les nodes sont connectçes switch ça switch. La machine dont dispose le Laboratoire de Modçelisation et de Calcul est une machine ça 18 processeurs, que nous allons dçecrire plus en dçetail maintenant. 6.. Le MçegaNode Le MçegaNode est une machine mono-utilisateur reliçee ça un ordinateur h^ote èstation de travailè qui contient une carte multiprocesseurs ça base de Transputers. Cette carte assure toutes les entrçeesèsorties èy compris le chargement des programmesè avec le MçegaNode. C'est aussi sur ces Transputers que sont compilçes les programmes destinçes au MçegaNode. Le MçegaNode possçede 18 Transputers rçepartis en 4 tandems. Chaque tandem contient 3 Transputers èt800è de travail, des contr^oleurs èt414è et des gestionnaires de switches èt1è. Les processeurs de travail d'un m^eme tandem sont reliçes entre eux par un crossbar RSRE 7 æ 7 ède chez NECè entiçerement reconægurable gr^ace au contr^oleur èvoir ægure 6.1è. Les communications entre tandems sont assurçees par l'internode Switch. Ce composant est constituçe de 4 crossbars C004 3 æ 3. Ce crossbar intçegre en sortie un dispositif de recalibrage des signaux. Ce dispositif permet aux messages de parcourir une plus grande distance sur les æls et de traverser un second niveau de commutation. Ceci augmente de façcon importante le temps de traversçee du C004 ë1, 7ë.
150 crossbar crossbar 6.. Prçesentation du MçegaNode liens tandem 0 tandem 1 T800 Host InterNode Switch tandem tandem 3 un tandem Fig. 6.1 :Architecture du MçegaNode 18 processeurs L'environnement logiciel L'utilisation d'une telle machine n'est pas simple, c'est pourquoi des outils ont çetçe dçeveloppçes au sein du laboratoire ëë. í TçeNOR RITA : les deux niveaux de commutateurs, et les 18 Transputers rendent pçenible la conæguration du rçeseau, de plus il faut une bonne connaissance de l'architecture MçegaNode pour savoir quel Transputer est connectçe ça quel autre et par quel lien! C'est pour rçesoudre tous ces problçemes que le logiciel TçeNOR ë1ë a çetçe conçcu pour le C de Logical System. Mais pour des raisons de facilitçe d'utilisation nous avons dçecidçe de travailler en C de 3L. Pour cela il a fallu adapter TçeNOR, ce qui a donnçe TçeNOR RITA. Il oære ça l'utilisateur la possibilitçe dedçecrire ça unniveau algorithmique l'ensemble de ses t^aches ainsi que le rçeseau ça utiliser. í OUF : il s'agit d'une bibliothçeque de fonctions C, qui permet la programmation du Transputer et qui intçegre des primitives de parallçelisme comme la notion de canal, la gestion des communications et des processus. Les communications se font selon le principe du rendez-vous, comme en Occam. Il n'existe aucune primitive permettant directement d'eæectuer des communications sur plusieurs canaux en parallçele, il faut pour cela crçeer des processus èsuivant le mode fork and joinè qui eæectuent chacun une communication, puis se synchronisent avant d'^etre dçetruits par le processus pçere. La modçelisation et l'çetude qui vont ^etre faites ont çetçe rçealisçees avec OUF et en langage C de 3L.
151 140 Chapitre 6. Expçerimentations sur machine ça base de Transputers 6.3 Modçelisation des communications Du fait de l'utilisation de Transputers dans cette machine, les communications se font en commutation de messages èstore and forwardè, et la modçelisation du temps de communication entre deux voisins est de la forme : æ + Lç, oçu æ est le start-up et ç le temps de propagation. D'aprçes Inmos ë10ë æ est çegal ça 1çs etç est çegal ça 1,1çsèoctet quand le langage utilisçe est OCCAM. Aprçes quelques expçeriences rçealisçees sur le MçegaNode, on s'aperçcoit que la modçelisation du temps de communication est plus complexe. En eæet, ce temps dçepend du nombre de liens utilisçes, de la façcon de les utiliser èhalf-duplex ou full-duplexè et de l'emplacement physique des processeurs. Le temps de communication entre deux processeurs se trouvant dans deux tandems diæçerents est nettement plus çelevçe que s'ils sont situçes dans le m^eme tandem. Des çetudes similaires ont çetçe faites sur les hypercube FPS T0 par ë6, 8ë. Desprez et Tourancheau ë4ë ont çetudiçe la modçelisation des communications en Logical C sur T-Node. Cette modçelisation n'est pas applicable sur le MçegaNode pour deux raisons. Premiçerement, le langage de programmation est diæçerent, ce qui inæue sur les performances de communication. En eæet les compilateurs sont plus ou moins optimisçes. Deuxiçemement, les deux niveaux de switch du MçegaNode, qui n'existent pas sur T-Node, sont ignorçes dans cette modçelisation. Aæn de prendre en compte le maximum de critçeres nous proposons ë11ë le modçele suivant: æ i;j;k + ç i;j L è6.1è oçu í l'indice i indique l'existence ou non de communication entre diæçerents tandems è0 dans le m^eme tandem, et 1 dans diæçerents tandemsè; í l'indice j reprçesente le type de communication è0 pour half-duplex et 1 pour full-duplexè; í l'indice k est le nombre de processus parallçeles qu'il a fallu crçeer pour la gestion des liens en parallçele. Co^ut des communications monodirectionnelles en parallçele La ægure 6. montre les diæçerents co^uts des communications dans un tandem en fonction de la taille du message envoyçe. La courbe seq1 correspond ça
152 6.3. Modçelisation des communications 141 l'envoi d'un message sur un seul lien entre deux processeurs voisins, les rçesultats obtenus donnent æ 0;0;0 =11; 5 çs etç 0;0 =1; 15 çsèoctet temps èçsec.è seq1 par par3 par L 100 Fig. 6. : Comparaison des communications monodirectionnelles dans un tandem. Sur la m^eme ægure, les courbes parn correspondent ça l'envoi d'un message ça n voisins en parallçele. L'expçerience rçevçele que le taux de transmission reste identique èm^eme penteè, mais que les start-ups sont diæçerents : æ 0;0;0 =11; 5 çs. æ 0;0;k = k çs pour k=1,,3. Les diæçerences entre æ 0;0;0 et æ 0;0;k sont dues ça la gestion des processus parallçeles qui eæectuent les envois. Les Transputers possçedent DMA par lien èun pour les entrçees et un pour les sortiesè et toutes les DMA peuvent fonctionner indçependamment les unes des autres, mais l'initialisation de ces DMA est gçerçee par des processus qui s'exçecutent plus ou moins sçequentiellement du fait du scheduler du Transputer. Le temps d'initialisation est donc d'autant plus grand que le nombre de liens ça initialiser est grand. Une fois les communications initialisçees les DMA gçerent les processus d'envoi de façcon indçependante, ce qui explique que le taux de transmission reste le m^eme.
153 14 Chapitre 6. Expçerimentations sur machine ça base de Transputers Remarque. Pour rçealiser quatre communications en parallçele, il suæt de crçeer trois processus, en eæet le processus qui a besoin de rçealiser ces quatre communications en parallçele peut en gçerer une. Co^ut des communications bidirectionnelles en parallçele Lorsque l'on veut rçealiser des communications bidirectionnelles il faut crçeer plus de processus, en eæet il en faut un pour la rçeception et un pour l'çemission. La ægure 6.3 compare l'envoi et la rçeception d'un message de m^eme taille en sçequentiel et en parallçele. Cette ægure montre qu'ça partir d'une certaine taille de message è40 octetsè il est prçefçerable de faire la rçeception et l'çemission en parallçele. Pour des messages de taille infçerieure la gestion des processus devient trop co^uteuse. Dans ces cas-lça, on peut faire une rçeception et une çemission en sçequentiel, c'est-ça-dire l'une aprçes l'autre. 0E+3 temps èçsec.è 16E+3 1E+3 8E+3 4E+3 seq1_bi par1_bi L Fig. 6.3 : Communications bidirectionnelles dans un tandem. La valeur du taux de transmission devient ç 0;1 =1; 65 çsèoctet. Cette augmentation est due au protocole de communication. L'envoi d'un message entre deux Transputers voisins se fait octet par octet avec accusçe de rçeception pour chaque octet ë9ë ce qui provoque des ralentissements dans le dçebit des liens. Dans le cas de communications monodirectionnelles, les accusçes de rçeception se font sur un lien non utilisçe, ce qui ne perturbe pas les
154 6.3. Modçelisation des communications 143 transmissions. Comme pour le cas monodirectionnel, les start-ups des communications bidirectionnelles en parallçele sont diæçerents. Pour utiliser k liens simultançement en bidirectionnel, il faut k opçerations simultançees, ce qui nçecessite la crçeation et la gestion de k, 1 processus. Cela conduit ça des start-ups de : æ 0;1;k = k çs pour k=1,3,5 et 7. Co^ut des communications entre tandems Du fait du deuxiçeme niveau de switch entre les tandems, le taux de transmission entre deux tandems est plus faible. La ægure 6.4 montre la perte de performance des communications inter-tandems. Comme le start-up ne dçepend pas du switch, il reste inchangçe. 3+5 temps èçsec.è E+5 1E+5 inter-tandems intra-tandem L Fig. 6.4 : Comparaison des communications inter et intra tandem. Pour les communications monodirectionnelles inter-tandem on obtient les rçesultats suivants : æ 1;0;0 =11; 5 çs. ç 1;0 =; 17 çsèoctet. Comme pour le cas des communications ça l'intçerieur d'un tandem, le fait d'eæectuer plusieurs communications en parallçele entre des processeurs se
155 144 Chapitre 6. Expçerimentations sur machine ça base de Transputers trouvant dans deux tandems diæçerents inæue uniquement sur le start-up comme le montre la ægure temps èçsec.è seq1 par par3 par L 1000 Fig. 6.5 : Communications parallçeles monodirectionnelles inter tandems. Ces start-ups sont identiques ça ceux du cas intra-tandem : æ 1;0;k = k çs pour k=1,,3. La ægure suivante èægure 6.6è montre qu'il existe peu de diæçerences entre le taux de transmission entre deux tandems en monodirectionnel et en bidirectionnel, on trouve ç 1;1 =; çsèoctet. En eæet, lors de la communication monodirectionnelle entre deux tandems le taux de transmission a diminuçe, c'est-ça-dire qu'il y a un peu plus de temps entre deux octets, ce qui permet pour des communications bidirectionnelles de faire circuler les accusçes de rçeception sans trop g^ener les envois de messages. Comme pour les communications bidirectionnelles intra-tandem, il est nçecessaire de gçençerer k, 1 processus pour rçealiser simultançement des communications sur k liens, d'oçu les start-ups suivants : æ 1;1;k = k çs pour k=1,3,5 and 7. Nous allons faire un tour d'horizon des algorithmes de diæusion sur les diverses topologies de degrçe quatre que l'on peut rçealiser sur le MçegaNode.
156 6.4. Description des algorithmes de diæusion E+4 temps èçsec.è 5E+4 0E+4 15E+4 10E+4 monodirec bidirec. 5E+4 L Fig. 6.6 : Comparaison entre les communications mono et bidirectionnelles inter tandems. 6.4 Description des algorithmes de diæusion L'çetude des communications sur le MçegaNode a permis de montrer que le modçele temps linçeaire n'çetait pas valide sur cette machine. En eæet les paramçetres d'une communication èstart-up, taux de transmissionè changent avec les caractçeristiques du rçeseau et des communications. Par exemple, si les chemins sont trop longs on va devoir changer de tandem, et si l'on utilise au maximum le degrçe d'un nçud, on va se retrouver avec un start-up prohibitif. Dans les chapitres et 4, on a vu que le temps minimal pour envoyer un message de taille L ça deux nçuds ça distance H, avec la technique du pipeline, en utilisant æ arbres disjoints, est de : s bè L qèh æ ;Hè=è, 1èæ + ç L æ è è6.è d'oçu en utilisant notre modçele : bè L æ ;Hè=è qèh, 1èæ i;j;k + sç i;j L æ è è6.3è En regardant de plus prçes l'çequation 7.1, on constate que si le paramçetre 1 æ dçecro^çt, les paramçetres æ i;j;k et ç i;j augmentent! Le MçegaNode çetant re-
157 146 Chapitre 6. Expçerimentations sur machine ça base de Transputers conægurable, on peut tester diæçerents algorithmes de diæusion sur diverses topologies, aæn de proposer un algorithme qui rçealise le meilleur compromis possible. Remarque. Du fait que l'on utilise la technique du pipeline, c'est le processeur qui communique le plus lentement qui va donner la cadence. En eæet, si deux processeurs P 1 et P communiquent ensemble sur un lien, et si P 1 communique simultançement sur l 1 liens ènçecessitant lacrçeation de k 1 processusè, et si P communique aussi sur l liens ènçecessitant lacrçeation de k processusè, alors le temps de transfert d'un message de taille L entre ces deux processeurs va ^etre : æ i;j;k + Lç i;j oçu k = maxèk 1 ;k è. Cas des arbres ternaires et binaires Un arbre ternaire permet de construire le rçeseau de degrçe quatre ayant la plus faible profondeur. Comme nous ne pouvons utiliser qu'un seul arbre dans cette topologie, æ est çegal ça 1. La racine dçecoupe le message initial en paquets de taille optimale, et les envoie en parallçele ça ses trois æls. Les autres processeurs du rçeseau reçcoivent un paquet et envoient en parallçele ça leurs trois æls le paquet reçcu ça l'çetape prçecçedente. Sur cette topologie les liens sont donc utilisçes en monodirectionnel, et la crçeation de trois processus est nçecessaire pour gçerer les communications en parallçele. Le temps de la diæusion dans un arbre ça p processeurs est : bèl;dlog 3 èp +1è, 1eè =è q èdlog 3 èp +1è, 1e,1èæ x;0;3 + q ç x;0 Lè è6.4è x varie suivant le nombre de nçuds considçerçes dans le rçeseau. Si le nombre de processeurs utilisçes est supçerieur ça 3 alors x = 1 sinon x = 0. Dans la suite de ce chapitre, nous garderons la m^eme convention. Aæn de gçerer moins de processus parallçeles, il est possible de rçealiser la diæusion sur un arbre binaire. Le temps de la diæusion devient alors : bèl;dlog èp +1è, 1eè =è q èdlog èp +1è, 1e,1èæ x;0; + q ç x;0 Lè è6.5è Cas des grilles toriques La diæusion dans les grilles toriques a çetçe çetudiçee au chapitre 4 oçu nous avons dçecrit des algorithmes pour le cas monodirectionnel et pour le cas
158 6.4. Description des algorithmes de diæusion 147 bidirectionnel. Il est intçeressant de comparer ces deux modes de diæusion. En eæet la diæusion monodirectionnelle utilise moins le parallçelisme du rçeseau et nçecessite moins de processus pour les communications, par contre l'algorithme bidirectionnel dispose d'une meilleure bande passante. Le co^ut de la diæusion bidirectionnelle est de : bè L 4 ; bp p c +1! = ç 0 s b p p cæ x;1;7 + L sç x;1 4 Le co^ut de la diæusion monodirectionnelle est de : bç L ;p p q p L è p, 1èæ x;1;3 + sç x;0 1 A 1 A è6.6è è6.7è Remarque. Il est possible de rçealiser une grille torique sur le MçegaNode, mais du fait que tous les nçuds ont un degrçe quatre, plus aucun lien ne reste libre pour relier la grille torique avec le frontal! Aæn de remçedier ça ce problçeme, il a fallu ajouter un nçud supplçementaire ça la grille torique. Le choix de l'adjonction de ce nçud supplçementaire est fait de façcon ça ne pas augmenter la profondeur des arbres. Cas du De Bruijn Bermond et Fraigniaud ë3ë ont montrçe pour les graphes de De Bruijn è;log èpèè, avec des liens bidirectionnels, qu'il existe deux arbres de recouvrement disjoints. Si la racine est è000:::0è ou è111:::1è la profondeur de ces arbres est log èpè + 1 sinon la profondeur est log èpè + 1 pour n'importe quelle autre racine. q log èpèæ x;1;5 + Le temps de la diæusion dans ce rçeseau est de : bç L ç ; log èpè+1 = L sç x;1 1 A è6.8è De ces divers temps thçeoriques, on peut prçevoir qu'asymptotiquement l'algorithme de diæusion bidirectionnelle sur la grille torique sera le meilleur, du fait de l'exploitation maximale du degrçe de chaque nçud. Mais pour ce qui est des messages de petite taille ou encore de taille moyenne l'çetude thçeorique ne permet pas de conclure.
159 148 Chapitre 6. Expçerimentations sur machine ça base de Transputers 6.5 Expçerimentations Dans cette section, nous prçesentons les rçesultats obtenus avec les diæçerents algorithmes de diæusion sur le MçegaNode. De ces rçesultats, nous allons pouvoir dçeduire la topologie et l'algorithme le mieux adaptçe au MçegaNode pour rçealiser une diæusion, en fonction de la taille du message ça diæuser. Mais avant cela, vçeriæons sur la diæusion bidirectionnelle dans les grilles toriques si la modçelisation que nous avons faite concorde avec les rçesultats expçerimentaux que nous obtenons. La ægure 6.7 montre les rçesultats obtenus pour diæçerentes tailles de grilles. temps èçsec.è 14E+4 10E+4 6E+4 E+4 grille tor. 5*5 grille tor. 7*7 grille tor. 9*9 grille tor. 11*11 L Fig. 6.7 : Diæusion bidirectionnelle dans les grilles toriques. Remarque. La bonne performance relative pour la grille torique 5 æ 5 est due au fait que cette grille est contenue dans un seul tandem. La ægure 6.8 compare pour une grille torique 9 æ 9 la courbe thçeorique et la courbe expçerimentale. On constate que les rçesultats obtenus sont trçes proches des valeurs thçeoriques. Les petites diæçerences sont dues au co^ut des gestions mçemoires et surtout aux problçemes de synchronisation. En eæet il est impossible de synchroniser l'ensemble des processeurs sur le MçegaNode.
160 6.5. Expçerimentations 149 temps èçs.è 14E+4 10E+4 6E+4 courbe expçerimentale courbe thçeorique E+4 L Fig. 6.8 : Comparaison des courbes thçeorique et expçerimentale pour la grille torique 9 æ 9. La ægure 6.9 permet de voir les rçesultats des expçeriences de diæusion dans les grilles toriques en mode half-duplex. Comme prçecçedemment les rçesultat expçerimentaux sont trçes proches de ceux thçeoriques time èmsec.è mesh 8*8 mesh 9* 9 mesh 10*10 mesh 11* L Fig. 6.9 : Diæusion monodirectionnelle dans les grilles toriques.
161 150 Chapitre 6. Expçerimentations sur machine ça base de Transputers temps èçsec.è 6E+4 4E+4 E+4 ternaire_11 grille_11_bi grille_11_mo binaire_17 De Bruijn_18 L Fig : Comparaison des stratçegies de diæusion pour des petits messages. Les ægures 6.10 et 6.11 montrent les rçesultats obtenus avec les diæçerents algorithmes et topologies. Aæn d'avoir des rçeseaux ayant quasimentle m^eme nombre de nçuds, notre çetude est rçealisçee sur les grilles toriques et l'arbre ternaire ça 11 nçuds, sur l'arbre binaire ça 17 nçuds, et sur le De Bruijn ça 18 nçuds. En accord avec l'çetude thçeorique, les expçeriences montrent que pour des messages trçes grands, l'algorithme de diæusion bidirectionnelle sur les grilles toriques est le meilleur. Mais pour des messages de taille infçerieure ça 819 octets l'arbre ternaire est idçeal. Quant aux messages de taille supçerieure ça 819 octets mais infçerieure ça octets la meilleure performance est obtenue par l'algorithme de diæusion monodirectionnelle sur grille torique. En fait l'idçeal serait de conægurer son rçeseau en cours de programme, ainsi l'utilisateur pourrait choisir la meilleure topologie et le meilleur algorithme de diæusion en fonction de la taille de son message. Mais encore faut-il tenir compte du temps pris par la reconæguration du rçeseau. Une çetude du co^ut de reconæguration du rçeseau a çetçe rçealisçee par Desprez et Tourancheau ë5ë sur un T-Node. Mais cette çetude n'est pas applicable au MçegaNode du fait des deux niveaux de switch ça reconægurer. De plus la reconæguration en cours d'exçecution d'un programme n'a jamais fonctionnçe sur notre machine.
162 6.6. Conclusion 151 temps èçsec.è 3E+5 E+5 1E+5 ternaire_11 grille_11_bi grille_11_mo binaire_17 De Bruijn_18 L Fig : Comparaison des stratçegies de diæusion pour des grands messages. 6.6 Conclusion La modçelisation que nous avons prçesentçee dans ce chapitre permet de montrer que les performances des algorithmes de diæusion dçependent de l'architecture de la machine. Le fait de comparer ces diæçerents algorithmes avec le modçele de communication linçeaire n'est pas suæsant. Il ressort de cette çetude expçerimentale que l'arbre ternaire oære le meilleur compromis entre performances et facilitçe d'utilisation pour des petits et moyens messages. Cependant les arbres de recouvrement dans les grilles toriques peuvent ^etre trçes utiles dans de nombreuses applications ècomme le chargement de programmeè traitant de gros messages. Bibliographie ë1ë J-M. Adamo and C. Bonello. Tçenor++ : a dynamic conægurer for SuperNode machines. In Springer Verlag, editor, COMPAR 90, September ëë Y. Arrouye, F. Bouvry, P. Bouvry, J-P. Kitajima, P. Michallon, J. Prevost, J-L. Roch, and G. Villard. Manuel du MegaNode. Technical Report RT 79, LMC-IMAG èfranceè, April 199. ë3ë J-C. Bermond and P.Fraigniaud. Broadcasting and gossiping in De Bruijn network. Technical Report RR-9104, LIP-ENS-Lyon èfranceè, 1991.
163 15 Bibliographie ë4ë F. Desprez and B. Tourancheau. Modçelisation des performances de communication sur T-Node avec le Logical System Transputer Toolset. La lettre du Transputer, è7è:65í7, September ë5ë F. Desprez and B. Tourancheau. A theoretical study of reconægurability for basic communication algorithms. In CONPAR 9-VAPP V, number 634 in Lecture Notes in Computer Science. Springer Verlag, 199. ë6ë P. Fraigniaud. Performance analysis of broadcasting in hypercube with restricted communication capabilities. Journal of Parallel and Distributed Computing, 16è1è:15í6, 199. ë7ë Telmat informatique. T-Node user manual ë8ë S. Kuppuswami and B. Tourancheau. Evaluating the performances of Transputer based hypercube vector computer. La lettre du Transputer, 4, ë9ë Inmos Ltd. Transputer reference manual. Prentice Hall, ë10ë Inmos Ltd. The Transputer databook ë11ë P. Michallon and D. Trystram. Practical experiments of broadcasting algorithms on a conægurable parallel computer. ça para^çtre dans Discrete Applied Math., special issue on broadcasting and gossiping. ë1ë T. Muntean and P. Waille. L'architecture des machines SuperNode. La lettre du Transputer, è7è:11í40, September ë13ë D. Nicole. Esprit project 1085 : reconægurable Transputer processor architecture. In CONPAR 88, 1988.
164 Chapitre 7 Recouvrements calculsècommunications 7.1 Introduction La plupart des applications parallçeles sont du domaine scientiæque èphysique, mçetçeorologie, mçedecine, etc.è et leur parallçelisation est souvent rçealisçee avec des bibliothçeques de calculs et de communications èvoir chapitre 3è. Ces parallçelisations sont eæectuçees en dçecomposant l'application en phases de calculs et de communications bloquantes. Ce type de programmation est facile ça mettre en çuvre, mais ne donne pas les meilleurs rçesultats èfaible eæcacitçeè. En eæet, les processeurs n'eæectuent pas de calculs pendant les phases de communications, d'oçu la nçecessitçe d'utiliser des bibliothçeques de communications non-bloquantes. Mais dans certains cas, il subsiste des problçemes, notamment quand le processeur çemetteur a plus de calculs ça effectuer que le processeur rçecepteur. Le processeur çemetteur peut, dçes qu'il a calculçe une certaine quantitçe de donnçees, les envoyer au rçecepteur qui pourra commencer ces calculs. Ainsi, en pipelinant les envois, on arrive ça recouvrir les communications par des calculs. Toutefois le choix de la taille des donnçees ça envoyer n'est pas simple. Ce choix va dçependre de la taille du problçeme, de la vitesse de calcul des processeurs et du co^ut des communications. Nous illustrerons la diæcultçe du calcul de la meilleure taille de paquets ça envoyer ça chaque çetape sur un exemple simple tel que le produit matrice vecteur sur un anneau. 7. Pourquoi faire du recouvrement? Le temps d'exçecution d'un programme sur une machine parallçele ça mçemoire distribuçee est fonction du temps de calcul et du temps de communication. Si 153
165 154 Chapitre 7. Recouvrements calculsècommunications dans ce programme il n'y a pas de recouvrement calculsècommunications, alors le temps total d'exçecution est çegal ça la somme des temps de calcul et de communication. Ce type de programme est facile ça mettre en çuvre, mais si on observe le comportement d'un tel programme avec un outil de visualisation, on constate que les processeurs perdent du temps ça attendre des donnçees, d'oçu l'idçee de faire du calcul pendant que les processeurs communiquent, c'est-ça-dire faire du recouvrement calculsècommunications. Aæn de mieux comprendre la dçemarche qui a conduit King, Chu etnië7ë ça proposer une solution pipeline des envois de donnçees, nous allons prendre un exemple, et analyser les problçemes qui se posent. Nous allons considçerer deux processeurs P 1 et P sur lesquels s'exçecute un programme parallçele. Sur chaque processeur il va s'exçecuter un noyau de communication et deux noyaux de calcul T j i oçu i est le numçero du processeur et j, lenumçero du noyau de calcul. Aæn de simpliæer le problçeme, on considçerera que seul le deuxiçeme noyau de calcul d'un des processeurs a besoin des rçesultats du premier noyau s'exçecutant sur l'autre processeur. Si l'on considçere des communications bloquantes, sur cet exemple on obtient le schçema d'exçecution reprçesentçe sur la ægure 7.1. P 1 P P 1 P T 1 T 1 1 T 1 1 T 1 T 1 T T 1 T temps Cas 1 Cas pçeriode d'inactivitçe du processeur Fig. 7.1 :Exçecution avec des communications bloquantes. Dans le cas 1 le processeur P a æni ses calculs avant le processeur P 1, mais il est obligçe d'attendre la æn de la phase de calcul de P 1 èt1 1 èavant de recevoir des donnçees, puis de recommencer une seconde phase de calcul èt è. Dans le cas c'est le processeur P 1 qui ne peut pas envoyer ses donnçees tant que le processeur P n'a pas æni sa phase de calcul. Dans les deux cas, on
166 7.. Pourquoi faire du recouvrement? 155 remarque qu'un des processeurs attend que l'autre arrive dans une phase de communication pour envoyer ou recevoir un message, ce qui crçee des pçeriodes d'inactivitçe du processeur. Aæn de rçeduire les pçeriodes d'inactivitçe des processeurs et de permettre aux utilisateurs de faire du recouvrement calculsècommunications, des bibliothçeques de communication non-bloquantes se sont dçeveloppçees ènxè, PVM, PICL, etc.è. L'utilisation de ces bibliothçeques permet de supprimer les pçeriodes d'inactivitçe des processeurs P 1 et P dans le cas. Le processeur P 1 peut commencer T 1 sans attendre la æn de la communication, et le processeur P peut encha^çner ses deux noyaux de calcul, puisqu'il a reçcu les donnçees nçecessaires au noyau T pendant le calcul de T 1 èvoir ægure 7.è, d'oçu recouvrement calculsècommunications. P 1 P P 1 P T 1 T 1 1 T 1 1 T 1 T 1 T T T 1 temps Cas 1 Cas pçeriode d'inactivitçe du processeur Fig. 7. :Exçecution avec des communications non-bloquantes. Mais l'utilisation de communications non-bloquantes ne permet pas d'eæectuer du recouvrement dans le cas 1. En eæet, dans ce cas le processeur P 1 ne peut pas envoyer son message avant d'avoir æni ses calculs. Mais est-ce que le deuxiçeme noyau de calcul T a besoin de toutes les donnçees de T1 1 pour commencer? Si oui, il est clair que l'on ne pourra pas rçealiser de recouvrement calculsècommunications plus æn. Mais dans le cas contraire, il est possible de couper le noyau T1 1 en n noyaux plus petits qui s'exçecuteront les uns ça la suite des autres. Ainsi, chaque petit noyau peut envoyer ça T les donnçees qu'il vient de calculer. De cette façcon, T peut commencer ses calculs avec les donnçees qu'il vient de recevoir.
167 156 Chapitre 7. Recouvrements calculsècommunications P 1 P P 1 P T 1 T 1 T 1 1 T 1 1 T T 1 T 1 T temps sans pipeline avec pipeline pçeriode d'inactivitçe du processeur Fig. 7.3 :Exçecution avec des communications non-bloquantes pipelinçees. De nombreux chercheurs ont çetudiçe le problçeme du recouvrement calculsècommunications ë1, 4, 7ë pour ne citer qu'eux. Mais personne n'a proposçe d'outils faciles ça utiliser pour le programmeur. Desprez et Tourancheau ë3, 4ë travaillent sur une bibliothçeque permettantdegçerer les pipelines et d'exprimer plus facilement les programmes parallçeles. Aæn de rendre cet outil performant et facilement utilisable par tout programmeur spçecialiste ou non, il est nçecessaire d'avoir un calcul automatique de la taille des messages ça envoyer. L'idçeal serait que cette taille soit calculçee lors de la compilation ou se fasse de maniçere dynamique au cours de l'exçecution de l'algorithme. Le problçeme qui se pose est de savoir comment dçecouper ces donnçees et quelle doit ^etre la taille des envois aæn que les deux processeurs n'aient pas de pçeriode d'inactivitçe? En eæet si les paquets sont trop gros, le recouvrement ne sera pas assez eæcace, et au contraire si les paquets sont trop petits il va y avoir beaucoup trop d'initialisations, ce qui nuira aux performances de l'algorithme. Comme nous allons le voir dans la section suivante sur un exemple simple et rçegulier, ce choix n'est pas si facile. 7.3 Problçeme du choix de la taille des paquets L'exemple que nous avons choisi d'çetudier pour illustrer le problçeme de la taille des paquets ça çechanger est le produit matrice-vecteur, sur une
168 7.3. Problçeme du choix de la taille des paquets 157 architecture ça mçemoire distribuçee connectçee en anneau ëë ècette çetude a çetçe rçealisçee avec Laurent Colombet et Denis Trystramè. Nous allons montrer, en fonction des paramçetres de la machine, comment calculer la taille des paquets, et ainsi obtenir un algorithme avec un co^ut de communication le plus petit possible. Nous nous sommes intçeressçes au produit matrice-vecteur, car c'est une des opçerations les plus simples et des plus utilisçees de l'algçebre linçeaire ë5ë. Le problçeme consiste ça calculer v = Ax oçu A est une matrice èn; nè etx, v deux vecteurs de dimension n. Chaque composante du vecteur v est le rçesultat du produit scalaire suivant: Notations et modçeles vëië = nx j=1 Aëi; jë xëjë: è7:1è Si l'on considçere un anneau de p processeurs ènumçerotçes de 1 ça pè, il est possible de rçealiser une rçepartition çequilibrçee de la matrice A en p blocs de d n pe ou b n pc lignes. Le type d'allocation choisi des lignes èconsçecutives, cyclique,wrapè n'inæue pas sur l'çetude qui va suivre. De m^eme on eæectue une rçepartition çequilibrçee du vecteur x èchaque processeur possçede d n pe ou b n pc composantes du vecteurè. De façcon ça simpliæer les formules, nous allons considçerer que n est entier. p Aæn de simpliæer le problçeme, nous allons utiliser des liens half-duplex, ë8ë, et un mode,ports èvoir chapitre è. De plus, un processeur peut rçealiser simultançement des communications et du calcul. L'çechange de messages entre deux processeurs est rçealisçe par commutation de messages èou storeand-forwardè ë6, 8ë que l'on modçelise par : æ c + Lç c èvoir chapitre è. Le co^ut d'une opçeration çelçementaire èmultiplication suivie d'une additionè est donnçe par : ç a Aprçes avoir prçesenter l'implçementation standard du produit matrice-vecteur, un principe de recouvrement est donnçe. Nous çetudierons alors, le co^ut de ce nouvel algorithme et çetendrons le modçele aux liens full-duplex Analyse du produit matrice-vecteur Comme nous l'avons prçesentçe dans le chapitre 3, la mçethode pour parallçeliser une application numçerique consiste ça identiæer le dçecoupage des donnçees èdçecomposition de matrices par ligne, colonnes ou blocsè, d'organiser les mouvements de donnçees en utilisant des bibliothçeques de communications.
169 158 Chapitre 7. Recouvrements calculsècommunications La solution standard L'çequation 7.1 montre que le calcul de chaque composante du vecteur v requiçere la connaissance de tout le vecteur x, donc chaque processeur doit envoyer ses n composantes du vecteur x ça tous les autres processeurs. Ce p type de mouvement de donnçees correspond ça unçechange total, plus souvent appelçe ATA èpour All To Allè ë8ë. L'algorithme du produit matrice-vecteur est le suivant: Algorithme 7.1 produit matrice-vecteur standard ATA de taille n èpartie du vecteur xè; p Faire enparallçele sur chaque processeur Calcul de n produits scalaires de taille n èlignes de A et vecteur xè; p L'çechange total de taille n p co^ute èp, 1èèæ c + n p ç cè unitçes de temps èvoir chapitre 5è. Le calcul des n n produits scalaires de taille n nçecessite ç p p a unitçes de temps. Ainsi l'algorithme standard du produit matrice-vecteur sur un anneau possçedant des liens half-duplex aunco^ut de : T stand = n p ç a + èp, 1è è æ c + n p ç c! è7:è Sans recouvrement calculsècommunications, cet algorithme est optimal, et il atteint le temps minimal d'exçecution. Recouvrement des communications Aæn de rçeduire le temps d'exçecution, la solution consiste ça masquer au maximum les communications par du calcul. Durant l'çechange total de l'algorithme prçecçedent, il est facile de voir que les processeurs perdent du temps. Ainsi tous les processeurs peuvent commencer les calculs sur leurs donnçees initiales pendant l'çechange total. Mais le temps d'un çechange total sur un anneau est plus grand que è n p è opçerations æottantes. Une idçee consiste ça dçecomposer l'çechange total en une sçerie de communications de voisin ça voisin, de façcon ça masquer le plus possible les communications. En eæet, ça une çetape donnçee un processeur peut recevoir de nouvelles donnçees alors qu'il calcule avec les donnçees reçcues ça l'çetape prçecçedente.
170 7.3. Problçeme du choix de la taille des paquets 159 Principe de la mçethode Au dçebut chaque processeur possçede n lignes de la matrice A et n composantes du vecteur x et peut ainsi calculer n produits scalaires partiels p v i. p p Ainsi, un processeur peut exçecuter è n p è opçerations æottantes et recevoir simultançement au plus n donnçees de ses voisins. En fonction des paramçetres p de la machine èp; æ c ;ç c and ç a è et de la taille du problçeme, nous pouvons observer deux cas : í æ c + n p ç c ç n p ç a èrecouvrement totalè í æ c + n p ç cé n p ç a èrecouvrement partielè Dans le premier cas, comme le temps de communication des n çelçements p est plus petit qu'un calcul local, toutes les communications peuvent ^etre masquçees. Dans le deuxiçeme cas, le temps des calculs locaux correspond ça une communication d'un nombre de donnçees plus petit que n p. Soit ç 1 le plus grand entier tel que æ c + ç 1 ç c ç n p ç a, ainsi toutes les communications de taille ç 1 donnçees peuvent ^etre masquçees èç 1 é n p è. Maintenant chaque processeur a ç 1 nouvelles opçerations locales ça exçecuter. On itçere ce principe jusqu'ça ce qu'il ne soit plus possible de rçealiser des communications. Ce principe permet de construire une sçerie de ç t èt = 0; :::Nè deç 0 = n p ça ç N+1 = 0 tel que l'on puisse calculer un maximum d'opçerations locales, tout en masquant les communications Description des algorithmes Recouvrement total èæ c + n p ç c ç n p ç a è Dans ce cas toutes les communications peuvent^etre masquçees. L'algorithme parallçele du produit matrice-vecteur devient:
171 160 Chapitre 7. Recouvrements calculsècommunications Algorithme 7. produit matrice-vecteur parallçele avec recouvrement total è* Algorithme du processeur q avec q=1...p *è Pour t è 1 ça p, 1 faire enparallçele Envoyer ça èq+1 modulo pè les n çelçements de x reçcus ça l'çetape prçecçedente; p Calculer les n produits scalaires locaux; p Recevoir de èq-1 modulo pè les nouveaux n çelçements de x; p Calcul des n derniers produits scalaires; p Ilyaèp,1è çetapes oçu les communications sont totalement masquçees par les calculs locaux d'un co^ut de n p ç a, plus une derniçere çetape de calculs locaux sans communication. Cet algorithme a un co^ut total de n p ç a. Recouvrement partiel èæ c + n p ç cé n p ç a è æ Phase I: recouvrement total Dans ce cas ça l'çetape t un processeur calcule ç n t,1 et reçcoit èenvoitè ç p t donnçees. La valeur de ç t est donnçee par la formule suivante : ç t =$ n ç a è ç t,1, æ c p ç c ç c è7:3è t=0 æ c + ç 1 ç c Processeur 1 Processeur n p ç a n p ç a Processeur p n p ç a æ c + ç ç c n p ç 1ç a n p ç 1ç a n p ç 1ç a Phase I. æ c + ç N ç c n p ç N,1ç a n p ç N,1ç a n p ç N,1ç a temps Fig. 7.4 : Schçema d'exçecution de la Phase I. Nous pouvons facilementvçeriæer par induction que la sçerie des ç t est strictementdçecroissante. Pendant les N premiçeres çetapes les communications sont totalement masquçees. Aprçes, il ne reste plus assez de donnçees localement
172 7.3. Problçeme du choix de la taille des paquets 161 pour eæectuer des calculs permettant de masquer une communication èvoir ægure 7.4è. Par la suite nous nommerons Phase I l'exçecution des N premiçeres çetapes. Aprçes avoir calculçe auprçealable la sçerie des ç t, l'agorithme de la Phase I est le suivant: Algorithme 7.3 Phase I è* algorithme du processeur q avec q=1...p *è t è 1; Tant que çëtë ç 1 faire en parallçele Envoyer au processeur èq+1 modulo pè les çëtë çelçements de x reçcus çal'çetape prçecçedente; Calculer les çët, 1ë produits scalaires locaux; Recevoir du processeur èq-1 modulo pè les nouveaux çëtë çelçements de x; t è t +1; Fin tant que æ Le reste des calculs Aprçes la Phase I, il reste ç N calcul locaux ça eæectuer en parallçele sur chaque processeur. Pendant ces calculs, chaque processeur peut communiquer le maximum de donnçees èc'est-ça-dire n èça son voisin. Ainsi, il est possible de p redçemarrer une nouvelle phase de recouvrement total èvoir ægure 7.5 oçu les pçeriodes d'inactivitçe des processeurs sont reprçesentçees en grisè. On constate facilement que pour de grand æ c, cette stratçegie est la meilleure que l'on puisse rçealiser. Phase I recouvrement total æ c + n p çc n p ç N ça Phase I recouvrement total æ c + n p çc n p ç N ça Phase I recouvrement total Fig. 7.5 : Phases successives.
173 16 Chapitre 7. Recouvrements calculsècommunications ç ç n Nous rçepçetons PN,1 fois la succession de Phase I. i=0 ç i L'algorithme de recouvrement partiel est donc : Algorithme 7.4 Les phases successives è* algorithme du processeur q avec q=1...p *è Exçecuter la Phase I; Pour k è 1 ça ç n PN,1 i=0 ç i ç Faire enparallçele Envoyer au processeur èq+1 modulo pè les n çelçements de x reçcus ça p l'çetape prçecçedente; Calculer les çën ë produits scalaires locaux; Recevoir du processeur èq-1 modulo pè les nouveaux n çelçements de x; p Fin faireenparallçele; Exçecuter la Phase I; Fin faire; Remarque. Dans le pire des cas, la derniçere exçecution de la Phase I se termine avant la N th çetape. Donc avant d'exçecuter la derniçere phase de recouvrement il est possible de trouver un ç t plus petit que n aæn de minimiser le temps p d'inactivitçe des processeurs, mais ceci est trçes diæcile ça rçealiser automatiquement. La solution consiste ça tester pendant la Phase I le nombre de produits scalaire locaux, et de stopper l'algorithme lorsque tous les produits scalaires ont çetçe calculçes. Ceci peut ^etre rçealisçe en ajoutant un test dans l'algorithme 7.3. Evolution de l'allocation des donnçees Comme ça chaque çetape tous les processeurs exçecutent la m^eme t^ache n'importe quel processeur peut ^etre choisi comme rçefçerence. Notons RP ce processeur. A une çetape t un processeur exçecute ç n t,1 opçerations, envoie et reçcoit p ç t çelçements du vecteur x. On rappel que la sçerie des ç i dçecroit, et la Phase I s'arr^ete ça l'çetape N. En fait ça cette çetape ç N+1 est plus petit que 1. De plus, ça cette çetape le processeur RP n'a pas encore reçcu toutes ses donnçees. Avant de continuer il est nçecessaire de conna^çtre la distance entre RP et le processeur le plus
174 7.3. Problçeme du choix de la taille des paquets 163 çeloignçe qui possçede encore des donnçees destinçees ça RP ainsi, que le nombre d'çelçements contenus dans ce processeur. A chaque çetape t de l'algorithme, nous pouvons calculer la distance entre RP et ce processeur. Nous noterons d t cette distance, et ç c le nombre de composantes du vecteur x nçecessaire aux calculs locaux de RP qui se trouvent dans ce processeur èprocesseur ça distance d t de RPè. La proposition donne le nombre d'çelçements destinçes ça RP restant sur chaque processeurs. Dans un çechange total, le processeur RP doit recevoir èp, 1è messages de taille n c'est-ça-dire un message de taille n çachaque çetape, d'oçu p p d t+1 = d t, 1. Mais dans notre algorithme ça chaque çetape RP reçcoit un message de taille ç t, ce qui complique l'expression de d t, qui est donnçee par la proposition Cette valeur nous permettra de calculer le temps ænal de l'algorithme. Proposition Les processeurs situçes ça une distance supçerieure ça d t ne possçedent pas d'çelçements destinçes ça RP. Le processeur situçe ça une distance d t possçede ç c çelçements destinçes ça RP. Les processeurs situçes ça une distance infçerieure ça d t possçedent n p çelçements destinçes ça RP. Preuve. On peut facilement vçeriæer que la proposition est vraie pour l'çetape 1, lorsque tous les processeurs envoient ç 1 çelçements. Supposons que cette proposition soit vraie pour l'çetape tç1, montrons qu'elle est aussi vraie pour l'çetape t+1. Nous avons deux cas ça considçerer ç t+1 é ç c ou ç t+1 ç ç c. æ si ç t+1 é ç c alors nous avons d t+1 = d t et ç c è ç c, ç t+1 : n p ç c RP Donnçees pour RP Processeur ça distance : ç t+1 Donnçees utilisçees par RP d t+1 = d t Fig. 7.6 : Cas : ç t+1 é ç c.
175 164 Chapitre 7. Recouvrements calculsècommunications Les processeurs ça distance plus petites que d t envoient ç t+1 et reçcoivent ç t+1 donnçees utiles ça RP, ainsi ils possçedent toujours n donnçees destinçees p ça RP. En utilisant lem^eme argument on prouve que les processeurs situçes ça une distance supçerieure ça d t ne possçedent plus de donnçees destinçees ça RP èvoir ægure 7.6è. Le processeur situçe ça la distance d t envoie ç t+1 donnçees destinçees ça RP et il ne reçcoit pas de donnçees. Donc il reste ç c è ç c, ç t+1 donnçees sur ce processeur. Dans ce cas on a d t+1 = d t. æ si ç t+1 ç ç c alors nous avons d t+1 = d t, 1: Le processeur ça distance d t+1 reçcoit ç c çelçements de x nçecessaire ça RP et ç t+1, ç c ont dçejça çetçe utilisçees par RP. Ce processeur dispose maintenant deç c = n p + ç c, ç t+1 donnçees et il est facile de voir que les processeurs ça distance infçerieure ça d t+1 possçedent n p çelçements et que ceux ça distance supçerieure ça d t+1 ne possçedent plus d'çelçements destinçes ça RP èvoir ægure 7.7è. n p ç c RP Donnçees pour RP Processeur ça distance : ç d t+1 = d t, 1 t+1 Donnçees utilisçees par RP Fig. 7.7 : Cas : ç t+1 ç ç c. Proposition 7.3. La distance d t est çegale ça: $ p d t tx è = p, 1, ç i n i=1 è7:4è Preuve. Quand RP reçcoit un message de taille ç t+1,lenombre de messages de taille n p dçejça reçcu augmente et d t+1 = d t, 1 ou alors le nombre de
176 7.3. Problçeme du choix de la taille des paquets 165 messages reçcus de taille n reste le m^eme et dans ce cas d p t+1 = d t. Donc nous devons considçerer deux cas. $ è $ p Xt+1 p tx í cas ç t+1 é ç c Nous avons ç i = ç i è. n i=1 n i=1 Alors d t+1 = d t = p, 1, $ è p tx ç i = p, 1, $ p Xt+1 ç i è. n i=1 n i=1 $ è $ í cas ç t+1 ç p Xt+1 p tx ç c Nous avons ç i = 1+ ç i è. n n Alors d t+1 i=1 = d t, 1= p, 1, $ p n tx i=1 i=1 ç i è, 1 = p,1, $ p n Xt+1 i=1 ç i è. La proposition suivante nous permet de conna^çtre la valeur de ç c çachaque çetape. Proposition A une çetape t, la valeur de ç c est çegale ça n p, è P t i=1 ç i è mod n p. Preuve. Si nous considçerons l'çetape 1, tous les processeurs envoient ç 1 çelçements de x et masquent leco^ut æ c + ç 1 ç c des communications. Alors le processeur ça distance d t = d 1 possçede ç c = n, ç p 1 or ç 1 é n donc on peut p çecrire ç c = n, èç p 1 mod nè. p La formule est vçeriæçee pour l'çetape 1, supposons la vraie ça l'çetape t et prouvons qu'elle est vraie çal'çetape t+1 quand nous envoyons ç t+1 çelçements. ísi ç t+1 é ç c Nous savons que d t+1 = d t et le nouveau ç c = ç c, ç t+1. Donc newç c = n, è! tx ç i mod n, p p ç t+1mod n p i=1 Alors la valeur de ç c çal'çetape t+1 est : ísi ç t+1 ç ç c newç c = n, è Xt+1 p i=1 ç i! mod n p Nous savons que d t+1 = d t, 1 et le nouveau ç c = n p + ç c, ç t+1. Donc newç c = n p + n p, èè tx i=1 ç i! mod n p + ç t+1!
177 166 Chapitre 7. Recouvrements calculsècommunications Ainsi newç c = n p + n p, è n è t+1! X p + ç i mod n p i=1! = np, è Xt+1 i=1 ç i! mod n p è7:5è En utilisant la formule suivante dans l'çequation 7.5, on dçemontre la proposition. è t X n=1 ç i! è mod n p + ç t+1 = n t+1! X p + ç i i=1 mod n p Calcul du temps d'exçecution Aprçes la Phase I, les processeurs doivent envoyer des donnçees sans recouvrement. Aæn de terminer le calcul du vecteur v, l'algorithme consiste ça rçepçeter tant que cela est nçecessaire la phase I èvoir 7.3.è. D'oçu le temps ænal de : oçu $ n n +P N,1 p i=1 ç i è T exec = n p ç a n n + P N,1 p i=1 ç i 7 5 èæc + n p ç cè è7:6è reprçesente le nombre de communications èæ c + n p ç cè non masquçees nçecessaires ça la rçe-initialisation des Phases I Adaptation au lien full-duplex Nous allons maintenant considçerer qu'un processeur peut envoyer et recevoir en parallçele sur chacun de ses liens, et allons rçealiser la m^eme çetude que prçecçedemment. On constate que dans ce cas un processeur reçcoit deux fois plus de donnçees. Pendant le temps j n p ç a correspondant aux calculs locaux un processeur peut n envoyer ç 1 = vecteur x. p ça ç c, æc ç c k ça ses deux voisins et recevoir ç1 çelçements du
178 7.3. Problçeme du choix de la taille des paquets 167 Ainsi nous obtenons deux cas: æ ç 1 ç n p Al'çetape suivante, chaque processeur a plus de calculs locaux ça exçecuter, et peut envoyer un nombre d'çelçements de x plus grand que ç 1. D'oçu ça la prochaine çetape chaque processeur pourra envoyer ça son voisin de droite ègaucheè les donnçees reçcues de son voisin de gauche èdroiteè ça l'çetape prçecçedente, plus une partie des donnçees initiales restantes. On notera toutefois qu'un processeur ne peut pas envoyer plus de n donnçees dans la m^eme direction. p çj Le nombre d'çelçements de x qui doivent ^etre envoyçes ça l'çetape t est n ç donnçe par : ç t = min a p çc ç t,1, æc ç ck ; n pç. On constate que cette sçerie de ç i cro^çt et atteint la borne supçerieure n. Dans ce cas, toutes p les communications sont masquçees èvoir algorithme 7.5è. Algorithme 7.5 è* algorithme du processeur q avec q=1...p *è çë0ë è n ; p çë1ë è$ n ç a n p ç c p, æ cè; ç c t è 1; +P Tant que è n t,1 p i=1 ç i ç nè faire enparallçele Envoyer au processeur èq+1 modulo pè les çëtë çelçements de x utilisçes par le processeur èq-1 modulo pè; Envoyer au processeur èq-1 modulo pè les çëtë çelçements de x utilisçes par le processeur èq+1 modulo pè; Si èt=1è alors calculer les çët, 1ë produits scalaires sinon calculer les çët, 1ë produits scalaires; Recevoir du processeur èq+1 modulo pè et processeur èq-1 modulo pè les nouveaux çëtë çelçements de x; t è t +1; çëtë è minè$ n p Fin tant que; ç a ç c çët, 1ë, æ c ç c è ; n p! ; Le temps total d'exçecution de cette algorithme est : T exec = n p ç a
179 168 Chapitre 7. Recouvrements calculsècommunications æ ç 1 é n p j n ç Dans ce cas la sçerie des ç t = a p çc ç t,1, æc ç ck est strictement dçecroissante. Nous ne pouvons pas avoir un recouvrement total, mais une succession de Phase I entrecoupçees de communications d'un co^ut de æ c + n p ç c permettant larçe-initialisation des Phases I. Aprçes la premiçere rçeinitialisation, chaque processeur doit eæectuer n p calculs locaux èvoir ægure 7.8è. Ainsi il est possible de commencer une nouvelle Phase I avec ç 0 1 = min çj n p ça ç c, æc ç ck ; n pç plus grand que ç1 = j n p ça ç c, æc ç ck.la, æc ç ck ; n pç. nouvelle sçerie de ç 0 t est dçeænie par :ç 0 t = minçj n ç a p ç c ç 0 t,1 Du fait des co^uts des communications et du co^ut des calculs locaux, il faut distinguer deux cas. P rocesseur 1 P rocesseur P rocesseur p æc + ç1ç c n p n ç a p ç n a p ç a æ c + çç c n p ç 1ç a n p ç 1ç a n p ç 1ç a Phase I. æ c + ç N ç c æ c + n p çc n p ç N,1ç a n p ç Nç a n p ç N,1ç a n p ç Nç a n p ç N,1ç a n p ç Nç a æ c + ç 0 1 çc n p ç a n p ç a n p ç a Fig. 7.8 :Le nouvel enchainement des phases. æ Si æ c + n p ç c ç n p ç a alors ça chaque çetape un processeur peut calculer n produits scalaires et recevoir n çelçements. Dans ce cas le p p temps total d'exçecution est : T exec = ç n p, n p ç Nç ça + ç æ c + n p ç c æ Si æ c + n p ç c é n p ç a alors la sçerie des ç 0 i est strictement dçecroissante, et nous avons une succession de Phase I, entrecoupçees de communications ayant unco^ut de æ c + nç p c. Le temps total d'exçecution est : T exec = n p ç a + $n,pn i=0 ç i PN 0 i=0 ç0 i ç èç æc + n p ç c ç
180 7.3. Problçeme du choix de la taille des paquets Simulations Aprçes avoir fait une çetude thçeorique, nous allons prçesenter des rçesultats obtenus par simulation dans le cas des liens half-duplex et full-duplex. Les paramçetres utilisçes correspondent auco^ut des nouvelles machines parallçeles avec des processeurs puissants et une faible latence. Dans le reste de notre çetude nous considçerons le nombre de processeurs çegal ça 100. La ægure 7.9 compare l'algorithme sans recouvrement avec le nouvel algorithme prçesentçe prçecçedemment sur un anneau en utilisant des liens halfduplex temps èmsè pas de recouvrement algorithme sans recouvrement algorithme avec recouvrement recouvrement total 30 recouvrement partiel 10 n èrçeelè æ c =10çs; ç c =1çsèbyte; ç a = 0.01 çs Fig. 7.9 : Comparaison des algorithmes èliens half-duplexè. Pour des petites tailles de n, il n'y a pas de recouvrement car le co^ut du start-up est trçes çelevçe. La sçerie des çëië est dçegçençerçee èrçeduite ça un termeè. Pour des tailles moyennes de n nous avons un nombre important de termes dans la sçerie des çëië. Les ægures 7.10 et 7.11 reprçesentent l'çevolution de la sçerie des çëië pour des tailles çegales ça 000 er 65 rçeels. Enæn pour les grandes tailles de n, il y a un recouvrement total, car les calculs locaux sont trçes importants.
181 170 Chapitre 7. Recouvrements calculsècommunications Valeurs des çëië i Fig :Lasçerie des çëië pour n = 000. Valeurs des çëië i Fig :Lasçerie des çëië pour n = 500. La ægure 7.1 montre les rçesultats obtenus avec des liens full-duplex. Comme les processeurs reçcoivent plus de donnçees, nous obtenons un recouvrement pour de plus petites valeurs de n.
182 7.4. Conclusion temps èmsè pas de recouvrement algorithme sans recouvrement algorithme avec recouvrement recouvrement partiel recouvrement total n æ c =10çs; ç c =1çsèbyte; ç a = 0.01 çs Fig. 7.1 : Comparaison des algorithmes èliens full-duplexè Ce nouvel algorithme permet de masquer au mieux les communications. Les simulations montrent que sur les machines actuelles, il est possible d'obtenir des gains importants en eæectuant du recouvrement calculsècommunications. 7.4 Conclusion L'utilisation de bibliothçeques de communications non-bloquantes permet de rçealiser des recouvrements calculsècommunications. Ceci est d'autant plus facile sur les machines actuelles que tous les nçuds possçedent un processeur dçediçe aux communications. On a cherchçe ça masquer au mieux les communications, pour cela nous avons çetudiçe, sur un algorithme simple, la taille des messages que nous devons envoyer dans chaque communication. L'çetude rçevçele que ce calcul n'est pas simple et qu'il risque de devenir trçes compliquçe pour des problçemes plus complexes. Aæn que ce type de mçethode soit utilisable il est nçecessaire que le dçecoupage des messages soit calculçe lors de la compilation.
183 17 Bibliographie Bibliographie ë1ë C. Calvin and F. Desprez. Minimizing communication overhead using pipeline for multi-dimensional FFT on distributed memory machines. In Parallel Compar, ëë L. Colombet, P. Michallon, and D. Trystram. Parallel matrix-vector product on a ring with minimum of communications. Apache, LMC - IMAG èfranceè, ë3ë F. Desprez. Procçedures de base pour le calcul scientiæque sur machines paralleçeles ça mçemoire distribuçee. PhD thesis, Institut National Polytechnique de Grenoble, January ë4ë F. Desprez and B. Tourancheau. LOCCS low overhead communication and computation subroutines. In High Performance Computing and Networking conference, ë5ë G.H. Golub and C.F. Van Loan. Matrix Computation. The John Hopkins University Press, Second edition. ë6ë L. Johnsson and C.T. Ho. Optimal broadcast and personalized communication on hypercubes. IEEE Transactions on Computers, pages 149í168, 89. ë7ë C. T. King, W. H. Chu, and L. M. Ni. Pipelined data parallel algorithms - concept and modeling. In International Conference on Supercomputing, pages 385í395, ë8ë Y. Saad and M. Schultz. Data communication in parallel Architectures. Computing, pages 131í150, Parallel
184 Chapitre 8 Communications globales en commutation de circuit Dans le mode de communication de message èstore and forwardè le temps des communications globales est proportionnel au diamçetre du rçeseau, ce qui nuit ça l'utilisation de rçeseaux tels que les grilles toriques et plus gçençeralement les rçeseaux possçedant un grand diamçetre. Comme nous l'avons vu dans le premier chapitre, les constructeurs de machines parallçeles utilisent de plus en plus la commutation de circuit, ou le wormhole pour eæectuer les communications entre les processeurs. Or le co^ut des communications ne dçepend plus que faiblement de la distance entre les processeurs dans le mode commutation de circuit, ce qui permet l'utilisation de rçeseaux possçedant un diamçetre çelevçe telles que les grilles ou de grilles toriques. Certains constructeurs comme Intel et Cray ont dçejça mis en application ce mode de routage sur ce type de rçeseaux èparagon, iwarp, T3D, cf. chapitre 1è. Dans ce chapitre nous allons prçesenter dans un premier temps la diæusion dans la grille torique, travaux de Peters et Syska ë11ë. La solution proposçee permet de rçealiser une diæusion en un nombre minimal d'çetapes de communication. Puis, nous utiliserons cet algorithme pour en dçeduire une mçethode permettant de rçealiser l'çechange total dans les grilles toriques. Enæn nous comparerons les diæçerents algorithmes de diæusion et d'çechange total en commutation de circuit, aæn de dçeduire, en fonction de la taille du message, l'algorithme le mieux adaptçe. 8.1 Rçesultat prçeliminaire Depuis les annçees 90, avec l'apparition de nouveaux modes de communication dans certaines machines, les communications globales en commutation de circuit ou en wormhole ë5ë sont trçes çetudiçees, notamment dans les grilles 173
185 174 Chapitre 8. Communications globales en commutation de circuit et les grilles toriques de processeurs. Barnett et al. proposent des solutions pour la diæusion et le regroupement avec accumulation èglobal combineè dans les grilles ë1, ë. Fraigniaud et Peters prçesentent des algorithmes de diæusion et d'çechange total dans les grilles toriques en mode 1-port ë7ë. Le problçeme de la transposition a donnçe lieu aussi ça beaucoup d'çetudes, notamment de la part de Ho ë8ë et Choi, Dongarra, Walker ë4ë. Lin et Ni se sont intçeressçes au problçeme du multicast dans les grilles. Ceci consiste ça diæuser un message ça un sous-ensemble de processeurs du rçeseau ë9, 10ë. L'çetude des communications globales en commutation de circuit est aussi rçealisçee expçerimentalement ë3, 13ë sur des machines telles que les ipsc, la Paragon, etc. Dans ce chapitre nous considçerons des grilles toriques ayant p processeurs, dans lesquelles les communications se font en mode commutation de circuit ou wormhole, æ-ports, full-duplex èvoir chapitre è. Dans ce mode de communication, les nçuds intermçediaires par lesquels passe un message qui ne leur est pas destinçe ne le mçemorisent pas. Le temps pour communiquer un message de taille L entre deux processeurs distants de d est de : T d = æ + dæ + Lç è8.1è oçu æ est le temps de start-up, æ le temps de routage dans un nçud, et Lç le temps de transmission du message. Comme que ce mode de communication permet d'envoyer en une seule çetape un message ça æ nçuds situçes ça une distance d, l'çemetteur peut envoyer ce m^eme message ça æ autres nçuds lors de l'çetape suivante, chose qui est impossible de rçealiser en store and forward. Le nombre maximal de nçuds que l'on peut informer en k çetapes est donnçe par la proposition suivante : Proposition ë15ë Dans un graphe G de degrçe maximum æ et dans un routage de type commutation de circuit, sous les hypothçeses æ,port et full-duplex, le nombre maximum de nçuds qui peuvent ^etre informçes d'un m^eme message en k çetapes est èæ + 1è k. Preuve. Considçerons qu'un nçud possçede un message ça diæuser ça tous les autres nçuds du graphe. Aprçes la premiçere çetape de communication æ + 1 nçuds auront eu l'information èæ plus l'initiateurè. Lors de la deuxiçeme çetape chaque nçud dçejça informçe peut envoyer son message ça æ autres nçuds. Au bout de la deuxiçeme çetape on aura æ+1+æèæ+1è = èæ+1è nçuds informçes. En eæectuant un raisonnement par rçecurrence on obtient le rçesultat çenoncçe dans la proposition.
186 8.. La diæusion 175 D'aprçes cette proposition, on peut espçerer trouver des algorithmes de diffusion æ-port en commutation de circuit ou en wormhole nçecessitant seulement log æ+1 p çetapes. Ce rçesultat est ça opposer au nombre d'çetapes èle diamçetreè du mode store and forward, ce qui n'est pas nçegligeable sur les rçeseaux tels que les anneaux ou les grilles toriques. Le mode commutation de circuit ou wormhole permet de rçeduire le co^ut de start-up, ce qui est apprçeciable quand on conna^çt l'importance de ce paramçetre par rapport aux autres èvoir chapitre è. C'est pourquoi il est important de construire des algorithmes nçecessitant le plus petit nombre d'çetapes possibles. En fait, il s'agit de trouver le meilleur compromis entre tous les paramçetres de communication, car avoir un faible start-up peut entra^çner une augmentation du co^ut de transmission prçejudiciable pour des messages de grande taille. 8. La diæusion Le problçeme de la diæusion æ-port en mode commutation de circuit ou wormhole a çetçe çetudiçe par Peters et Syska dans ë11ë. L'algorithme de diæusion dans les grilles toriques se dçeduit de celui de la diæusion dans l'anneau. Dans ce chapitre nous allons donner le principe des ces algorithmes seulement, pour obtenir la preuve de ces algorithmes se rçefçerer ça ë6, 11ë Diæusion dans l'anneau Si l'on considçere un anneau de p processeurs èavec p =3 k è, numçerotçes de 1 ça p, nous allons voir qu'il est possible de rçealiser la diæusion en un nombre minimal d'çetapes. L'çetape i de l'algorithme consiste, pour les nçuds dçejça informçes, en un envoi aux deux processeurs situçes ça distance p. La ægure 8.1 illustre cet 3 i algorithme dans le cas oçu p = 7 et le processeur numçero 1 est l'initiateur de la diæusion. Chaque çetape de cet algorithme co^ute un temps de start-up èæè, p commutations de liens, et une transmission de message de taille P L. Au total il y a 3 i log log 3 p çetapes, donc cet algorithme a un co^ut total de : 3 ç ç i=1 æ + p 3 æ + Lç i soit : T diffusion = 1 èp, 1èæ +èlog 3pèèæ + Lçè On constate que cet algorithme atteint le nombre optimum d'çetapes et de commutations de circuit èle diamçetre de l'anneauè, mais que le co^ut de transmission est çelevçe comparçe au temps des algorithmes point ça point en store and forward èvoir chapitre 5è. Par contre le co^ut de la transmission
187 176 Chapitre 8. Communications globales en commutation de circuit est plus çelevçee que dans les algorithmes point ça point è L çè ë1ë. Donc, si le temps de commutation d'un circuit est faible, cet algorithme sera particuliçerement eæcace pour des messages de petite taille, par contre pour les messages de grande taille les algorithmes pointça point permettent d'obtenir de meilleurs rçesultats è Lç ë1ë au lieu de èlog 3pèèLçèè. Remarque. Il est possible d'adapter cet algorithme aux anneaux qui n'ont pas un nombre de processeurs multiple d'une puissance de trois Etape Etape Etape Etape 3 Fig. 8.1 : Diæusion wormhole dans un anneau ça 7 processeurs
188 8.. La diæusion Diæusion dans la grille torique D'aprçes la proposition 8.1.1, il est possible d'espçerer trouver un algorithme de diæusion en log 5 p çetapes, pour cela considçerons une grille torique de p processeurs èavec p =5 k è. Dans la grille torique 5 æ 5, la solution est immçediate, et est donnçee par la ægure 8.. Pour cette grille il est donc possible de rçealiser la diæusion en deux çetapes èlog 5 5è. Etape 1 Etape Fig. 8. : Diæusion wormhole dans une grille torique ça 5 processeurs Cet algorithme peut ^etre vu comme un pavage rçecursif de la grille torique ë11, 14ë. Pour la grille torique 5 æ 5 il faut dçecomposer la grille en cinq croix, de cinq processeurs, comme le montre la ægure 8.3. La croix centrale est constituçe par l'initiateur de la diæusion ècentre de la croixè et de ses quatre voisins. Les quatre autres croix sont construites sur le m^eme modçele et assemblçees de façcon ça paver la grille torique.
189 178 Chapitre 8. Communications globales en commutation de circuit Fig. 8.3 : Pavage d'une grille torique ça 5 processeurs En utilisant le pavage de la grille torique, les deux çetapes de l'algorithme de diæusion correspondent donc ça: íçetape 1 : l'initiateur de la diæusion envoie son message au centre des quatre autres croix ; íçetape : chaque centre envoie le message ça ses quatre voisins. Il est possible de continuer le pavage en construisant des croix de tailles supçerieures de façcon rçecursive. En eæet, pour l'çetape suivante nous n'allons plus considçerer des croix de cinq processeurs mais des croix de vingt cinq processeurs. En fait la ægure 8.3 forme une nouvelle croix. En dupliquant quatre fois cette croix, on obtient une nouvelle croix de cent vingt cinq processeurs. Si l'on itçere encore une fois ce procçedçe on obtient cinq croix de 15 processeurs qui rçealisent le pavage de la grille torique 5 æ 5. En utilisantcepavage Peters et Syskaontdçemontrçe la proposition suivante : Proposition 8..1 ë11ë La diæusion dans une grille torique 5 k æ 5 k èavec k ç 1è, nçecessite un temps d'au plus : kæ +è5 k, 1èæ +klç.
190 8.3. L'çechange total 179 Cet algorithme permet de minimiser les termes en æ et æ. Comme pour la diæusion dans l'anneau, cet algorithme a un co^ut de transmission çelevçe, ce qui le rend pçenalisant pour les messages de grande taille. Pour ce type de message, les algorithmes point ça point restent les meilleurs è Lç 4 voir chapitre 4 au lieu de èlog 5 pèèlçèè. 8.3 L'çechange total L'çechange total fait partie des schçemas de communication prçesentçes dans les chapitres 3 et 5. Chaque processeur possçede un message qu'il envoie ça tous les autres. Aprçes avoir prçesentçe les bornes infçerieures escomptçees avec chacun des paramçetres inæuençcant le co^ut des communications, nous dçecrirons un algorithme d'çechange total sur la grille torique directement inspirçe des algorithmes point ça point du chapitre 5. Puis nous prçesenterons une mçethode basçee sur l'algorithme de diæusion permettant de rçealiser l'çechange total Co^ut minimal suivant chaque paramçetre Soit un rçeseau de p processeurs, ayant un degrçe æ, de diamçetre D, possçedant des liens parallçeles full-duplex, les co^uts minimaux pour chacun des paramçetres de communication èæ; æ; çè pour rçealiser un çechange total en mode commutation de circuit sont obtenus de la m^eme façcon que ceux du mode store and forward èvoir chapitre 5 et ë6ëè. í Le co^ut de start-up : comme l'çechange total correspond ça une diæusion simultançee depuis tous les processeurs, il est possible d'espçerer le m^eme co^ut de start-up que celui d'une diæusion èvoir proposition 8.1.1è c'estça-dire log 5 èpèæ. íleco^ut de commutation : la distance maximale entre deux processeurs du rçeseau çetant le diamçetre D, il faut donc au moins D commutations, donc le co^ut minimal est de Dæ. íleco^ut de transmission : chaque processeur doit recevoir èp,1è messages de taille L, en supposant que tous les processeurs puissent recevoir simultançement sur leurs æ liens, le temps de propagation minimal sera donc de d p,1 æ elç Diæçerents algorithmes Suivant le type d'algorithme que l'on utilise, on va pouvoir minimiser le terme correspondant ça tel ou tel paramçetre. En eæet comme pour la diæusion
191 180 Chapitre 8. Communications globales en commutation de circuit les algorithmes point ça point permettent d'obtenir le meilleur temps de transmission, alors l'algorithme basçe sur le pavage de la grille torique permet de rçeduire le co^ut de start-up. Une solution point ça point Dans le chapitre 5, nous avons prçesentçe plusieurs algorithmes d'çechange total point ça point. Parmi ces algorithmes, le plus simple est sans nul doute celui qui utilise les dimensions successives de la grille torique. Cet algorithme se dçecompose en deux phases d'çechange total sur des anneaux, une phase avec des messages de taille L, et une autre avec des messages de taille L p p. Cet algorithme peut directement s'adapter en mode commutation de circuit, en eæet il suæt de faire des communications ça distance un, ce qui permet de faire correspondre le terme æ + æ de la communication en commutation au terme æ du store and forward. Le temps d'exçecution de cet algorithme se dçeduit donc directement de celui en store and forward : $p p è èæ + æè+ç p, ç 1 4 Lç è8.è Cet algorithme permet d'atteindre le temps minimal de commutation de circuit et de transmission, mais possçede un co^ut de start-up çelevçe. Une solution regroupement-diæusion L'algorithme de regroupement-diæusion est basçe sur le pavage rçecursif de la grille torique prçesentçe dans 8... Cet algorithme s'applique aux grilles toriques dont le nombre de processeurs est une puissance de cinq. Il se dçecompose en deux phases que nous allons dçetailler : í le regroupement : en fait cette phase correspond ça l'opçeration inverse de la diæusion, avec une taille de message augmentant ça chaque çetape. Lors de la premiçere çetape, toutes les croix formçees de cinq processeurs envoient leur message au processeur central de la croix èægure 8.4è. A l'çetape deux, chaque centre envoie un message de taille 5L au centre de la croix de vingt cinq processeurs dont il fait partie èægure 8.4è.
192 8.3. L'çechange total 181 Etape 1 Etape Fig. 8.4 :Les deux premiçeres çetapes du regoupement. Fig. 8.5 : Etape 3duregoupement. Al'çetape 3 chaque centre de croix de l'çetape deux envoie le message au centre de la croix de taille supçerieure comme le montre la ægure 8.5.
193 18 Chapitre 8. Communications globales en commutation de circuit On itçere ce procçedçe jusqu'ça ce que les message soient tous centralisçes sur un seul processeur. í la diæusion : le processeur qui vient de recevoir les p messages eæectue une diæusion avec un message de taille pl, selon le principe dçecrit prçecçedemment. Durant la premiçere phase, ça une çetape i èi variant de1ça log 5 pè, il y a des communications de messages de taille 5 i,1 entre les processeurs soit : æ +è p p, 1èæ + P log 5 èpè i=1 è5 i,1 Lçè. Le co^ut de la seconde phase correspond ça une diæusion d'un message de longueur pl soit : log 5 èpèæ +è p p, 1èæ + log 5 èpèplç. Le co^ut total de cet algorithme est donc : log 5 èpèæ +è p p, 1èæ +è p 4 + log 5èpèpèLç: è8.3è Cet algorithme permet de diminuer le nombre d'çetapes, c'est-ça-dire le startup, mais augmente considçerablement le temps de transmission. 8.4 Comparaison des diæçerents algorithmes Lorsque l'on dçesire obtenir des performances sur une machine parallçele ça mçemoire distribuçee, il est nçecessaire d'optimiser les calculs ainsi que les communications. Comme nous l'avons vu dans le chapitre 4 pour les algorithmes de diæusion dans les grilles toriques en store en forward, le choix de l'algorithme est inæuencçe par la taille du message que l'on diæuse. Aæn d'illustrer les çecarts entre les diæçerents algorithmes, nous allons les comparer sur une conæguration donnçee. Nous allons considçerer une grille torique de 65 processeurs, avec des liens full-duplex, æ-port, utilisant le mode de commutation de circuit. Nous prendrons æ = 350 çsec, æ = 10 çsec et ç = 0: çsec=octect èces valeurs correspondent aux paramçetres de communication de l'ipsc860è.
194 8.4. Comparaison des diæçerents algorithmes 183 Cas de la diæusion Nous allons comparer les algorithmes de diæusion pipeline èvoir chapitre 4è et de Peters-Syska. Dans le cas de la diæusion pipeline, on eæectue des communications point ça point avec æ = æ + æ. Le tableau suivant donne la borne infçerieure de chacun des paramçetres pour la diæusion. æ æ ç Borne infçerieure log 5 èpè j pp Peters-Syska oui oui non pipeline non oui oui asymptotiquement k L 4 On constate que les deux algorithmes atteignent la borne infçerieure en co^ut de commutation, et que la version pipeline, çetant asymptotiquement optimale permettra d'obtenir de bons rçesultats avec des messages de grande taille. temps èçsec:è Peters & Syska version pipeline L Fig. 8.6 : Comparaison des deux stratçegies de diæusion. L'algorithme de Peters-Syska est meilleur jusqu'ça des tailles de message de l'ordre de octets èsoit 1888 rçeels double prçecisionè. En fait cet algorithme n'est pas seulement utilisable pour les petits messages, mais aussi pour les messages de taille moyenne.
195 184 Chapitre 8. Communications globales en commutation de circuit Cas de l'çechange total Les deux algorithmes d'çechange total prçesentçes auparavant, atteignent les bornes infçerieures pour certains paramçetres, comme le montre le tableau ci-dessous. æ æ ç Borne infçerieure log 5 èpè p m jp L k l p,1 4 regroupement-diæusion non oui non pointça point non oui oui Comme pour la diæusion, on peut constater que pour des messages de grande taille l'algorithme point ça point sera meilleur, puisqu'il atteint la borne infçerieure en co^ut de transmission. La ægure 8.7 permet de comparer les deux algorithmes d'çechange total en commutation de circuit prçesentçes prçecçedemment. 14E+4 temps èçsecè point \ a point regroupement-diffusion 10E+4 6E+4 E+4 L Fig. 8.7 : Comparaison des deux stratçegies d'çechange total. L'algorithme de regroupement-diæusion est meilleur pour des petites tailles de l'ordre de quelques octets. L'algorithme pointça point est trçes rapidement meilleur du fait de son faible co^ut de transmission, de l'ordre de p Lç contre 4 plog 5 èpèlç pour le regroupement-diæusion.
196 8.5. Conclusion 185 Ces deux exemples montrent bien que sur une topologie donnçee, ça p æxçe, ça paramçetres de communication connus, le bon choix des algorithmes de communication est essentiel, le choix d'une stratçegie regroupement-diæusion se rçevçelant catastrophique pour de grands messages. 8.5 Conclusion L'utilisation des communications en commutation de circuit se gçençeralisant dans les machines ça mçemoire distribuçee, il est nçecessaire de conna^çtre les meilleurs algorithmes de communications globales avec ce mode de communication aæn d'obtenir de bonnes performances sur ces nouvelles machines. Nous avons prçesentçe des algorithmes qui diminuaient le nombre d'çetapes de communications, c'est-ça-dire le start-up, ce qui les rend particuliçerement performants pour des messages de petite taille. Il est diæcile ça l'utilisateur de choisir entre les diæçerents algorithmes, la solution consisterait ça inclure se choix dans le compilateur ce qui garantirait ça l'utilisateur d'obtenir toujours les meilleurs performances de communication. Bibliographie ë1ë M. Barnett, R. Littleæeld, D. Payne, and R. Van De Geijn. Global combine on mesh architectures with wormhole routing. Technical Report TR-93, Computer Science Department, University oftexas, èusaè, ëë M. Barnett, D. Payne, and R. Van De Geijn. Optimal broadcasting in meshconnected architectures. Technical Report TR-91-38, Computer Science Department, University oftexas èusaè, ë3ë S. Bokhari. Communication overhead on the Intel ipscè860 hypercube. Technical report, ICASE, NASA Langley Research Center, ë4ë J. Choi, J. Dongarra, and D. Walker. Parallel matrix transpose algorithms on distributed memory concurrent computers. Technical report, Oak ridge National Laboratory èusaè, October ë5ë W.J. Dally and C.L. Seitz. Deadlock-free message routing in multiprocessor interconnection networks. IEEE Transactions on Computers, C-36è5è:547í553, ë6ë Jean de Rumeur. Communications dans les rçeseaux de processeurs. Masson, ë7ë P. Fraigniaud and J. Peters. Structured communications in torus networks. Technical report, School of Computing Science, Simon Fraser University ècanadaè, ë8ë C-T. Ho. Matrix transpose on meshes with wormhole and XY routing. Technical report, IBM Research Division Almaden Reserch Center, ë9ë X. Lin and L. Ni. Multicast communication in multicomputer networks. In International Conference on Parallel Procesing, August 1990.
197 186 Bibliographie ë10ë L. Ni and P. McKinley. A survey of wormhole routing techniques in direct networks. IEEE Computer, pages 6í76, February ë11ë J. Peters and M. Syska. Circuit-switched broadcasting in torus network. Technical report, School of Computing Science, Simon Fraser University ècanadaè, ë1ë Y. Saad and M.H. Schultz. Data communication in parallel architectures. Journal of Parallel Computing, 11:131í150, ë13ë S. Seidel, M-H Lee, and S. Fotedar. Concurrent bidirectional communications on the Intel ipscè860 and ipscè. Technical report, Computer Science Department, Michigan Technological University èusaè, ë14ë M. Senechal. Tiling the torus. Disc. and Comp. Geometry, pages 55í7, ë15ë M. Syska. Communications dans les architectures ça mçemoire distribuçee. PhD thesis, Universitçe de Nice èfranceè, December 199.
198 Chapitre 9 Conclusion Conclusions et perspectives La parallçelisation sur machines ça mçemoire distribuçee d'applications numçeriques, fait appel ça des mouvements de donnçees qui impliquent tous les processeurs : ce type de mouvement de donnçees est appelçe communication globale. Avec l'çevolution des machines, le rapport co^ut de communication sur co^ut de calcul devient de plus en plus grand, c'est pourquoi il est nçecessaire de dçevelopper des algorithmes de communications eæcaces. Les çetudes que nous avons prçesentçees se situaient dans ce cadre-lça et plus spçecialement sur les machines parallçeles possçedant un rçeseau de processeurs connectçes en grille torique. Nous avons dçeveloppçe une sçerie d'outils thçeoriques, comme les arbres de recouvrement ça arcs disjoints ou les chemins hamiltoniens, pour çetudier et mettre en çuvre les principaux schçemas de communications globales sur ces machines. En particulier nous avons prçesentçe de nouvelles familles d'arbres de recouvrements ça arcs disjoints de profondeur minimale, qui sont utilisables pour eæectuer des diæusions optimales en mode pipeline. De nombreuses expçerimentations rçeelles ont çetçe dçeveloppçees sur ces schçemas en mode commutation de messages pour valider les rçesultats thçeoriques. L'identiæcation de noyaux de calculs et de communications lors de la parallçelisation d'applications numçeriques permet d'inclure facilement de telles procçedures. Dans le cadre d'un groupe de travail qui rçeunit des utilisateurs et des informaticiens, nous avons commencçe ça dçevelopper des applications avec ces outils. 187
199 188 Conclusion Les processeurs calculant de plus en plus vite, il devient nçecessaire de dçevelopper des outils permettant d'eæectuer du recouvrement calculècommunication, aæn de rçeduire le temps d'inactivitçe des processeurs. L'çetude eæectuçee au dçebut de ce document sur les machines parallçeles montre que les nouvelles tendances des machines sont les communications en mode wormhole et des rçeseaux d'interconnexion multi-çetages. íenwormhole il existe peu de rçesultats, nous donnons une solution pour l'çechange total dans la grille torique. L'çetude des autres schçemas de communication s'avçere ^etre une perspectiveintçeressante. Il serait aussi souhaitable d'eæectuer le m^eme type d'analyse sur d'autres topologies. í Dans les rçeseaux multi-çetages se pose le problçeme de savoir comment rçealiser des schçemas de communications globales. Pour cela il va falloir çetudier les mouvements de donnçees structurçes comme par exemple certains types de permutations.
200 Annexe A A Annexe Tables des arcs entrants pour les grilles toriques è4k +1èæ è4k +1è 189
201 190 Annexe A. A Pour ce cas on a : x min = y min =,b p p c; x max = y max = b p p c arc entrant par contrainte sur i contrainte sur j N i i 6= 0 0 ç jéy max, ; j mod =0 x min +1éiéx max ; i 6= 0 j = y max i = x min ;x min +1;x max, 1;x max j = y max, 1 x min éiéx max ; i 6= 0;i mod =0 y min éjé0 i = x min y min +1éjé0 E i i = x max y min +éjé0 x min ç ié0 0 éjéy max ; j mod =1 x min +ç ié0 j = y max, 1 i = x min ;x min +1 j = y max i = x min ;x min +1 j = y min +1 i = x max j = y min +;y max, i = x max, j = y min 0 éiéx max, ; i mod =1 y min éjé0 i = x max, 1 y min +éjé0 0 éiéx max, ; i mod =1 j = y max S i i =0 j 6= 0 i = x min j = y max, i 6= x min +;x max, j = y min i = x max, 1 j = y min + x min éiéx max ; i 6= ;i mod =0 j = y max W i 0 éiç x max 0 éjéy max, 1; j mod =1 0 éiéx max, 1 j = y max, 1 i = x max 1;x max j = y max i = x max, 1;x max j = y min +1 i = x min + j = y min x min +éié0; i mod =,1 j = y max i = x min +1 j = y min, x min +1éié0; i mod =,1 y min éjé0 i = x min +1 y min +1éjé0 Table de l'arbre NST
202 191 arc entrant par contrainte sur i contrainte sur j N i i = x max, j = y max, 1 i = x min +1 j = y min ;y min +1 i = x min j = y max, i = x max 0 éjéy max, ; j mod =1 0 éiéx max, 1; i mod =1 y min ç jé0 i = x max, 1 y min +1éjé0 x min éié0 x min +1éié0 0 éjéy max, 1; j mod =1 j = y max, 1 i = x max j = y min ;y min +1 E i x min éié0 y min éjéy max ; j 6= 0;j mod =0 x min +1éié0 j = y max x min +éié0 j = y min 0 ç iéx max, ; i mod =0 j 6= 0 i = x max, y min éjéy max, 1; j 6= 0 i = x max, 1 j = y min ;y min +1;y max, 1;y max S i 0 éiéx max, 1; i mod =1 0 éjç y max i = x max, 1 0 éjéy max, 1 i = x max j = y max, 1;y max i = x max y min, éjé0; j mod =,1 i = x min +;x max, j = y min i = x min j = y min + i = x min +1 j = y max, 1;y max x min éié0 y min +1éjé0; j mod =,1 x min +éié0 j = y min +1 W i i 6= 0 j =0 i = x max, j = y max i = x max y min éjéy max ; j 6= 0;j mod =0 i = x min + j = y min +1 i = x min j 6= y min +;y max, Table de l'arbre EST
203 19 Annexe A. A arc entrant par contrainte sur i contrainte sur j N i i =0 j 6= 0 i 6= x min +;x max, j = y max i = x max j = y min + i = x min +1 j = y max, x min éiéx max ; i 6= 0;i mod =0 j = y min E i x min ç ié0 y min +1éjé0; j mod =,1 x min +1éié0 j = y min +1 i = x min ;x min +1 j = y min i = x min ;x min +1 j = y max, 1 i = x max, j = y max i = x max, 1 j = y min + 0 éiéx max, 1; i mod =1 0 éjéy max, 1 i = x max, 1 0 éjéy max, 1 0 éiéx max, ; i mod =1 j = y min S i i 6= 0 y min, éjç 0; j mod =0 x min +1éiéx max ; i 6= 0 j = y min + i = x min ;x min +1;x max, 1;x max j = y min +1 x min éiéx max ; i 6= 0;i mod =0 0 éjéy max i = x min 0 éjéy max, i = x max 0 éjéy max, 1 W i 0 éiç x max y min éjé0; j mod =,1 0 éiéx max, 1 j = ymin +1 i = x max, 1;x max j = y min i = x max, 1;x max j = y max, 1 x min +éié0; i mod =,1 j = y min i = x min j = y min +;y max, i = x min + j = y max x min +1éié0; i mod =,1 0 éjéy max i = x min +1 0 éjéy max, Table de l'arbre SST
204 193 arc entrant par contrainte sur i contrainte sur j N i x min +1éié0; i mod =,1 y min ç jé0 i = x min +1 y min +1éjé0 i = x min j = y min ;y min +1 i = x max, 1 j = y min ;y min +1 i = x min 0 éjéy max, ; j mod =1 0 éiéx max 0 éjéy max, 1; j mod =1 0 éiéx max, j = y max, 1 i = x max j = y max, 1 i = x min +;x max, j = y max E i i 6= 0 j =0 i = x max j 6= y min +;y max, i = x max, j = y max, 1 i = x min + j = y min i = x min y min éjéy max ; j 6= 0:j mod =0 S i x min +1éié0; i mod =,1 0 éjç y max i = x min +1 0 éjéy max, 1 i = x min j = y max 1;y max i = x max, 1 j = y max, 1;y max i = x max j = y min + i = x min + j = y min +1 i = x min y min +éjé0; j mod =,1 0 éiéx max y min +1éjé0; j mod =,1 0 éiéx max, 1 j = y min +1 W i x min +éiç 0; i mod =0 j 6= 0 i = x min + y min +1éjéy max ; j 6= 0 i = x min +1 j = y min ;y min +1;y max, 1;y max 0 éiéx max y min éjéy max ; j 6= 0;j mod =0 0 éiéx max, j = y max 0 éiéx max, 1 j = y min Table de l'arbre WST
205 194 Annexe A. A Table des arcs entrants pour les grilles toriques è4k +3èæ è4k +3è Pour ce cas on a : x min = y min =,b p p c; x max = y max = b p p c. arc entrant par contrainte sur i contrainte sur j N i i 6= 0 ç jéy max ; j mod =0 i 6= 0;i mod =0 y min éjé0 E i x min ç ié0 0 éjç y max ; j mod =1 0 éiéx max ; i mod =1 y min ç jé0 i = x max y min éjéy max ;jjj mod =1 i = x min S i i =0 y min éjé0 j 6= 0 i = x min ;x max j = y min i 6= 0;i mod =0 j = y min W i 0 éiéx max x min éié0; i mod =,1 0 éjéy max ; j mod =1 y min ç jé0 i = x max y min éjé0; j mod =0 i = x max j = y max Table de l'arbre NST arc entrant par contrainte sur i contrainte sur j N i 0 ç iéx max ; i mod =1 y min éjé0 i = x max j = y min x min ç ié0 0 éjéy max ; j mod =1 x min éié0; i mod =0 j = y min E i 0 ç iéx max ; i mod =0 j 6= 0 x min éié0 j 6= 0;j mod =0 S i 0 éiç x max ; i mod =1 0 éjéy max x min ç ié0 y min éjé0; j mod =,1 x min éié0 j = y max x min éiéy max ;jij mod =1 j = y min W i i 6= 0 j =0 i = x min j = y min ;y max i = x min j 6= 0;j mod =0 Table de l'arbre EST
206 195 arc entrant par contrainte sur i contrainte sur j N i i =0 j 6= 0 i = x min ;x max j = y max i 6= 0;i mod =0 j = y max E i x min éié0 y min ç jé0; j mod =,1 i = x min 0 éjéy max ; j mod =0 i = x min j = y min 0 éiéx max ; i mod =1 0 ç jéy max S i i 6= 0 y min éjç 0; j mod =0 i 6= 0;i mod =0 0 éjéy max W i 0 éiç x max y min ç jé0; j mod =,1 x min éié0; i mod =,1 0 éjç y max i = x max 0 éjéy max i = x min y min éjéy max ;jjj mod =1 Table de l'arbre SST arc entrant par contrainte sur i contrainte sur j N i x min ç ié0; i mod =,1 y min ç jé0 0 éiç x max 0 éjéy max ; j mod =1 0 éiéx max j = y min x min éiéx max ;jij mod =1 j = y max E i i 6= 0 j =0 i = x max j = y min ;y max i = x max j 6= 0;j mod =0 S i x min ç ié0; i mod =,1 0 éjéy max i = x min j = y max 0 éiç x max y min éjé0; j mod =,1 0 éiç x max ; i mod =0 j = y max W i x min éiç 0; i mod =0 j 6= 0 0 éiéx max j 6= 0;j mod =0 Table de l'arbre WST
207 196 Annexe A. A Table des arcs entrants pour les grilles toriques è4kè æ è4kè Pour ce cas on a : x min =,b p p c +1;y min =,b p p c; x max = b p p c; y max = b p p c,1. arc entrant par contrainte sur i contrainte sur j N i i 6= 0;i 6= x max ; i mod =0 j = y min +1 i 6= 0 0 ç jéy max ; j mod =0 i 6= 0;i mod =0 y min +1éjé0 E i x min ç ié0 0 éjç y max ; j mod =1 i = x min y min éjé0; j mod =0 0 éiéx max, 1; i mod =1 y min éjé0 i = x max, 1 y min +1éjé0 S i i =0 j 6= 0 i = x min y min éjé0; j mod =,1 i 6= 0 j = y min i = x min ;x max, 1;x max j = y min +1 W i 0 éiç x max 0 éjç y max ; j mod =1 x min éié0; i mod =,1 y min éjé0 Table de l'arbre NST arc entrant par contrainte sur i contrainte sur j N i 0 éiéx max ; i mod =1 y min ç jé0 i = x max j = y min ;y min +1 i = x max 0 éjéy max ; j mod =1 E i x min éié0 0 éjéy max ; j mod =1 0 ç iéx max ; i mod =0 y min ç j ç y max ; j 6= 0 x min éié0 y min ç jéy max ; j 6= 0;j mod =0 S i 0 éiéx max ; i mod =1 0 éjç y max i = x max j = y max i = x max y min +1éjé0; j mod =,1 x min éié0 y min éjé0; j mod =,1 x min éié0; i mod =0 j = y max W i i 6= 0 j =0 x min éié0; i mod =,1 j = y min i = x max y min +1éjéy max, 1; j 6= 0;j mod =0 i = x min j 6= 0 Table de l'arbre EST
208 197 arc entrant par contrainte sur i contrainte sur j N i i =0 j 6= 0 i = x min 0 éjéy max ; j mod =0 i 6= 0 j = y max x min éiéx max ; i 6= 0;i mod =0 j = y min i 6= 0 j = y max E i x min ç ié0 y min éjé0; j mod =,1 i = x min 0 éjéy max ; j mod =0 0 éiéx max ; i mod =1 0 éjéy max i = x min j = y min 0 éiéx max, 1; i mod =1 j = y min S i x min ç i ç x max ; i 6= 0 y min éjç 0; j mod =0 x min ç iéx max ; i 6= 0;i mod =0 0 éjéy max W i 0 éiç x max y min éjé0; j mod =,1 i = x max, 1;x max j = y min x min éié0; i mod =,1 j = y min x min éié0; i mod =,1 0 éjéy max Table de l'arbre SST arc entrant par contrainte sur i contrainte sur j N i 0 éiéx max 0 éjéy max ; j mod =1 x min ç ié0; i mod =,1 y min ç jé0 E i i 6= 0 j =0 i = x max j 6= 0 i = x max, 1 j = y min ;y max, 1;y max 0 éiéx max ; i mod =1 j = y max S i 0 éiéx max y min +1éjé0; j mod =,1 0 éiéx max, 1 j = y min +1 0 éiéx max, 1; i mod =0 j = y max x min ç ié0; i mod =,1 0 éjç y max W i x min éiç 0; i mod =0 j 6= 0 0 éiéx max y min +1éjéy max ; j 6= 0;j mod =0 0 éiéx max, 1 j = y min Table de l'arbre WST
209 198 Annexe A. A Table des arcs entrants pour les grilles toriques è4k +èæ è4k +è Pour ce cas on a : x min =,b p p c +1;y min =,b p p c; x max = b p p c; y max = b p p c,1. arc entrant par contrainte sur i contrainte sur j N i i 6= 0 0 ç jé0; j mod =0 i 6= 0;i mod =0 y min éjé0 E i x min ç ié0 0 éjéy max ; j mod =1 0 éiéx max ; i mod =1 j = y max 0 éiéx max ; i mod =1 y min éjé0 i = x max, j = y min i = x max j = y min + S i i =0 j 6= 0 i = x max y min +éjé0; j mod =,1 i 6= 0;i 6= x min +1;i 6= x max, j = y min i 6= 0;i mod =0 j = y max W i 0 éiç x max 0 éjéy max ; j mod =1 x min éié0; i mod =,1 y min éjé0 x min éié0; i mod =,1 j = y max i = x max j = y max i = x min +1 j = y min x max y min éjé0; j mod =0 Table de l'arbre NST arc entrant par contrainte sur i contrainte sur j N i 0 ç iéx max ; i mod =0 j 6= 0 x min éié0 0 éjéy max ; j mod =1 x min éié0; i mod =0 j = y min E i 0 ç iéx max ; i mod =0 j 6= 0 x min éié0 j 6= 0;j mod =0 S i 0 éiç x max ; i mod =1 0 éjç y max x min éié0 y min éjé0; j mod =,1 i = x min +1 j = y min W i i 6= 0 j =0 i = x min j 6= 0 x min éié0; i mod =,1 0 éjç y max Table de l'arbre EST
210 199 arc entrant par contrainte sur i contrainte sur j N i i =0 j 6= 0 i 6= 0 j = y min E i i = x max x min ç ié0 0 éjéy max ; j mod =1 x min ç jé0; j mod =,1 0 éiéx max ; j mod =1 i = x max 0 éjéy max j = y max, 1 S i i 6= 0 y min éj6= 0;j mod =0 i 6= 0;i mod =0 0 éjéy max W i 0 éiç x max y min ç jé0; j mod =,1 x min éié0; i mod =,1 0 éjéy max i = x max 0 éjéy max ; j mod =0 Table de l'arbre SST arc entrant par contrainte sur i contrainte sur j N i x min éié0; i mod =,1 y min ç jé0 i = x min j = y min i = x min 0 éjéy max : j mod =1 0 éiéx max i = x max 0 éjéy max : j mod =1 j = y max, 1 0 éiéx max ; i mod =0 j = y min E i i 6= 0 j =0 i = x min j 6= 0;j mod =0 i = x max j 6= 0;j 6= y min +;j 6= y max, 1 0 éiéx max, ; i mod =1 j = y min S i x min éié0; i mod =,1 0 éjç y max i = x min y min éjé0; j mod =,1 i = x max j = y min + 0 éiéx max y min éjé0; j mod =,1 i = x max, j = y min W i x min éiç 0; i mod =,1 j 6= 0 0 éiéx max j 6= 0;j mod =0 Table de l'arbre WST
Système de diffusion d information pour encourager les PME-PMI à améliorer leurs performances environnementales
Système de diffusion d information pour encourager les PME-PMI à améliorer leurs performances environnementales Natacha Gondran To cite this version: Natacha Gondran. Système de diffusion d information
La voix en images : comment l évaluation objectivée par logiciel permet d optimiser la prise en charge vocale
La voix en images : comment l évaluation objectivée par logiciel permet d optimiser la prise en charge vocale Stéphanie Perriere To cite this version: Stéphanie Perriere. La voix en images : comment l
FPSTAT 2 í La dçecision statistique. 1. Introduction ça l'infçerence. 1
INTRODUCTION ça L'INFçERENCE STATISTIQUE 1. Introduction 2. Notion de variable alçeatoire íprçesentation ívariables alçeatoires discrçetes ívariables alçeatoires continues 3. Reprçesentations d'une distribution
Quelques bases de donnçees d'çetoiles doubles et. Abstract. The increasing proportion of double stars makes necessary
Etoiles Doubles Ecole CNRS de Goutelas XXIII è2000è Editçe par D. Egret, J.-L. Halbwachs & J.M. Hameury Quelques bases de donnçees d'çetoiles doubles et multiples Edouard Oblak Observatoire de Besançcon
Jean-Luc Archimbaud. Sensibilisation à la sécurité informatique.
Sensibilisation à la sécurité informatique Jean-Luc Archimbaud To cite this version: Jean-Luc Archimbaud. Sensibilisation à la sécurité informatique. lieux en France, 1997, pp.17. École
AGROBASE : un système de gestion de données expérimentales
AGROBASE : un système de gestion de données expérimentales Daniel Wallach, Jean-Pierre RELLIER To cite this version: Daniel Wallach, Jean-Pierre RELLIER. AGROBASE : un système de gestion de données expérimentales.
Chapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Dessin assisté par ordinateur en lycée professionnel
Dessin assisté par ordinateur en lycée professionnel Bernard Dauga To cite this version: Bernard Dauga. Dessin assisté par ordinateur en lycée professionnel. Bulletin de l EPI (Enseignement Public et Informatique),
Exécution des instructions machine
Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]
Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence
Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence Gwenole Fortin To cite this version: Gwenole Fortin. Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence. 2006.
statique J. Bertrand To cite this version: HAL Id: jpa-00237017 https://hal.archives-ouvertes.fr/jpa-00237017
Quelques théorèmes généraux relatifs à l électricité statique J. Bertrand To cite this version: J. Bertrand. Quelques théorèmes généraux relatifs à l électricité statique. J. Phys. Theor. Appl., 1874,
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Initiation au HPC - Généralités
Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours
Compte-rendu de Hamma B., La préposition en français
Compte-rendu de Hamma B., La préposition en français Badreddine Hamma To cite this version: Badreddine Hamma. Compte-rendu de Hamma B., La préposition en français. Revue française de linguistique appliquée,
Présentation du modèle OSI(Open Systems Interconnection)
Présentation du modèle OSI(Open Systems Interconnection) Les couches hautes: Responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Couches basses:
La voix sur IP n'est pas un gadget, et présente de réels bénéfices pour l'entreprise.
VOIX SUR IP - VoIP Comprendre la voix sur IP et ses enjeux La voix sur IP n'est pas un gadget, et présente de réels bénéfices pour l'entreprise. Introduction La voix sur IP (Voice over IP) est une technologie
distribution quelconque Signe 1 échantillon non Wilcoxon gaussienne distribution symétrique Student gaussienne position
Arbre de NESI distribution quelconque Signe 1 échantillon distribution symétrique non gaussienne Wilcoxon gaussienne Student position appariés 1 échantillon sur la différence avec référence=0 2 échantillons
Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
NOTIONS DE RESEAUX INFORMATIQUES
NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
Alchin Couderc Flambard TBSEID 2
Alchin Couderc Flambard Lycée Charles Blanc TBSEID 2 2008/2009 Depuis le début de notre formation en électronique en lycée professionnel nous avons vu plusieurs domaines d'intervention tel que le brun,
Parallélisme et Répartition
Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique [email protected] web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre
Ebauche Rapport finale
Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide
Guide sur l'utilisation du logiciel S-PLUS Normand Ranger CIRANO Centre Interuniversitaire de Recherche en ANalyse des Organisations 2020 rue University, 25e çetage Montrçeal, Quçe. H3A 2A5 æ Guide è 7-Version
Métriques de performance pour les algorithmes et programmes parallèles
Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and
Conception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Réseaux grande distance
Chapitre 5 Réseaux grande distance 5.1 Définition Les réseaux à grande distance (WAN) reposent sur une infrastructure très étendue, nécessitant des investissements très lourds. Contrairement aux réseaux
Sur le grossissement des divers appareils pour la mesure des angles par la réflexion d un faisceau lumineux sur un miroir mobile
Sur le grossissement des divers appareils pour la mesure des angles par la réflexion d un faisceau lumineux sur un miroir mobile W. Lermantoff To cite this version: W. Lermantoff. Sur le grossissement
modélisation solide et dessin technique
CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir
Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.
Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis
Program Analysis and Transformation: From the Polytope Model to Formal Languages
Program Analysis and Transformation: From the Polytope Model to Formal Languages Albert Cohen To cite this version: Albert Cohen. Program Analysis and Transformation: From the Polytope Model to Formal
Contributions à l expérimentation sur les systèmes distribués de grande taille
Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte
Le chiffre est le signe, le nombre est la valeur.
Extrait de cours de maths de 6e Chapitre 1 : Les nombres et les opérations I) Chiffre et nombre 1.1 La numération décimale En mathématique, un chiffre est un signe utilisé pour l'écriture des nombres.
Les Champs Magnétiques
Les Champs Magnétiques Guillaume Laurent To cite this version: Guillaume Laurent. Les Champs Magnétiques. École thématique. Assistants de prévention, Paris, France. 2014, pp.31. HAL Id:
Systèmes et traitement parallèles
Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI [email protected] 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications
Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)
Base de l'informatique Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Généralité Comment fonctionne un ordinateur? Nous définirons 3 couches Le matériel
REALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Guide de connexion à. RENAULT SA et PSA PEUGEOT CITROËN. via ENX
Guide de connexion à RENAULT SA et PSA PEUGEOT CITROËN via ENX Mise en œuvre de votre raccordement à RENAULT SA et/ou PSA PEUGEOT CITROËN via ENX Version française du 31/10/2014 1 Table des matières 1
Structure et fonctionnement d'un ordinateur : hardware
Structure et fonctionnement d'un ordinateur : hardware Introduction : De nos jours, l'ordinateur est considéré comme un outil indispensable à la profession de BDA, aussi bien dans les domaines de la recherche
Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. [email protected]. white-paper-cluster_fr.sxw, Version 74 Page 1
Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. [email protected] white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High
L indice de SEN, outil de mesure de l équité des systèmes éducatifs. Une comparaison à l échelle européenne
L indice de SEN, outil de mesure de l équité des systèmes éducatifs. Une comparaison à l échelle européenne Sophie Morlaix To cite this version: Sophie Morlaix. L indice de SEN, outil de mesure de l équité
Cours des réseaux Informatiques (2010-2011)
Cours des réseaux Informatiques (2010-2011) Rziza Mohammed [email protected] Supports Andrew Tanenbaum : Réseaux, cours et exercices. Pascal Nicolas : cours des réseaux Informatiques, université d Angers.
Microsoft Windows NT Server
Microsoft Windows NT Server Sommaire : INSTALLATION DE WINDOWS NT SERVER... 2 WINNT.EXE OU WINNT32.EXE... 2 PARTITION... 2 FAT OU NTFS... 2 TYPE DE SERVEUR... 2 Contrôleur principal de Domaine (CPD)....
La Solution Crypto et les accès distants
La Solution Crypto et les accès distants Introduction L'objectif de ce document est de présenter les possibilités d'accès distants à La Solution Crypto. Cette étude s'appuie sur l'exemple d'un groupement
Par combien de zéros se termine N!?
La recherche à l'école page 79 Par combien de zéros se termine N!? par d es co llèg es An dré Do ucet de Nanterre et Victor Hugo de Noisy le Grand en seignants : Danielle Buteau, Martine Brunstein, Marie-Christine
Éléments d'architecture des ordinateurs
Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances
Se préparer au DELF B2
Se préparer au DELF B2 Compréhension écrite 1 - Quels sont les noms et professions des auteurs du livre «Génération téléphone»? 2 - Que pensent-ils de l utilisation du téléphone? 3 Quels sont les pourcentages
Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.
TD réseau - Réseau : interconnexion de réseau Réseau : Interconnexion de réseaux, routage et application de règles de filtrage. Un réseau de grande importance ne peut pas seulement reposer sur du matériel
Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique
Services OSI Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique 59 SERVICES "APPLICATION" Architecture spécifique : ALS (Application Layer
Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases
Master d'informatique 1ère année Réseaux et protocoles Architecture : les bases Bureau S3-203 Mailto : [email protected] D'après un cours de Jean Saquet Réseaux physiques LAN : Local Area Network
Peut-on perdre sa dignité?
Peut-on perdre sa dignité? Eric Delassus To cite this version: Eric Delassus. Peut-on perdre sa dignité?. 2013. HAL Id: hal-00796705 https://hal.archives-ouvertes.fr/hal-00796705 Submitted
Tout savoir sur le matériel informatique
Tout savoir sur le matériel informatique Thème de l exposé : Les Processeurs Date : 05 Novembre 2010 Orateurs : Hugo VIAL-JAIME Jérémy RAMBAUD Sommaire : 1. Introduction... 3 2. Historique... 4 3. Relation
IV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Bibliographie. Gestion des risques
Sécurité des réseaux informatiques Bernard Cousin Université de Rennes 1 Sécurité des réseaux informatiques 1 Introduction Risques Attaques, services et mécanismes Les attaques Services de sécurité Mécanismes
Les déterminants du volume d aide professionnelle pour. reste-à-charge
Les déterminants du volume d aide professionnelle pour les bénéficiaires de l APA à domicile : le rôle du reste-à-charge Cécile Bourreau-Dubois, Agnès Gramain, Helen Lim, Jingyue Xing, Quitterie Roquebert
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Rapport d activité. Mathieu Souchaud Juin 2007
Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix
Budget Constrained Resource Allocation for Non-Deterministic Workflows on a IaaS Cloud
Budget Constrained Resource Allocation for Non-Deterministic Workflows on a IaaS Cloud Eddy Caron, Frédéric Desprez, Adrian Muresan, Frédéric Suter To cite this version: Eddy Caron, Frédéric Desprez, Adrian
Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:
Travaux Pratiques 3. IFT 1002/IFT 1005. Structure Interne des Ordinateurs. Département d'informatique et de génie logiciel. Université Laval. Hiver 2012. Prof : Bui Minh Duc. Tous les exercices sont indépendants.
La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)
La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA) I. L'intérêt de la conversion de données, problèmes et définitions associés. I.1. Définitions:
LE PROBLEME DU PLUS COURT CHEMIN
LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs
Calculons avec Albert!
Calculons avec Albert! Par : Guy Lefebvre, 1257 rue Principale, St-Prime, G8J 1V2, 418-251-2170 Guillaume Rainville, 610 8 e rue, St-Prime, G8J 1P6, 418-251-8290 Résumé : Lefebvre G. et Rainville G., 2001,
Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)
1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général
DSCG : UE5 - Management des Systèmes d'information CARTE HEURISTIQUE...1 ARCHITECTURE PHYSIQUE...2
Table des matières CARTE HEURISTIQUE...1 ARCHITECTURE PHYSIQUE...2 COMMUTATEUR... 2 ROUTEUR... 2 FIREWALL... 2 VLAN... 2 Types de VLAN :...2 Intérêt des VLAN...3 VPN... 3 DMZ... 3 DECT... 3 DATACENTER...
Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30
Plan du Travail Chapitre 1: Internet et le Web : Définitions et historique Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015
Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire
Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire Stéphanie Demonchaux To cite this version: Stéphanie Demonchaux. Étude des formes de pratiques de la gymnastique
Comptabilité à base d activités (ABC) et activités informatiques : une contribution à l amélioration des processus informatiques d une banque
Comptabilité à base d activités (ABC) et activités informatiques : une contribution à l amélioration des processus informatiques d une banque Grégory Wegmann, Stephen Nozile To cite this version: Grégory
1.Introduction - Modèle en couches - OSI TCP/IP
1.Introduction - Modèle en couches - OSI TCP/IP 1.1 Introduction 1.2 Modèle en couches 1.3 Le modèle OSI 1.4 L architecture TCP/IP 1.1 Introduction Réseau Télécom - Téléinformatique? Réseau : Ensemble
1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :
GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours
Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)
Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02) Ne rien livrer au hasard, c est économiser du travail Pont Sainte Maxence(O C est quoi USB? Comment ça marche? Les standards? La technique en détail
La polarisation des transistors
La polarisation des transistors Droite de charge en continu, en courant continu, statique ou en régime statique (voir : le transistor) On peut tracer la droite de charge sur les caractéristiques de collecteur
L utilisation d un réseau de neurones pour optimiser la gestion d un firewall
L utilisation d un réseau de neurones pour optimiser la gestion d un firewall Réza Assadi et Karim Khattar École Polytechnique de Montréal Le 1 mai 2002 Résumé Les réseaux de neurones sont utilisés dans
La continuité de service
La continuité de service I INTRODUCTION Si la performance est un élément important de satisfaction de l'utilisateur de réseau, la permanence de la disponibilité des ressources l'est encore davantage. Ici
Transmission d informations sur le réseau électrique
Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en
Cours n 12. Technologies WAN 2nd partie
Cours n 12 Technologies WAN 2nd partie 1 Sommaire Aperçu des technologies WAN Technologies WAN Conception d un WAN 2 Lignes Louées Lorsque des connexions dédiées permanentes sont nécessaires, des lignes
Convertisseurs statiques d'énergie électrique
Convertisseurs statiques d'énergie électrique I. Pourquoi des convertisseurs d'énergie électrique? L'énergie électrique utilisée dans l'industrie et chez les particuliers provient principalement du réseau
Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif.
Un SIG collaboratif pour la recherche historique Partie 1 : Naissance et conception d un système d information géo-historique collaboratif Claire-Charlotte Butez, Francesco Beretta To cite this version:
ELP 304 : Électronique Numérique. Cours 1 Introduction
ELP 304 : Électronique Numérique Cours 1 Introduction Catherine Douillard Dépt Électronique Les systèmes numériques : généralités (I) En électronique numérique, le codage des informations utilise deux
CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280
FR9704668 PC CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES Jean GASSINO, Jean-Yves HENRY eci Rapport IPSN/Département d'évaluation de sûreté N 280 Octobre 1996 INSTITUT DE PROTECTION
ORACLE TUNING PACK 11G
ORACLE TUNING PACK 11G PRINCIPALES CARACTÉRISTIQUES : Conseiller d'optimisation SQL (SQL Tuning Advisor) Mode automatique du conseiller d'optimisation SQL Profils SQL Conseiller d'accès SQL (SQL Access
Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI
Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI Jean-Pierre Dedieu To cite this version: Jean-Pierre Dedieu. Les intermédiaires privés dans les finances royales
Conception de réseaux de télécommunications : optimisation et expérimentations
Conception de réseaux de télécommunications : optimisation et expérimentations Jean-François Lalande Directeurs de thèse: Jean-Claude Bermond - Michel Syska Université de Nice-Sophia Antipolis Mascotte,
MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN
MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN 1. Introduction Le règlement (UE) n 610/2013 du 26 juin 2013 a modifié la convention d'application de l'accord de Schengen,
Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Matériel & Logiciels (Hardware & Software)
CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique
PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 %
PFE Télécommunications Pré-rapport à l'issue des 6 premières semaines de stage!"!"#$%&' ()*()!")+")# (#),()-,)*)"-./0 1 ()*()!")+-)# % 23 &0 )14) 56 7$8797%77:7' '72 Page 1 sur 5 Contexte Les centres de
TP 10.3.5a Notions de base sur le découpage en sous-réseaux
TP 10.3.5a Notions de base sur le découpage en sous-réseaux Objectif Identifier les raisons pour lesquelles utiliser un masque de sous-réseau. Faire la distinction entre un masque de sous-réseau par défaut
Démontage d'un ordinateur
Espaces multimédias Communauté de Communes Moyenne Vilaine et Semnon : Démontage d'un ordinateur 1- A quoi sert-il de démonter son ordinateur? A) Par simple curiosité B) Pour nettoyer C) Pour remplacer
Programmation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
Routage Statique. Protocoles de Routage et Concepts. Version 4.0. 2007 Cisco Systems, Inc. All rights reserved. Cisco Public 1
Routage Statique Protocoles de Routage et Concepts Version 4.0 1 Objectifs Définir le rôle général d'un routeur dans les réseaux. Décrire les réseaux directement connectés et les différentes interfaces
Algorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
Big Data et Graphes : Quelques pistes de recherche
Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université
la virtualisation pour quoi faire?
J. F. DAVID Ingénieur Commercial Agence Paris Industrie de Base et de Transformation 24 Mai 1975 la virtualisation pour quoi faire? "Etre transparent, c'est exister et ne pas se voir. Etre virtuel, c'est
Evolution de l infrastructure transport
Les réseaux optiques I Les réseaux optiques Jean-Paul GAUTIER, [email protected] CNRS / UREC Une des grandes tendances de la fin des années 90 est la demande croissante en bande passante des réseaux d entreprises
TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES
TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2
LES RESEAUX VIRTUELS VLAN
LES RESEAUX VIRTUELS VLAN PLAN I. Introduction II. Les avantages d un VLAN III. Le partitionnement du réseau sans les VLAN IV. La technique des VLAN V. VLAN de niveau 1 VI. VLAN de niveau 2 VII. VLAN de
Création de Sous-Formulaires
Création de Sous-Formulaires Révision 1.01 du 02/01/04 Réalisé avec : OOo 1.1.0 Plate-forme / Os : Toutes Distribué par le projet Fr.OpenOffice.org Table des Matières 1 But de ce how-to...3 2 Pré-requis...3
Les réseaux cellulaires
Les réseaux cellulaires Introduction Master 2 Professionnel STIC-Informatique Module RMHD 1 Introduction Les réseaux cellulaires sont les réseaux dont l'évolution a probablement été la plus spectaculaire
