• Aucun résultat trouvé

M ´ ETHODE A DEUX NIVEAUX AVEC ` GMRES

M ´ ETHODES PARALL ELES ` A DEUX `

5.2/ M ´ ETHODE A DEUX NIVEAUX AVEC ` GMRES

Dans cette section, nous nous int ´eressons `a la r ´esolution de syst `emes lin ´eaires creux par une m ´ethode de multi-d ´ecomposition `a deux niveaux. Pour cela, nous proposons des mises en œuvre CPU et GPU des algorithmes `a deux niveaux, synchrones et asyn-chrones, utilisant la m ´ethode it ´erative GMRES pour la r ´esolution des sous-syst `emes lin ´eaires issus de la multi-d ´ecomposition. De plus, `a la diff ´erence de ce qui est men-tionn ´e dans la section 5.1, la r ´esolution de chaque sous-syst `eme lin ´eaire est effectu ´ee en parall `ele par un ensemble de processeurs.

5.2.1/ FORMALISME MATHEMATIQUE´

Nous appliquons la m ´ethode de multi-d ´ecomposition Jacobi par blocs (multi-d ´ecomposition sans recouvrement) sur la matrice creuse A (multi-du syst `eme lin ´eaire `a r ´esoudre (5.1). Soient n la taille du syst `eme lin ´eaire creux et L le nombre de calculateurs parall `eles (chacun compos ´e d’un ou plusieurs processeurs). La multi-d ´ecomposition du syst `eme lin ´eaire est d ´efinie comme suit :

         A = [A1, . . . , AL], A ∈ Rn×n, x = [X1, . . . , XL], x ∈ Rn, b = [B1, . . . , BL], b ∈ Rn, (5.2)

o `u, pour tout l ∈ {1, . . . , L}, Al est un bloc rectangulaire de taille (nl × n) et Xl et Bl sont des blocs de vecteurs de taille nl, tel queP

lnl = n. Dans ce cas, nous utilisons un parti-tionnement de donn ´ees ligne par ligne sans recouvrement, de fac¸on `a ce que des lignes successives de la matrice creuse A et des deux vecteurs x et b soient attribu ´ees `a un calculateur parall `ele. Donc, le format par blocs du syst `eme lin ´eaire (5.1) peut ˆetre d ´efini

comme suit : ∀l ∈ {1, . . . , L}, l−1 X i=1 AliXi+ AllXl+ L X i=l+1 AliXi = Bl, (5.3) o `u Ali est un bloc de taille (nl × ni) de la matrice rectangulaire Al, Xi , Xl est un sous-vecteur de taille ni du vecteur solution x etP

i<lni+P

i>lni+ nl = n, pour tout l ∈ {1, . . . , L} et i ∈ {1, . . . , l − 1, l + 1, . . . , L}. Par cons ´equent, chacun des L calculateurs parall `eles est responsable de la r ´esolution du syst `eme lin ´eaire creux suivant :

             AllXl = Yl, tel que Yl = BlL X i=1,i,l AliXi, (5.4)

o `u Xi, i ∈ {1, . . . , L} et i , l, repr ´esentent les d ´ependances de donn ´ees entre le calculateur parall `ele l et ses voisins.

5.2.2/ MISE EN ŒUVRE PARALLELE`

La r ´esolution parall `ele du syst `eme lin ´eaire par blocs (5.4), pour tout l ∈ {1, . . . , L}, est effectu ´ee par une m ´ethode `a deux niveaux utilisant la m ´ethode it ´erative de Krylov GMRES. En effet, chaque syst `eme lin ´eaire issu de la multi-d ´ecomposition est r ´esolu en parall `ele avec la m ´ethode GMRES par l’ensemble des processeurs d’un calculateur parall `ele. Avant de commencer la r ´esolution, les donn ´ees de chaque syst `eme lin ´eaire l sont partitionn ´ees entre les processeurs du calculateur parall `ele comme suit :

– (Ali)j un bloc rectangulaire de taille (nl

p × ni)de la matrice Ali, pour tout i ∈ {1, . . . , L}, – (Xl)jun sous-vecteur solution de taille nl

p,

– (Bl)jun sous-vecteur second membre de taille nl

p.

o `u j ∈ {1, . . . , p} et p est le nombre de processeurs sur le calculateur parall `ele l.

Dans l’algorithme 15, nous d ´ecrivons les principaux points cl ´es de la m ´ethode `a deux niveaux avec GMRES. Cet algorithme est ex ´ecut ´e en parall `ele par tous les processeurs des L calculateurs parall `eles. Tout d’abord, chaque processeur calcule le vecteur se-cond membre Y du syst `eme lin ´eaire locale `a r ´esoudre (ligne 6 de l’algorithme 15) en fonction du sous-vecteur local B, des blocs de matrice hors diagonaux Ao f f diaget le sous-vecteur Xextern partag ´e avec les processeurs des calculateurs parall `eles distants (voir la formule (5.4)), tels que pour tout i ∈ {1, . . . , L} et i , l :

             B ∈ Rnlp, Ao f f diag= [Ali], Ali∈ Rnlp×ni, Xextern= [Xi], Xi ∈ Rnlp.

Ensuite, chaque calculateur parall `ele l proc `ede `a la r ´esolution it ´erative de son sous-syst `eme lin ´eaire creux local AllXl = Yl (ligne 7), issu de l’op ´eration de multi-d ´ecomposition, inmulti-d ´epenmulti-damment multi-de celles multi-des autres sous-syst `emes lin ´eaires. Pour cela, l’ensemble des p processeurs d’un calculateur l ex ´ecutent l’algorithme parall `ele de la m ´ethode GMRES pr ´econditionn ´ee (voir section 3.3.1). Enfin, apr `es chaque it ´eration ex-terne (ou `a la fin de la r ´esolution du syst `eme lin ´eaire local), les p processeurs ´echangent les valeurs de leurs solutions locales Xlocavec les processeurs des calculateurs parall `eles distants (ligne 8). Les ´echanges de donn ´ees sont effectu ´es par passage de messages

Algorithme 15 : Algorithme de la m ´ethode `a deux niveaux avec GMRES pr ´econditionn ´ee Entr ´ees : Adiag(matrice diagonale),

Ao f f diag (matrice hors diagonale),

B(vecteur second membre),

Xintern (vecteur solution partag ´e au sein du m ˆeme calculateur),

Xextern (vecteur solution partag ´e avec les calculateurs distants),

M(matrice de pr ´econditionnement),

εintern(seuil de tol ´erance pour les it ´erations internes),

εextern(seuil de tol ´erance pour les it ´erations externes),

MaxIterintern(nombre maximum d’it ´erations internes), MaxIterextern(nombre maximum d’it ´erations externes), m(nombre d’it ´erations pour le processus d’Arnoldi)

Sorties : Xloc(vecteur solution local) Initialiser les valeurs du vecteur Xloc;

1

conv ← f aux;

2

k ← 0;

3

tant que ¬conv faire 4

Z ← Xloc;

5

Y ← M−1(B − Ao f f diag× Xextern);

6

GMRES Parallele(Adiag, Y, Xloc, Xintern, M, εintern, MaxIterextern, m);

7

Echanger Donnees Externes(Xloc, Xextern);

8

Err ← kZ − Xlock;

9

k ← k + 1;

10

conv ←Convergence(Err, εextern, k, MaxIterextern);

11 fin 12

en utilisant les routines de communication MPI non-bloquantes : MPI_Isend() pour les envois et MPI_Irecv() pour les r ´eceptions. De plus, dans la version synchrone, nous utilisons la barri `ere de synchronisation MPI_Waitall(). Par contre, dans la version asyn-chrone, nous utilisons la routine MPI_Test() qui permet `a un processeur de tester la terminaison de l’op ´eration d’envoi ou de r ´eception d’un message sans qu’il soit mis en ´etat bloquant.

La convergence de l’algorithme 15 est calcul ´ee en fonction du nombre des it ´erations externes k et la valeur maximale de l’erreur absolue entre deux solutions Xk et Xk+1

trouv ´ees `a des it ´erations successives k et k + 1 : Err = kXk− Xk+1k.

Dans la version synchrone, la convergence globale est d ´etect ´ee lorsque l’erreur maxi-male, MaxErr, est suffisamment petite et/ou le nombre maximum des it ´erations externe est atteint :

AllReduce(err, MaxErr, MAX)

si (MaxErr < εextern) ou (k ≥ MaxIterextern) alors conv ← vrai

o `u la fonction AllReduce() est mise en œuvre avec la routine MPI de r ´eduction MPI_Allreduce() qui permet de trouver la valeur maximale MaxErr parmi toutes les

P1 P2 P3 P4 P5 P1 P2 P3 P2 Calculateur 1 Calculateur 3 Calculateur 2 P3 P1

FIGURE5.2 – Exemple de connexion de trois calculateurs parall `eles.

valeurs Err calcul ´ees par les calculateurs parall `eles. Par contre, dans la version asyn-chrone, la convergence globale est d ´etect ´ee lorsque les calculateurs parall `eles ont tous converg ´e localement. En fait, un processeur maˆıtre est d ´esign ´e sur chaque calculateur parall `ele, par exemple le processeur de rang 1. De plus, tous les maˆıtres des L cal-culateurs parall `eles sont reli ´es entre eux par une architecture en anneau fictive (voir fi-gure 5.2). Ensuite, durant la r ´esolution du syst `eme lin ´eaire (5.1), un jeton de type bool ´een circule autour de cette architecture, dans une seule direction, d’un processeur maˆıtre `a un autre, tant que la convergence globale n’est pas atteinte. Donc, en d ´emarrant du pro-cesseur maˆıtre du calculateur 1, chaque propro-cesseur maˆıtre i met le jeton `a vrai si la convergence locale est atteinte sinon `a faux puis, il le transmet `a son voisin i + 1 dans l’anneau. Enfin, la convergence globale est d ´etect ´ee lorsque le processeur maˆıtre 1 rec¸oit de son voisin L − 1 un jeton initialis ´e `a vrai. Dans ce cas, le processeur maˆıtre 1 envoie un message d’arr ˆet `a tous les processeurs maˆıtres des autres calculateurs.

Dans la version GPU de l’algorithme 15, nous utilisons la programmation parall `ele h ´et ´erog `ene MPI/CUDA. Chaque sous-syst `eme lin ´eaire est r ´esolu par un calculateur pa-rall `ele en appliquant l’algorithme papa-rall `ele de la m ´ethode GMRES adapt ´e aux GPUs (voir section 3.3.1). De plus, nous utilisons les routines de la biblioth `eque CUBLAS suivantes :

– cublasDcopy() pour des copies m ´emoires dans la m ´emoire globale GPU,

– cublaSetVector() et cublasGetVector() pour les transferts de donn ´ees entre de la m ´emoire CPU et la m ´emoire GPU.

5.2.3/ EXPERIMENTATIONS´

Les tests de performances ont ´et ´e effectu ´es sur une grappe de dix Quad-Core Xeon E5530, chacun ´equip ´e de deux GPUs Tasla C1060. Nous avons utilis ´e la m ´ethode `a deux niveaux avec GMRES pour la r ´esolution de syst `emes lin ´eaires creux de 25 millions de valeurs inconnues. Ces syst `emes lin ´eaires sont associ ´es `a des matrices creuses `a cinq bandes pr ´esent ´ees dans la section 3.3.3.2. Les param `etres de r ´esolution sont initialis ´es comme suit : la matrice de pr ´econditionnement M est ´equivalente `a la diagonale princi-pale de la matrice creuse A, les seuils de tol ´erance pour les it ´erations internes et externes sont fix ´es, respectivement, `a εintern = 10−12 et εextern = 10−12, le nombre maximum des

Matrice

GMRES M ´ethode `a deux niveaux avec GMRES

T iter.

Architecture Synchrone Asynchrone

(nb. grappes ×

Tsync iter. ∆sync Gsync Tasync iter. ∆async Gasync nb. gpus/grappe) cage9 3, 173s 27 2 × 5 3, 080s 19 2e-13 1, 03 2, 030s 23 2e-13 1, 56 5 × 2 3, 872s 24 3e-13 0, 82 2, 563s 43 6e-13 1, 24 10 × 1 4, 133s 26 1e-12 0, 77 3, 784s 65 3e-13 0, 84 cage13 3, 701s 26 2 × 5 4, 028s 19 1e-12 0, 92 2, 820s 22 7e-13 1, 31 5 × 2 4, 391s 22 1e-12 0, 84 3, 348s 36 1e-12 1, 10 10 × 1 4, 307s 22 1e-12 0, 85 7, 404s 71 7e-13 0, 50 ecology2 2, 579s 21 2 × 5 2, 131s 13 5e-13 1, 21 1, 651s 24 3e-13 1, 56 5 × 2 2, 366s 15 7e-13 1, 10 1, 736s 23 9e-13 1, 48 10 × 1 2, 357s 15 7e-13 1, 09 2, 392s 43 2e-13 1, 08 shallow 1, 878s 17 2 × 5 0, 804s 3 1e-12 2, 33 0, 800s 9 1e-12 2, 35

water2 5 × 2 0, 803s 3 1e-12 2, 34 1, 004s 10 8e-13 1, 87

10 × 1 0, 800s 3 1e-12 2, 35 2, 001s 41 5e-12 0, 94 TABLE 5.1 – Performances des algorithmes synchrone et asynchrone de la m ´ethode `a deux

ni-veaux avec GMRES sur diff ´erentes architectures de grappes de GPUs

it ´erations internes et celui des it ´erations externes sont, respectivement, MaxIterintern = 3 et MaxIterextern = 500, le processus d’Arnoldi est limit ´e `a m = 2 it ´erations, les vecteurs solution et second membre sont initialis ´es, respectivement, `a 0 et 1.

Le tableau 5.1 illustre les performances des algorithmes parall `eles, synchrone et asynchrone, de la m ´ethode de multi-d ´ecomposition avec GMRES. Les colonnes 2 et 3 montrent, respectivement, le temps d’ex ´ecution en secondes T et le nombre d’it ´erations effectu ´es par la m ´ethode parall `ele GMRES ex ´ecut ´ee sur une grappe de dix GPUs. La colonne 4 d ´efinit l’architecture (x × y) de la plateforme parall `ele de calcul sur laquelle est ex ´ecut ´ee la m ´ethode `a deux niveaux. En effet, x repr ´esente le nombre de grappes (calcu-lateurs parall `eles) et y repr ´esente le nombre de GPUs par grappe. Pour chaque version parall `ele, synchrone et asynchrone, nous donnons le temps d’ex ´ecution en secondes

(Tsync et Tasync), le nombre des it ´erations externes (iter), la diff ´erence entre la solution

calcul ´ee avec la m ´ethode parall `ele GMRES et celle calcul ´ee avec la m ´ethode `a deux niveaux (∆sync et ∆async) et les gains relatifs obtenus par rapport `a la m ´ethode parall `ele GMRES (Gsyncet Gasync) :

sync = max|X − Xsync| et ∆async= max|X − Xasync|, Gsync = T

Tsync

et Gasync= T

Tasync

,

o `u X est la solution calcul ´ee par l’algorithme parall `ele de la m ´ethode GMRES et Xsync

et Xasync sont, respectivement, les solutions calcul ´ees par les algorithmes parall `eles

syn-chrone et asynsyn-chrone de la m ´ethode `a deux niveaux avec GMRES.

Dans les diff ´erents cas de figure pr ´esent ´es dans le tableau 5.1, l’architecture 2 × 5 (deux grappes de cinq GPUs chacune) est la meilleure configuration pour l’ex ´ecution de la m ´ethode `a deux niveaux avec GMRES. En fait, la multi-d ´ecomposition du syst `eme lin ´eaire sur plusieurs grappes augmente le rayon spectral de la matrice associ ´ee, ce

qui ralentit la convergence. De plus, nous pouvons remarquer que l’algorithme en mode asynchrone de la m ´ethode `a deux niveaux est sensiblement plus performant que celui en mode synchrone ainsi que celui de la m ´ethode GMRES adapt ´e aux grappes GPUs. En effet, la puissance de calcul des GPUs grappe permet de r ´eduire les temps de calcul des algorithmes parall `eles et, ainsi, le rapport entre le temps de calcul et celui de com-munications. Dans ce cas, les algorithmes `a it ´erations synchrones sont p ´enalis ´es par les co ˆuts de communications. Donc, les it ´erations asynchrones peuvent ˆetre une solution pour am ´eliorer les temps d’ex ´ecution des algorithmes it ´eratifs parall `eles, surtout sur des grappes GPUs `a grande ´echelle et/ou g ´eographiquement distantes.

5.3/ C

ONCLUSION

Dans ce chapitre, nous nous sommes int ´eress ´es aux m ´ethodes parall `eles de multi-d ´ecomposition pour la r ´esolution multi-de syst `emes lin ´eaires creux multi-de granmulti-des tailles. Ces m ´ethodes sont destin ´ees aux plateformes de calcul parall `ele distribu ´ees. Elles sont bas ´ees sur les calculs `a gros grains qui permettent de rem ´edier aux co ˆuts des com-munications `a haute latence entre nœuds de calcul g ´eographiquement distants.

Nous avons pr ´esent ´e une m ´ethode de multi-d ´ecomposition `a deux niveaux utilisant la m ´ethode it ´erative GMRES. Nous avons mis en œuvre les algorithmes synchrone et asynchrone de cette m ´ethode it ´erative sur une grappe de dix GPUs. Ceci nous a permis de remarquer, pour les diff ´erents exemples ´etudi ´es, que la version asynchrone est sen-siblement meilleure que la version synchrone et que l’algorithme parall `ele de la m ´ethode GMRES adapt ´e aux grappes GPUs. En effet, la multi-d ´ecomposition du syst `eme lin ´eaire de grande taille en sous-syst `emes de petites tailles permet de diminuer le rayon spectral de la matrice associ ´ee. De plus, la puissance de calcul des GPUs permet de r ´eduire le rapport entre le temps de calcul et celui de communication, ce qui est un facteur favori-sant pour l’utilisation des it ´erations asynchrones (voir section 2.3.3).

De plus, nous avons test ´e les performances de la m ´ethode `a deux niveaux avec GMRES sur des petites grappes GPU locales. Pour cette raison, nous n’avons pas pu avoir des gains relatifs plus significatifs par rapport `a la m ´ethode GMRES adapt ´ee aux grappes GPUs. Prochainement, nous pr ´evoyons de r ´ealiser des tests exp ´erimentaux `a grande ´echelle sur des grappes CPU g ´eographiquement distantes de la grille exp ´erimentale Grid’5000, et sur le supercalculateur hypride CURIE du Tr `es Grand Centre de Calcul (TGCC) de la CEA compos ´e de plusieurs GPUs (288 nVIDIA M2090). Dans ce contexte, nous pensons que la m ´ethode `a deux niveaux sera plus rapide et suppor-tera mieux le passage `a l’ ´echelle. Par ailleurs, nous ´etudierons aussi les m ´ethodes de multi-d ´ecomposition avec recouvrement de donn ´ees entre les processeurs dans le but d’acc ´el ´erer la convergence. Dans ce cas, la matrice associ ´ee au syst `eme lin ´eaire creux `a r ´esoudre sera d ´ecompos ´ee en sous-matrices rectangulaires non disjointes. Ensuite, le principe sera de calculer simultan ´ement certaines composantes de vecteur par les processeurs et de mixer les r ´esultats afin d’obtenir une solution pr ´ecise plus rapidement.

D

ANS cette th `ese, nous nous sommes int ´eress ´es `a l’exploitation de la puissance de calcul des grappes GPU pour la r ´esolution de syst `emes lin ´eaires et non lin ´eaires creux de tr `es grandes tailles. Nous avons conc¸u des algorithmes it ´eratifs parall `eles tirant partie de la capacit ´e de calcul des GPUs, en tenant compte des propri ´et ´es des matrices creuses et des sp ´ecificit ´es de l’architecture mat ´erielle et logicielle des GPUs. Nous avons utilis ´e une programmation parall `ele h ´et ´erog `ene bas ´ee sur le langage de programmation CUDA pour les GPUs et le standard de communication MPI. En effet, les GPUs sont dot ´es d’une architecture massivement parall `ele dont la programmation est diff ´erente de celle des processeurs classiques CPUs. Dans notre cas, un syst `eme lin ´eaire ou non lin ´eaire creux de tr `es grande taille est r ´esolu it ´erativement en parall `ele par l’ensemble des nœuds d’une grappe GPU. Ceci signifie que la mise en œuvre d’une m ´ethode it ´erative sur une grappe GPU impose la parall ´elisation de son algorithme et la gestion des interactions entre les diff ´erents nœuds GPU de la grappe. La plupart des op ´erations parall `eles de l’algorithme it ´eratif sont r ´e ´ecrites en CUDA et ex ´ecut ´ees par les GPUs, tandis que la synchronisation des calculs locaux des diff ´erents nœuds est assur ´ee par les CPUs via les routines de communications MPI. Ainsi, nous avons deux niveaux de parall ´elisme : parall ´elisation MPI entre les diff ´erents nœuds GPUs de la grappe et calcul multithread ´e avec CUDA `a l’int ´erieur de chaque nœud.

Nos contributions de recherche, dans cette th `ese, ont ´et ´e pr ´esent ´ees dans les cha-pitres suivants.

Dans le Chapitre 3, nous avons pr ´esent ´e les mises œuvre des algorithmes

pa-rall `eles des m ´ethodes it ´eratives de Krylov CG et GMRES, pour la r ´esolution de syst `emes lin ´eaires creux de tr `es grandes tailles. Les tests d’exp ´erimentation r ´ealis ´es dans cette th `ese ont montr ´e qu’une grappe de GPUs est plus performante qu’une grappe de CPUs pour la r ´esolution de syst `emes lin ´eaires creux de plusieurs millions d’inconnues. Ce-pendant, elle est moins performante, voire inefficace, lorsque la r ´esolution parall `ele d’un syst `eme lin ´eaire creux n ´ecessite un nombre important de communications entre les nœuds GPUs. Pour minimiser le co ˆut de ces communications, nous avons r ´eorganiser les colonnes de la matrice creuse au niveau de chaque nœud de fac¸on `a ce que les vecteurs de donn ´ees partag ´ees soient utilis ´es sous un format de stockage compress ´e. De plus, nous avons appliqu ´e un partitionnement de donn ´ees hypergraphe qui permet de d ´ecouper la matrice creuse de fac¸on `a r ´eduire au mieux les d ´ependances de donn ´ees tout en ´equilibrant le volume de donn ´ees ´echang ´ees entre les GPUs de la grappe.

Dans le Chapitre 4, nous nous sommes int ´eress ´es `a la r ´esolution de syst `emes non

lin ´eaires creux issus des probl `emes de l’obstacle sur une grappe GPU. Nous avons utilis ´e les m ´ethodes it ´eratives Richardson et relaxation par blocs projet ´ees. Pour chacune de ces m ´ethodes, nous avons conc¸u deux algorithmes parall `eles synchrone et asynchrone adapt ´es aux grappes GPUs. Les r ´esultats exp ´erimentaux obtenus sur une grappe GPU ont montr ´e que la m ´ethode Richardson projet ´ee est, largement, plus performante que de la m ´ethode de relaxation par blocs projet ´ee. Par contre, ceux obtenus sur une grappe

CPU ont montr ´e le contraire. En effet, la m ´ethode Richardson est tr `es facile `a parall ´eliser sur les GPUs mais converge lentement, tandis que la m ´ethode de relaxation par blocs est caract ´eris ´ee par une convergence rapide et une parall ´elisation innefficace sur GPUs, en raison des calculs qui ne sont pas adapt ´es `a l’architecture des GPUs.

Afin d’am ´eliorer la convergence de la m ´ethode Richardson projet ´ee, ainsi que ses performances de r ´esolution, nous avons appliqu ´e `a ses algorithmes parall `eles une tech-nique de num ´erotation rouge-noir facile `a mettre en œuvre sur les GPUs. Les tests de simulation effectu ´es sur une grappe GPU ont montr ´e que l’algorithme asynchrone de la m ´ethode Richardson rouge-noir projet ´ee supporte mieux le passage `a l’ ´echelle que son homologue synchrone. Ceci gr ˆace `a la puissance de calcul des GPUs qui permet de r ´eduire le ratio entre le temps de calcul et celui de communication.

Dans le Chapitre 5, nous avons d ´evelopp ´e les algorithmes synchrone et

asyn-chrone d’une m ´ethode de multi-d ´ecomposition `a deux niveaux, pour la r ´esolution de syst `emes lin ´eaires creux de tr `es grandes tailles sur des grappes GPUs distinctes. Nous avons utilis ´e une m ´ethode de multi-d ´ecomposition sans recouvrement sur le syst `eme lin ´eaire creux `a r ´esoudre et l’algorithme parall `ele GMRES adapt ´e aux GPUs au sein de chaque grappe GPU. Les tests exp ´erimentaux ont montr ´e que l’algorithme de multi-d ´ecomposition `a multi-deux niveaux asynchrone est plus performant que son homologue syn-chrone et que celui de la m ´ethode parall `ele GMRES ex ´ecut ´ee sur une seule grappe GPU. Ceci est d ˆu au fait que la puissance de calcul des GPUs permet de r ´eduire le temps de calcul d’un algorithme parall `ele, tandis que le temps de communications reste inchang ´e. Dans ce contexte, les algorithmes it ´eratifs synchrones sont p ´enalis ´es par les co ˆuts de communications.

P

ERSPECTIVES

Actuellement, les architectures mat ´erielles et logicielles des GPUs sont en constante ´evolution. En effet, les constructeurs r ´eussissent `a concevoir des GPUs moins co ˆuteux et de plus en plus performants, avec des puissances de calcul plus ´elev ´ees et des consom-mations d’ ´energie r ´eduites. De plus, gr ˆace aux nouvelles versions du langage de