• Aucun résultat trouvé

P ARALL ELISATION DES M ´ ETHODES IT ´ ERATIVES ´

LIN EAIRES CREUX ´

Algorithme 7 : Multiplication matrice-vecteur avec le format HYB

2.3/ P ARALL ELISATION DES M ´ ETHODES IT ´ ERATIVES ´

L’adaptation des solveurs it ´eratifs aux architectures des calculateurs parall `eles est devenue une n ´ecessit ´e imp ´erieuse pour la r ´esolution des syst `emes lin ´eaires creux de taille toujours croissante. En effet, les calculateurs parall `eles fournissent les ressources et la puissance de calcul n ´ecessaires pour une r ´esolution haute performance de grands syst `emes lin ´eaires creux.

La parall ´elisation d’un solveur it ´eratif sur une plateforme parall `ele, comportant p pro-cesseurs, requiert tout d’abord un partitionnement des donn ´ees du syst `eme lin ´eaire `a r ´esoudre sur l’ensemble des p processeurs. Le partitionnement de donn ´ees consiste `a at-tribuer aux diff ´erents processeurs des portions, plus ou moins ´egales, des vecteurs et des matrices impliqu ´es dans le solveur it ´eratif. Par la suite, tous les processeurs proc `edent, en parall `ele, `a la r ´esolution de leurs parties du syst `eme lin ´eaire, en appliquant les it ´erations d’une m ˆeme m ´ethode it ´erative mais sur des donn ´ees diff ´erentes. Toutefois, les calculs locaux des diff ´erents processeurs sont li ´es par des d ´ependances de donn ´ees, qui per-mettent la r ´esolution du syst `eme global. A cet effet, des points de synchronisation doivent ˆetre mis en place dans un solveur it ´eratif parall `ele, lors desquels des donn ´ees partag ´ees sont ´echang ´ees entre des processeurs voisins.

Dans ce document, nous nous int ´eressons `a la parall ´elisation des m ´ethodes it ´eratives sur des plateformes de calcul parall `ele `a m ´emoire distribu ´ee. Donc, lors des points de synchronisation, les d ´ependances de donn ´ees sont g ´er ´ees par des communications `a passage de messages entre les processeurs. Les algorithmes parall `eles des m ´ethodes it ´eratives peuvent ˆetre classifi ´es selon la nature synchrone ou asynchrone de leurs it ´erations ainsi que celle de leurs communications [9].

2.3.1/ M ´ETHODES ITERATIVES´ SISC

Les solveurs it ´eratifs parall `eles les plus classiques sont ceux dits `a It ´erations Syn-chrones et Communications SynSyn-chrones (SISC). Le synchronisme des it ´erations d ´ecline du fait que chaque processeur ne peut commencer le calcul de sa nouvelle it ´eration que lorsqu’il rec¸oit, de la part de tous ses voisins, les donn ´ees partag ´ees calcul ´ees `a l’it ´eration pr ´ec ´edente. Ainsi, tous les processeurs commencent le calcul de la m ˆeme it ´eration au m ˆeme temps et effectuent les ´echanges de donn ´ees partag ´ees `a la fin de chaque it ´eration par le biais des communications globales synchrones.

La figure 2.5 montre un sch ´ema d’ex ´ecution d’un algorithme parall `ele SISC. Le syn-chronisme des it ´erations des solveurs it ´eratifs parall `eles SISC impliquent, exactement, le m ˆeme nombre d’it ´erations que leurs homologues en s ´equentiel. Par cons ´equent, les conditions de leur convergence sont faciles `a d ´eterminer, vu qu’elles sont identiques `a celles des solveurs it ´eratifs s ´equentiels. Cependant, l’utilisation des communications synchrones peut p ´enaliser les performances de ce type d’algorithmes. En fait, les com-munications synchrones engendrent, souvent, des temps d’inactivit ´e des processeurs (les espaces blancs entre deux it ´erations calcul ´ees par un m ˆeme processeur dans la fi-gure 2.5), dues soit `a l’attente pour un processeur (ou des processeurs) qu’il soit pr ˆet pour communiquer ou `a la vitesse lente des communications synchrones elles-m ˆemes dans la plateforme de calcul parall `ele.

Processeur i

Processeur j

Temps

Itération 1 Itération 2 Itération 3 Itération 4 Itération 5 Itération 6

FIGURE2.5 – Exemple de sch ´ema d’ex ´ecution d’un solveur it ´eratif parall `ele SISC avec deux processeurs

2.3.2/ M ´ETHODES ITERATIVES´ SIAC

Un autre type de solveurs it ´eratifs parall `eles a ´et ´e conc¸u pour am ´eliorer les per-formances de r ´esolution sur les plateformes `a r ´eseau d’interconnexion lent et/ou h ´et ´erog `ene. Ce sont les solveurs `a It ´erations Synchrones et Communications Asyn-chrones (SIAC). Il permettent de r ´eduire les temps d’inactivit ´e des processeurs entre deux it ´erations successives, en utilisant des communications asynchrones et cela, tout en maintenant le principe des it ´erations synchrones. En effet, comme les algorithmes SISC, un processeur attend toujours la r ´eception de toutes les donn ´ees partag ´ees, cal-cul ´ees par ses voisins `a l’it ´eration pr ´ec ´edente, avant de commencer les calcal-culs de la nouvelle it ´eration. Toutefois, les communications synchrones globales utilis ´ees, pour les ´echanges de donn ´ees partag ´ees, dans les algorithmes SISC sont remplac ´ees par des envois asynchrones et des r ´eceptions bloquantes.

La figure 2.6 montre un exemple de sch ´ema d’ex ´ecution d’un solveur it ´eratif parall `ele SIAC. Les conditions de convergence des solveurs it ´eratifs SIAC sont identiques `a ceux des solveurs it ´eratifs SISC et ainsi, `a ceux des solveurs it ´eratifs s ´equentiels. Cependant, les communications asynchrones permettent d’effectuer des chevauchements entre les calculs et les ´echanges de donn ´ees. En fait, un processeur peut envoyer les donn ´ees partag ´ees `a son voisin d `es qu’elles soient pr ˆetes `a ˆetre utilis ´ees dans les calculs de la nouvelle it ´eration, ce qui permet de r ´eduire les temps d’attente de r ´eception de donn ´ees entre deux it ´erations successives.

Temps Processeur j Processeur i

Itération 1 Itération 2 Itération 3 Itération 4 Itération 5 Itération 6

FIGURE 2.6 – Exemple de sch ´ema d’ex ´ecution d’un solveur it ´eratif parall `ele SIAC avec deux processeurs

2.3.3/ M ´ETHODES ITERATIVES´ AIAC

Les m ´ethodes it ´eratives parall `eles synchrones de type SISC ou SIAC ont ´et ´e, large-ment, utilis ´ees pour la r ´esolution de grands syst `emes lin ´eaires creux. Elles sont, relative-ment, faciles `a mettre en œuvre et pr ´esentent des taux de convergence, plus ou moins, rapides selon la m ´ethode utilis ´ee. N ´eanmoins, le synchronisme de leurs it ´erations et/ou de leurs communications p ´enalise s ´ev `erement les performances de r ´esolution sur des grilles de calcul `a clusters g ´eographiquement distants. En effet, ce type d’architectures parall `eles est souvent caract ´eris ´e par la latence forte de ses liens de communications (plus pr ´ecis ´ement les liens inter-clusters) et par l’h ´et ´erog ´en ´eit ´e de ses ressources.

Les solveurs it ´eratifs parall `eles conc¸us pour am ´eliorer les performances de r ´esolution sur les plateformes `a ressources h ´et ´erog `enes et g ´eographiquement distantes sont ceux dits `a It ´erations Asynchrones et Communications Asynchrones (AIAC). Dans ce type de solveurs parall `eles, chaque processeur ex ´ecute ses propres it ´erations sans prendre en compte la progression de l’ex ´ecution de celles des autres processeurs. En effet, un pro-cesseur passe d’une it ´eration `a l’autre sans attendre l’arriv ´ee des nouvelles donn ´ees partag ´ees mises `a jour par ses voisins. Il utilise les donn ´ees locales et les derni `eres versions des donn ´ees partag ´ees disponibles au d ´ebut du calcul de chaque it ´eration. De plus, pour assurer l’asynchronisme des it ´erations, les solveurs it ´eratifs AIAC utilisent des communications asynchrones de type envois et r ´eceptions non bloquants.

La figure 2.7 pr ´esente un sch ´ema d’ex ´ecution d’un solveur it ´eratif parall `ele de type AIAC. Nous pouvons remarquer que l’asynchronisme des it ´erations et des communica-tions permet aux processeurs d’ ´eviter les temps d’inactivit ´e et d’ex ´ecuter des it ´eracommunica-tions diff ´erentes `a un moment donn ´e de la r ´esolution. De ce fait, certains processeurs peuvent ˆetre plus rapides dans leurs calculs et effectuer plus d’it ´erations que les autres. Cepen-dant, les solveurs it ´eratifs asynchrones AIAC ont des conditions de convergence plus strictes et effectuent plus d’it ´erations que les solveurs synchrones SISC et SIAC. Par cons ´equent, ils n ´ecessitent une analyse plus ´elabor ´ee pour d ´eterminer les bons indica-teurs de convergence.

Temps Processeur j Processeur i

FIGURE 2.7 – Exemple de sch ´ema d’ex ´ecution d’un solveur it ´eratif parall `ele AIAC avec deux processeurs

2.4/ C

ONCLUSION

Dans ce chapitre, nous avons commenc ´e par pr ´esenter les m ´ethodes de r ´esolution de syst `emes lin ´eaires creux. Premi `erement, nous avons abord ´e l’analyse des m ´ethodes directes qui permettent de trouver la solution exacte en un nombre d’op ´erations

´el ´ementaires fini. Cependant, pour la r ´esolution de syst `emes lin ´eaires creux, nous avons mis en ´evidence l’existence d’une op ´eration de remplissage `a l’ ´etape de factorisation des matrices creuses. L’op ´eration de remplissage est tr `es co ˆuteuse en termes de temps d’ex ´ecution et d’espace m ´emoire et, plus pr ´ecis ´ement, pour les matrices creuses de grande taille. Ensuite, nous avons d ´ecrit les m ´ethodes it ´eratives qui permettent de calcu-ler une solution approximative en ex ´ecutant des it ´erations successives d’un m ˆeme bloc d’op ´erations ´el ´ementaires. Nous avons cit ´e trois grandes familles de m ´ethodes it ´eratives `a savoir : les m ´ethodes stationnaires, les m ´ethodes non stationnaires et les m ´ethodes multigrilles. Celles-ci sont plus adapt ´ees `a la r ´esolution de syst `emes lin ´eaires de grande taille et plus faciles `a parall ´eliser.

Puis, nous avons ´etudi ´e diff ´erentes structures de donn ´ees des matrices creuses en m ´emoire. Elles permettent un stockage optimis ´e des ´el ´ements non nuls des matrices creuses, de fac¸on `a ce que les acc `es en lecture/ ´ecriture `a la m ´emoire soient faciles `a effectuer. Par cons ´equence, elles permettent d’am ´eliorer les performances de calcul des m ´ethodes de r ´esolution. Enfin, nous avons donn ´e les principaux points cl ´es de la pa-rall ´elisation des m ´ethodes it ´eratives sur les plateformes de calcul papa-rall `ele `a m ´emoire dis-tribu ´ee, afin de r ´esoudre des syst `emes lin ´eaires creux `a tr `es grande ´echelle. Nous avons pr ´esent ´e trois diff ´erentes m ´ethodes it ´eratives parall `eles, classifi ´ees selon la nature syn-chrone ou asynsyn-chrone de leurs it ´erations et/ou de leurs communications. Les m ´ethodes synchrones sont plus efficaces sur des petites grappes homog `enes ayant des liens de communications rapides, alors que les m ´ethodes asynchrones offrent de meilleures per-formances sur les plateformes `a grappes h ´et ´erog `enes et g ´eographiquement distantes.

Dans la suite de ce document, nous nous int ´eresserons `a la parall ´elisation des m ´ethodes it ´eratives sur des grappes de calcul ´equip ´ees de cartes graphiques GPUs. Nous d ´ecrirons les principaux points cl ´es des algorithmes parall `eles de quelques m ´ethodes it ´eratives, les plus utilis ´ees, pour la r ´esolution de syst `emes lin ´eaires ou non lin ´eaires creux. Ensuite, nous effectuerons une comparaison de performance entre les solveurs it ´eratifs parall `eles mis en œuvre sur les grappes de GPUs et les m ˆemes sol-veurs mis en œuvre sur les grappes CPUs.