RPN_COMM |
(RPN_COMM_adj_halox) |
SUBROUTINE RPN_COMM_adj_halox(larray,minx,maxx,miny,maxy, % ni,nj,nk,halox,haloy,periodx,periody, % glob,gminx,gmaxx,gminy,gmaxy,gni,npol_row)
larray | Tableau contenant la tuile locale | real or integer | O |
minx,maxx, miny, maxy | Dimensions de larray(nk pour l'axe z) | integer | I |
ni,nj,nk | Dimensions du problème local | integer | I |
halox,haloy | Largeur du halo en x et y | integer | I |
periodx,periody | Periodicité pour x et y | logical | I |
glob | Tableau contenant l'équivalent en espace d'une rangée de PE | real or integer | I |
gminx, gmaxx, gminy, gmaxy | Dimensions de glob (nk pour l'axe z) | integer | I |
gni | Taille du problème global selon x | integer | I |
npol_row | Nombre de rangées de processeurs aux pôles (cas semi-lag) | integer | I |
Cas 9 processeurs 3X3, npol_row=1 (voir les additions comme étant matricielles)
glob en entrée larray en sortie (avec échange adjoint de halo)
+------+ +--+
P8 |IIIIII|
|OO| (OO=II+HH+GG)
+------+ +--+
+------+ +--+
P7 |HHHHHH|
|NN| (NN=II+HH+GG)
+------+ +--+
+------+ +--+
P6 |GGGGGG|
|MM| (MM=II+HH+GG)
+------+ +--+
+------+ +--+
Problème global
P5 |FF | |FF|
en entrée en sortie
+------+ +--+
+--------+ +--------+
+------+ +--+
|GG HH II|
|MM NN OO|
P4 |EE | |EE|
| | |
|
+------+ +--+
|DD EE FF| |DD EE FF|
+------+ +--+
| | |
|
P3 |DD | |DD|
|AA BB CC|
|JJ KK LL|
+------+ +--+
+--------+ +--------+
+------+ +--+
P2 |CCCCCC|
|LL| (LL=AA+BB+CC)
+------+ +--+
+------+ +--+
P1 |BBBBBB|
|KK| (KK=AA+BB+CC)
+------+ +--+
+------+ +--+
P0 |AAAAAA|
|JJ| (JJ=AA+BB+CC)
+------+ +--+