scieee Science in your language
[sp] (orig)

Técnicas de implementación de Stencils en multi-GPU distribuidas

Abstract

Producción Científica

Read accessible full text

Técnicas de implementación de Stencils en multi-GPU distribuidas

Author: Ji Ye, Senmao,González Escribano, Arturo,Llanos Ferraris, Diego Rafael
Publisher: Universidad de Málaga
Year: 2017
Source: https://uvadoc.uva.es/bitstream/10324/29138/1/senmao.pdf
T´ecnicas de implemen aci´on de S encils en
mul i-GPU dis ibuidas
Senmao Ji Ye 1, A u o Gonz´alez Esc ibano2, Diego R. Llanos3
Resumen— En el pa ´on de compu aci´on denomi-
nado s encil cada elemen o de una es uc u a de da os
de ipo a ay se ac ualiza i e a i amen e en unci´on
de los alo es de sus ecinos. En e o as aplica-
ciones, es e pa ´on pe mi e esol e num´e icamen e
sis emas de ecuaciones en de i adas pa ciales, po lo
que es de g an in e ´es en el compu o cien ´ı ico, c e-
ciendo incesan emen e los eque imien os de ama˜no
de da os y ca ga compu acional en p oblemas eales.
La es uc u a de es e pa ´on pe mi e u iliza es a e-
gias sencillas de pa alelismo de da os, po lo que
su pa alelizaci´on, an o en CPUs como en acele -
ado es es de g an in e ´es. Sin emba go, la necesi-
dad de sinc onizaci´on y comunicaci´on en e elemen-
os de p oceso de i a en p oblemas elacionados con
la capacidad de dis ibui la ca ga y explo a mul i-
ples disposi i os simul aneamen e. En es e abajo
p esen amos un epaso y ac ualizaci´on de ´ecnicas
de p og amaci´on e icien es basadas en MPI y CUDA
pa a explo a es e pa ´on de compu aci´on en sis emas
mul i-GPU dis ibuidos. Nues os esul ados mues-
an c´omo las ´ecnicas u ilizadas pueden ali ia los
p oblemas de comunicaci´on en e hos y GPUs, ob e-
niendo endimien os y escalabilidad en unci´on de las
capacidades del sis ema de in e conexi´on en e nodos.
Palab as cla e— S encil, Mul i-GPU, compu aci´on
dis ibuida
I. In oducci´
on
PARA la esoluci´on de nume osos p oblemas
cien ´ı icos ac uales, en los que se aplican ecua-
ciones de i adas pa ciales, ales como el c´alculo de
la p opagaci´on del sonido o del calo , se u iliza una
´ecnica de compu aci´on llamada S encil. Una ´ecnica
S ecil consis e en una i e aci´on empo al en la que en
cada i e aci´on se ac ualizan odas y cada una de las
celdas de una ma iz mul idimensional, a pa i de
los alo es an e io es de un conjun o de celdas eci-
nas. Cada p oblema de ine cu´an as celdas ecinas
se u ilizan y qu´e pesos se aplican a cada una an es
de aplica la unci´on que calcula el nue o alo de la
celda que es ´a siendo p ocesada.
La u ilidad de es e pa ´on y su es uc u a que pe -
mi e la aplicaci´on de ´ecnicas sencillas de pa alelismo
de da os, hace que haya sido ampliamen e es udiado
en la li e a u a. Desde implemen aciones sencillas
ilus a i as de ´ecnicas b´asicas de p og amaci´on dis-
ibuida (p.e. [1]), o e siones op imizadas en acele -
ado es ha dwa e (p.e. [2]). Se han p opues o ´ecnicas
pa a su explo aci´on e icien e en sis emas mul i-GPU
(p.e. [3]), o en cl´us e s he e og´eneos (p.e. [4]).
En es e abajo p esen amos un epaso ac ual-
1Dp o. de In o m´a ica, Uni . Valladolid, Espa˜na. e-mail:
[email p o ec ed].
2Dp o. de In o m´a ica, Uni . Valladolid, Espa˜na. e-mail:
[email p o ec ed].
3Dp o. de In o m´a ica, Uni . Valladolid, Espa˜na. e-mail:
[email p o ec ed].
izado de ´ecnicas de implemen aci´on de s encils pa a
sis emas dis ibuidos de acele ado es GPU, o ien-
adas ocul a las la encias de las comunicaciones
necesa ias en cada i e aci´on empo al. U ilizando
como caso de es udio un s encil b´asico con una ca ga
de c´ompu o m´ınima po elemen o (el m´e odo de
Jacobi), mos amos con di e en es ap oximaciones
´ecnicas e icien es y poco complejas pa a solapa
compu aci´on y comunicaci´on. Es udiamos el im-
pac o de las copias as´ınc onas en e GPU y hos , y
en e nodos de la ed, explo amos uncionalidades del
API de CUDA no u ilizadas en es udios p e ios, y ex-
plo amos la escalabilidad en p esencia de ecnolog´ıas
de ed asequibles y de ´acil acceso. Nues os esul-
ados mues an c´omo las ´ecnicas u ilizadas pueden
ali ia los p oblemas de comunicaci´on en e hos y
disposi i os acele ado es, as´ı como en e nodos, pa a
p oblemas de ama˜nos adecuados pa a los espacios
de memo ia de los disposi i os acele ado es ac uales.
El es o del a ´ıculo se o ganiza de la siguien e
o ma. En la secci´on 2 se mues a una desc ipci´on
m´as de allada de los pa ones s encil y del caso de
es udio. En la secci´on 3 se desc iben las ´ecnicas u i-
lizadas. En la secci´on 4 se p esen an un es udio ex-
pe imen al pa a de e mina la u ilidad de las ´ecnicas
dicu idas. La secci´on 5 p esen a las conclusiones y
desc ibe el abajo u u o.
II. Compu aci´
on S encil
Los p og amas basados en compu aci´on de ipo
s encil epi en i e a i amen e la ac ualizaci´on de
odas las celdas de un a ay mul idimensional en
unci´on de los alo es an e io es de celdas ecinas
has a una condici´on de e minaci´on que puede de-
pende de los alo es calculados. Las celdas ecinas
se de inen en unci´on de su posici´on ela i a espec o
al alo de los ´ındices de cada dimensio´n de la celda
que se compu a.
Cada p oblema de ine un pa ´on o s encil, que
indica qu´e celdas se conside an ecinas, apo ando
su alo a la unci´on que calcula el nue o alo
de una celda, y opcionalmen e pesos a aplica de-
pendiendo de la posici´on ela i a de la cada celda
ecina espec o a la que se es ´a compu ando. Uno
de los m´e odos s encil m´as simples y es udiados es
el m´e odo de Jacobi ( e Fig. 1). En es e c´odigo se
conside an como celdas ecinas las que ienen´ındices
mul idimensionales que a ´ıan con espec o a los de
la celda ac ual en s´olo una unidad, en un ´unico´ındice.
La unci´on de ac ualizaci´on es la media a i m´e ica de
los alo es ecinos, odos con el mismo peso.
El pa ´on o s encil se puede complica con cel-
das ecinas a mayo dis ancia ( adio del s encil), de
o ma no equilib ada en las di e en es dimensiones
o ejes [5], has a llega a m´e odos complejos con pa-
ones que se al e an de o ma din´amica mien as
a anzan las i e aciones.
A. Jacobi 2D
o (i=1; i< ows-1; i++) {
o (j=1; j<columns-1; j++) {
ma ix[i][j] =
( ma ixCopy[i-1][j] +
ma ixCopy[i+1][j] +
ma ixCopy[i][j-1] +
ma ixCopy[i][j+1] ) / 4;
}
}
Fig. 1. Codigo de Jacobi en 2D
El m´e odo Jacobi aplicado a una ma iz de dos di-
mensiones ( e Fig. 1) calcula el nue o alo de cada
celda c´omo la media a i m´e ica de los alo es an e-
io es de los cua o ecinos adyacen es. U ilizando
una es uc u a de apoyo pa a almacena los alo es
de odos los elemen os de la ma iz en la i e aci´on
an e io , es e p oceso es ideal pa a se ealizado en
pa alelo, ya que odos los alo es de salida son inde-
pendien es en e s´ı.
La dependencia del c´alculo de una celda, con los
alo es de las ecinas calculados en la i e aci´on an e-
io , implica que en ejecuciones con mul iples p oce-
sos, un p oceso equie a pa a el c´ompu o de la pa e
que se le asigna, de alo es que se encuen an en un
p oceso dis in o. Pa a pode calcula los alo es de
las celdas si uadas en los bo des de las subma ices
de cada p oceso (bounda y), una soluci´on ´ıpica es
amplia las subma ices locales con una ila/columna
de celdas en cada di ecci´on, pa a almacena los da os
adyacen e a las bounda ies, que han sido calcula-
dos en el p oceso ecino en la i e aci´on an e io ( e
Fig. 3). Es as celdas adicionales eciben el nomb e
de halo. T as calcula odo los alo es de la subma-
iz, cada p oceso comunica los da os ac ualizados de
sus bo des (bounda ies), en i´andolos hacia los halos
ecinos. que se encuen an en o os p ocesos (E),
ecibiendo a su ez los da os de los bo des (bound-
a ies) de los p ocesos ecinos, ecinas (A)(B)(C) y
(D), que se almacena ´an en los halos locales.
En ejecuciones con un ´unico disposi i o, es a de-
pendencia no nos p oduce muchos incon enien es,
ya que disponemos de oda la ma iz en la misma
memo ia global, po lo que se puede accede desde
cualquie pun o independien emen e de po qui´en ha
sido ac ualizado en la i e aci´on an e io . El ´unico
equisi o es una ba e a de sinc onizaci´on de los el-
emen os de p oceso implicados en e una i e aci´on y
o a. O as ´ecnicas asociadas a la explo aci´on de
la je a qu´ıa de memo ia son posibles. Po ejemplo,
en uno de los p og amas de ejemplo que acompa˜nan
al Toolki de CUDA suminis ado po NVIDIA, que
implemen a una con oluci´on de imagen basada en
el m´e odo de Jacobi, cada bloque de hilos ealiza
la copia local de la subma iz co espondien e en
memo ia compa ida, ademas del halo de dicha sub-
ma iz [6]. Los accesos a memo ia compa ida son
mucho m´as ´apidos, con lo que se acele an los accesos
a los elemen os cuando se eu ilizan, en el momen o
en que se calcula cada elemen o ecino.
__sha ed__ loa sDa a
[THREADS_BLOCK_Y + 2 * RADIUS]
[THREADS_BLOCK_X + 2 * RADIUS];
unsigned in index = (i)* Nj + (j) ;
i ( li<RADIUS ) // copy op and bo om halo
{
//Copy Top Halo Elemen
// Bounda y check
i (blockIdx.y > 0)
sDa a[li][e_lj] =
inpu [index - RADIUS * Nj];
//Copy Bo om Halo Elemen
// Bounda y check
i (blockIdx.y < (g idDim.y-1))
sDa a[e_li+THREADS_BLOCK_Y][e_lj] =
inpu [index + THREADS_BLOCK_Y * Nj];
}
i ( lj<RADIUS ) // copy le and igh halo
{
// Bounda y check
i ( blockIdx.x > 0)
sDa a[e_li][lj] = inpu [index - RADIUS];
// Bounda y check
i (blockIdx.x < (g idDim.x-1))
sDa a[e_li][e_lj+THREADS_BLOCK_X] =
inpu [index + THREADS_BLOCK_X];
}
Fig. 2. Ex ac o del co´ıgo de Jacobi 2D implemen ado en
un ejemplo de con oluci´on de imagen suminis ado con el
Toolki de CUDA
Pa a la implemen aci´on en un cl´us e mul i-GPU
dis ibuido, se a necesa io u iliza una API pa a el
paso de mensajes en e p ocesos, como po ejem-
plo MPI (Message Passing In e ace). Tambi´en se ´a
necesa io u iliza una API pa a la implemen aci´on
del pa alelismo en el disposi i o o disposi i os lo-
cales. En es e abajo, u iliza emos MPI como la
API empleada pa a el paso de mensajes, y CUDA
como la API pa a explo a los disposi i os GPU.
El m´e odo de comunicaci´on en e p ocesos po
cada i e aci´on que e aluamos en es e abajo es el
siguien e:
(E)
(E)
(E)
(E)
(A)
(B)
(D)
(C)
Fig. 3. Comunicaci´on en e p ocesos en Jacobi 2D. Se mues-
an los halos o ex ensiones de la subma iz asignada al
p oceso, y los mo ien os de da os en e bo des y halos.
1. Se p og aman cinco ke nels pa a compu a la
subma iz del p oceso asignada a un disposi-
i o. Un ke nel se enca ga a de la pa e cen-
al, sin inclui los bo des. El es o de ke nels
compu a an cada uno un bo de (a iba, abajo,
de echa, izquie da), en caso de que exis a. Al
epa i la ma iz en e los disposi i os, apa e-
cen subma ices que ocan alguno de los bo -
des. Dichas subma ices no ienen halo en esa
di ecci´on, ni necesidad de comunica o p oce-
sa esos bo des de o ma especial, ya que no
hay o o p oceso emo o que necesi e esos da os.
Cada uno de los cinco ke nels se puede ejecu a
de o ma as´ınc ona. En CUDA se pueden u i-
liza s eams o colas de ins ucciones di e en es
pa a lanza cada ke nel pa a consegui dicha as-
inc on´ıa, ejecu ando odos los ke nels de o ma
concu en e.
2. En el s eam (cola de ins ucciones) donde se
lanza la ejecuci´on de cada ke nel que compu a
un bo de, encolamos inmedia amen e despu´es
una ope aci´on de copia de los da os almacenados
pa a ese bo de, en la memo ia del disposi i o,
hacia la memo ia del hos . De es a o ma, en
el momen o en que acabe la compu aci´on de un
bo de, comienza la copia as´ınc ona de los nue os
da os hacia el hos . U ilizamos la unci´on cud-
aMemcpyAsync.
3. T ans e encias de da os de los bo des en e dis-
posi i o y hos . Es amos abajando en C, con
ma ices almacenadas en lo que se conoce como
ow majo o de . Los elemen os se almacenan
po ilas, de o ma que los elemen os de colum-
nas consecu i as den o de la misma ila, es ´an
consecu i os en memo ia. Po an o, el en io
de los bo des ho izon ales (pa e de una ila)
se ealizan di ec amen e con una llamada a la
unci´on de copia as´ınc ona de CUDA, pasando
el pun e o de comienzo del bo de y su ama˜no.
En cambio, pa a los bo des la e ales ( e icales),
no podemos ealiza el paso de memo ia de es a
mane a ya que los elemen os del bo de no es ´an
consecu i os en la memo ia. Mo e da o a da o
con di e en es ope aciones de ans e encia de
memo ia es muy ine icien e. En la siguien e
secci´on se discu en dos mecanismos di e en es
pa a mejo a es as ans e encias.
Finalmen e se ealiza una sinc onizaci´on o es-
pe a pa a asegu a que los da os de los cua o
bo des se han ans e ido a la memo ia del hos .
Se puede ealiza con llamadas a la unci´on cu-
daS eamSynch onize con cada uno de los cua-
o s eams asociados a las ope aciones sob e los
bo des.
4. Comunicaci´on de da os de bo des en e p oce-
sos MPI. Las ope aciones de comunicaci´on en
MPI pueden se muy cos osas, especialmen e en-
e p ocesos asignados a nodos de ed di e en es.
Es undamen al que es as ope aciones se eali-
cen de o ma as´ınc ona, pudiendo solapa se con
la compu aci´on p incipal de la subma iz cen al
en el disposi i o.
Dado que el ke nel que ejecu a la pa e cen al
en el disposi i o ya ha sido lanzado, cualquie
ipo de ope aciones de comunicaci´on en e eci-
nos es iable. En es e abajo u ilizamos un-
ciones MPI Isend, MPI I ec pa a el en ´ıo y e-
cepci´on de los bo des hacia los halos emo os.
Se inician las ope aciones de en ´ıo y ecepci´on
y se ealiza una sinc onizaci´on con MPI Wai all
pa a espe a a que se eciban los bo des emo-
os en los halos locales. La u ilizaci´on de op-
e aciones as´ınc onas pe mi e que los mensajes
se p ocesen en cuan o es ´an disponibles, inde-
pendien emen e del o den en que se llama a las
unciones de en ´ıo o ecepci´on.
5. Se p ocede a ans e i los bo des que acaban
de llega a los halos a las co espondien es ima-
genes en la memo ia del disposi i o. Se u ilizan
de nue o las ´ecnicas comen adas pa a la ans-
e encia in e sa.
6. Se ealiza una sinc onizaci´on global del dispos-
i i o pa a asegu a que el ke nel que ejecu a la
compu aci´on de la pa e p incipal en el disposi-
i o ha e minado. U ilizamos una llamada a la
unci´on cudaDe iceSynch onize.
7. El ejemplo escogido ejecu a un n´ume o de e -
minado de i e aciones. Si se desea in oduci
una condici´on de e minaci´on basada en el alo
de esiduos, debe ´ıa se implemen ada en es e
pun o.
8. Finalmen e, se p ocede a in e cambia los pun-
e os de las es uc u as de da os de las dos ma-
ices en el disposi i o, pa a e i a ene que
ealiza una copia de la ma iz con los nue os
da os a la ma iz donde se man ienen las copias
de la i e aci´on an e io .
9. T as la inalizaci´on del bucle de i e acions, se se
comp ueba el n´ume o de i e aciones ealizadas,
pa a conoce donde se encuen a la ma iz esul-
ado as los cambios de pun e os, e ec uando la
co eci´on de pun e os si es necesa io. La ma iz
esul ado inal puede se ans e ida a la memo-
ia del hos pa a su esc i u a en iche o, o su
u ilizaci´on en pos e io es ases de la aplicaci´on.
Es e m´e odo as´ınc ono nos pe mi e ealiza las
op aciones de o ma ag egada, con la mayo g an-
ula idad posible, man eniendo la mayo concu en-
cia posible, y solapando compu aci´on y comunicaci´on
pa a educiendo no ablemen e el iempo compa ado
con una implem aci´on s´ınc ono m´as di ec a y simple.
III. Implemen aci´
on y op imizaciones
Pa a mejo a las ans e encias de memo ia y e-
duci el uido en las mediciones de los iempos, se
han aplicado dis in as ´ecnicas pa a op imiza la im-
plemen aci´on de la soluci´on comen ada en la secci´on
an e io .
A. T ans e encia de bo des e icales
Discu imos dos posibles ´ecinas pa a e i a que la
ans e encia de los bo des e icales en e hos y
disposi i o, cuyos elemen os no son consecu i os en
memo ia, u ilizando di e en es llamadas a unciones
de ans e encia pa a cada elemen o.
La p ime a es ´a basada en u iliza bu e s ex a
pa a copia los da os de cada bo de en una memo ia
con igua an es de las ans e encias. Es o nos obliga
a ealiza manualmen e la p og amaci´on de es as op-
e aciones de ma shalling/unma shalling en ke nels y
en el hos . Rese a manualmen e espacio adicional
en la memo ia de hos y disposi i o pa a dos ma i-
ces unidimensionales (bu e s), uno de en ´ıo y o o
de ecpci´on, po cada bo de e ical. El ke nel que
compu a un bo de e ical, copia los esul ados di-
ec amen e en la co espondien e posic´on del bu e
con iguo co espondien e (ma shalling). Es necesa io
p og ama un ke nel pa a ealiza la ope aci´on in-
e sa (unma shalling) con los da os de los halos e i-
cales ecibidos desde p ocesos emo os, colocando los
da os en sus posiciones co espondien es en la ma iz
de da os.
La segunda se basa basada en u iliza las unciones
de copia de ma ices bidimensionales inclu´ıdas en el
API de CUDA. En conc e o, la unci´on cudaMem-
cpy2D pe mi e a a ´es de sus pa ´ame os indica el
sal o que hay en e los elemen os discon iguos, ans-
i iendo una subma iz con menos columnas de las
que es ´an ese adas en la ma iz comple a. En el es-
udio expe imen al compa amos ambas opciones en
´e minos de endimien o.
B. Memo ia pinned
La as e encia de da os del hos al disposi i o y
ice e sa, implica un cos e de iempo pa a ealiza la
comunicaci´on a a ´es de los buses PCI en los que se
alojan las a je as GPU. Puede a ia seg´un c´omo se
ese e la memo ia en el hos . Po de ec o, la memo-
ia que ese amos en el hos con las u inas alloc de
C, es memo ia paginada iden i icada po una Um-
mmm... es as segu o de odo es o? No es s´olo que
iene que hace los accesos esol iendo las di ecciones
de memo ia i ual a ´ısica? . Es o p o oca que pa a
ealiza una ansmisi´on de da os desde el disposi-
i o al hos sea necesa ia la ese a de un bloque de
memo ia no paginada, seguido de una copia en el
hos desde la memo ia ´ısica a la eci´en ese ada,
sum´andole el cos e de la ansmisi´on, espe a y lib-
e acion de memo ia de odo es e p oceso. En cam-
bio, si ese amos memo ia pinned (memo ia no pag-
inada), la comunicacion es mas ´apida debido a que
la GPU no necesi a hace la esoluci´on de la di eccion
de memo ia, ya que la memo ia pinned u iliza una di-
ecci´on de memo ia ´ısica (RAM), y se puede ealiza
di ec amen e la ansmisi´on de da os sin necesidad
del sob ecos e en iempo mencionado an e io men e.
C. A inidad en e CPU y GPU
O o ac o impo an e pa a op imiza las ans-
e encias de memo ia es de ini la a inidad del p o-
ceso/ h ead que es ´a ejecu ando el c´odigo del hos ,
de o ma que se ejecu e en los co es que es ´an en el
mismo nodo NUMA que es ´a conec ado al bus PCI
donde es ´a conec ada Es o pe mi e e i a el sob e-
cos e de la comunicaci´on en e dis in os nodos de la
CPU. No con ola es a a inidad nos puede p oduci
esul ados es oc´as icamen e peo es en los iempos de
ans e encia du an e una se ie de p uebas del mismo
p og ama. El co e de la CPU que se enca ga de
p ocesa el p og ama po de ec o lo escoge el sis ema
ope a i o en unci´on de pa ´ame os no ienen en
cuen a el uso de los disposi i os ex e nos. Adem´as, si
no se de ine la a inidad, el sis ema ope a i o ambi´en
puede decidi mig a el p oceso a o os co es. En el
ejemplo de la igu a 4 hay una buena a inidad en e la
CPU0 y las GPU0 y GPU1, ya que se encuen an en
un mismo nodo NUMA y la memo ia ges ionada po
sus co es es a ´a no malmen e ese ada en los ban-
cos de memo ia m´as p ´oximos a ella. Po an o, las
comunicaciones en e esa memo ia y el bus PCIe de
esa CPU es m´as e icien e que si iene que asmi i se
a a ´es de la conexi´on en e la CPU0 y la CPU1
pa a di igi se a las GPUs que se encuen an en el
o o nodo NUMA.
Fig. 4. A inidad en e CPU y GPU
Hyd a Chime a Phoenix Thunde bi d
CPU Xeon E5-2690 3 Xeon E5-2620 2 Co e2 Quad Q6600 Co e i5330
Co es 12 24 4 4
Clock 1.9 GHz 2.1 GHz 2.4 GHz 3 GHz
Memo y 64 GB 32 GB 6 GB 8 GB
Num.GPUs 4 1 1 1
Model GTX Ti an Black GTX Ti an Black Tesla K40c Tesla K40c
Co es 2880 2880 2880 2880
Clock 980 MHz 980 MHz 745 MHz 745 MHz
Memo y 6 GB 6GB 12 Gb 12 Gb
TABLA I
Cl´
us e T asgo: M´
aquinas y ca ac e ´
ıs icas
IV. Expe imen aci´
on
En es a secci´on p esen amos los esul ados de un
es udio expe imen al esalizado pa a comp oba el
impac o eala i o de las di e en es opciones y op i-
mizaciones conside adas, y pa a e i ica el ni el de
escalabilidad conseguido po la soluci´on. Es e es ´a
en g an medida asociado a la capacidad de solapa
la compu aci´on y comunicaci´on de o ma sos enida a
lo la go de las i e aciones del p og ama.
Hemos escogido una implemen aci´on de Jacobi2D,
con una pa ici´on de da os cl´asica y sencilla: blo-
ques bidimensionales homogeneos. Es e p oblema es
uno de los s encils m´as sencillos en dos dimensiones,
con una ca ga compu acional muy baja po cada ele-
men o conside ado, con un esquema de comunicaci´on
en e ecinos con has a cua o ecinos po p oceso.
Es a disposici´on, con baja ca ga compu acional po
a ea, hace muy isible el impac o de las comuni-
caciones. Adem´as, disponemos de implemen aciones
sencillas y e icien es de e e encia. Po si al inal
me is e el que has pues o en la igu a. Bo a la ase
que no sea cie a. // Hemos escogido como ke nel
de base la implemen aci´on con enida en el ejemplo
dis ibuido con el Toolki de CUDA en su e si´on
8.0. // Hemos escogido como ke nel de base una a-
ducci´on di ec a de la unci´on de ac ualizaci´on de un
elemen o como se mues a en la igu a ??. (Y pones
el c´odigo del ke nel b´asico, que son pocas l´ıneas).
U ilizamos como e si´on de e e encia una im-
plemen aci´on de la pa e de comunicaci´on en MPI
basada en el ejemplo p esen ado en [1]. En nues-
a e si´on de e e encia la pa e compu acional se
ejecu a en la GPU, lanzado un ´unico ke nel pa a cal-
cula oda la subma iz asignada al p oceso en cada
i e aci´on. Se ealizan las ans e encias de memo ia
pa a mo e los da os de los bo des al hos , o los ha-
los ecibidos al disposi i o, de o ma s´ınc ona con la
unci´on cudaMemcpy. Compa amos los esul ados de
endimien o con la e si´on modi icada seg´un las es-
peci icaciones comen adas en la secci´on II, p obando
las di e nen es opciones y op imizaciones de alladas
en la secci´on III.
En es e abajo nos cen amos en la escalabilidad
de es e p oblema en cl´us e s de GPUs dis ibuidas.
u ilizan p ´ac icamen e oda la memo ia global de
los disposi i os disponibles, maximizando el ama˜no
global del g id compu ado. El ipo base de los a ays
es loa , pa a pode ap o echa el m´aximo n´ume o
de unidades uncionales en las GPUs. En la ex-
pe imen aci´on u ilizamos ama˜nos de p oblema que
de i an en una ocupaci´on de la memo ia global de
los disposi i os que a desde ap oximadamen e de
un 5% a un 75% pa a las GPUs de e e encia Ti an
Black.
A. Pla a o mas
Los expe imen os se han ealizado en dos cl´us e s
mul i-GPU di e en es, ambos ges ionados con un sis-
ema de colas Slu m. El p ime o es ´a ges ionado di-
ec amen e po el g upo de in es igaci´on T asgo de
la Uni e sidad de Valladolid. Se a a de un cl´us e
he e ogeneos con nodos de di e en es capacidades.
El la abla I se esumen las m´aquinas que compo-
nen el cl´us e y sus ca ac e ´ıs icas, incluyendo las
de las GPUs ins aladas. La ecnolog´ıa de ed de in-
e conexi´on es E he ne 1Gb en e los dos p ime os
nodos (Hyd a y Chime a), y de 1Mb con los o os
dos (Phoenix y Thunde bi d).
La segunda pla a o ma es el cl´us e mul i-GPUs
del Cen o Ex eme˜no de Tecnolog´ıas A anzadas
(CETA-Ciema ). Cada nodo iene dos CPUs In el
Xeon E5-2620, con seis co es a 2.0 GHz, wi h 32
GB de RAM, y dos GPUs ...... modelo y ca ac e -
is icas...... La ecnolog´ıa de ed de in e conexi´on es
In iniband QDR (40Gb/s) y FDR (56Gb/s).
B. Comunicaci´on s´ınc ona y as´ınc ona
Una de las op imizaciones com m´as impac o en
compu os i e a i os que necesi an as e i da os en-
e hos y disposi i os en cada i e aci´on, es el so-
lapamien o del compu o con la comunicaci´on. Es o
es ac ible en el caso de nues a compu aci´on s en-
cil, que no p esen a dependencias en e i e aciones si
se man iene una copia con los da os de la i e aci´on
an e io . Po an o es posible ealiza las ans e en-
cias de da os y comunicaciones en e nodos de o ma
as´ınc ona.
En la abla II p esen amos el desglose de iem-
pos de ejecuci´on dedicados a compu aci´on y a ans-
e encias de memo ia y/o comunicaci´on en e nodos
pa a di e en es ama˜nos de p oblema en la e si´on
de e e encia. Los iempos es ´an medidos en En que
m´aquina o combinaci´on de m´aquinas? Es o es eje-
cu ando en co es o en GPUs??. Obse amos que
los iempos de compu o y comunicaci´on son muy
simila es, c eciendo ambos p opo cionalmen e con el

TABLA II
Tabla con los iempos de compu aci´
on y comunicaci´
on,
con 50 i e aciones (en segundos)
Tama˜no ma iz C´ompu o Comumicaci´on
6000x6000 0.3104 0.3263
20000x20000 3.0809 3.1852
25000x25000 5.0184 5.2029
TABLA III
Tabla con modelo s´
ınc ono y a´
sinc ono, con 50
i e aciones En que m´
aquina o combinaci´
on de
m´
aquinas?? (en segundos)
ama˜no ma iz s´ınc ono As´ınc ono
6000x6000 0.6367 0.3302
20000x20000 6.2661 3.2516
25000x25000 10.2213 5.3099
ama˜no de p oblema.
En la abla III mos amos los iempos de ejecuci´on
o ales de la e si´on de e e encia y de la e si´on con
ans e encias y comunicaciones as´ınc onas. En la
e si´on s´ınc ona de e e encia, los iempos de com-
pu o y comunicaci´on se acumulan en el o al, ya
que las ope aciones se secuencializan. En la e si´on
as´ınc ona, la mayo pa e de los iempos de comuni-
caci´on se solapan con la compu aci´on, obse andose
iempos o ales que ienen apenas un inc emen o de
en e un 1% y un 2% sob e los iempos de comuni-
caci´on de la e si´on de e e encia.
C. Bu e s s. cudaMemcpy2D
En es e abajo compa amos dos ap oximaciones
pa a ans e i los da os de los bo des e icales en-
e el hos y el disposi i o y ice e sa. Una con p o-
g amaci´on manual, ejecu ando ope aciones de ma -
shalling y unma shalling en bu e s con da os con-
iguos. La o a u ilizando di ec amen e la unci´on
cudaMemcpy2D con los pa ´ame os adecuados. En
la abla IV mos amos una compa aci´on de iempos
de ejecuci´on o ales en e la cada una de las dos e -
siones. Obse amos que en e las dos ´ecnicas apli-
cadas, el uso de cudaMemcpy2D nos da un lige a
mejo a sob e el uso de bu e s, ya que es e m´e odo
iene di e en es op imicaciones a ni el del d i e de
CUDA. Adem´as es mucho m´as sencillo que p og a-
TABLA IV
Tabla con iempo de comunicaci´
on de bu e s s.
cudaMempcy2D (en segundos)
ama˜no ma iz bu e cudaMemcpy2D
6000x6000 0.3268 0.3255
20000x20000 3.1919 3.1484
25000x25000 5.1980 5.1371
ma manualmen e la ope aciones sob e los bu e s, y
al se pa e del API de CUDA es m´as po able con
a qui ec u as u u as.
D. Escalabilidad de comunicaciones MPI
En es a pa e del abajo expe imen al es udiamos
la escalabilidad de las comunicaciones as´ınc onas en
MPI, ejecu ando la pa e compu acional en los co es
de la CPU. Ejecu amos dos ipos de expe imen os.
El p ime o pa a medi la escabilidad d´ebil (weak scal-
ing), aumen ando el ama˜no del p oblema p opo -
cionalmen e al n´ume o de disposi i os in oluc ados.
As´ı podemos obse a el endimien o de la aplicacion
cuando se amplia el nume o de nodos dis ibuidos,
con una ca ga cons an e pa a cada nodo. El segundo
ipo de expe imen os es ´a o ien ado a medi la escal-
abilidad pa a un ama˜no de p oblema ijo (s ong
scaling). As´ı podemos obse a el compo amien o
de la apliaci´on con una ca ga o al cons an e, mien-
as inc emen amos el n´ume o de nodos usados. Los
iempos de compu o se educen, ya que al habe m´as
p ocesos in oluc ados le oca una pa e m´as peque˜na
de las es uc u as de da os a cada uno. El impac o y
e ec os de los iempos de comunicaci´on se hacen m´as
e iden es,
Tama˜nos de p oblema pa a es e caso???
En el caso del cl´us e T asgo, empezamos usando
co es de una ´unica m´aquina, inc emen ando el nu-
me o de co es de cua o en cua o, has a comple a
su capacidad. Se con inuan in oduciendo co es de
cua o en cua o de las siguien es m´aquinas, siemp e
comple ´ando su capacidad an es de a˜nadi la sigu-
ien e. El o den de in oducci´on de las m´aquinas se
ha escogido po su can idad de co es, quedando es-
ablecido el o den siguien e: chime a, hyd a, phoenix
y hunde bi d. En el caso inal se es ´an u ilizando los
24 co es de chime a, los 12 de hyd a, los 4 de phoenix
y de hunde bi d. En el caso del cl´us e CETA p o-
cedemos de mane a simila ellenando m´aquinas con
bloques de 4 p ocesos. Al se m´aquinas homogeneas
el o den en que se a˜naden los nodos no es ele an e.
Tan o en la igu a 5, como en la igu a 6, emos
que la aplicaci´on inc emen a el iempo cuando in-
c emen amos los p ocesos en un mismo nodo, de-
bido a que con pocos p ocesos, nos encon amos en
una si uacion de al a a inidad, donde los co es que
se es an ejecu ando se encuen an en un mismo nodo
NUMA (misma CPU) y los mo imien os de memo-
ia y las comunicaciones en e los p ocesos son muy
´apidas. Al inc emen a el n´ume o de p ocesos, se
in oducen p ocesos en o as pa es de la je a qu´ıa,
inc emen ´andose los cos es de comunicaci´on. En el
momen o en que se empiezan a in oduci p ocesos
en o os nodos de la ed, los cos es de comunicaci´on
son ya simila es. Po lo que la escalabilidad d´ebil se
man iene es able, con un lige ´ısimo inc emen o hacia
el inal en el caso del cl´us e T asgo al in oduci se
encnolog´ıa de ed m´as limi ada (E he ne 1Mb).
En la segunda pa e del es udio comp obamos
la escalabilidad pa a un ama˜no de p oblema ijo
(s ong scaling). En la igu a 7 se mues an los esul-
0
5
10
15
20
4 8 12 16 20 24 24+4 24+8 24+12 (36)+4 (40)+4
Tiempo (Segundos)
p ocesos o ales
Fig. 5. Cl´us e T asgo: Weak scaling con n´ume o de p oce-
sado es
0
10
20
30
40
50
1,6 1,12 2,18 2,24 3,30 3,36 4,42 4,48 5,54 5,60 6,66 6,72
Tiempo (Segundos)
(nodos, p ocesos)
Fig. 6. Cl´us e CETA: Weak scaling con n´ume o de p oce-
sado es
ados pa a el cl´us e T asgo. Podemos e la mejo a
cla a en los iempos del p og ama a medida que in-
c emen amos el n´ume o de nodos que usamos, ya
que la ca ga pe nodo que ealizamos es cada ez
meno . Incluso con una ecnolog´ıa de ed basad en
bus, como es E he ne , la can idad y ecuencia de las
comunicaciones de es e ipo de aplicaciones no llega
a se su icien e Las i egula ides de la cu a en los
p ime os pun os se debe de nue o al cambio b usco
en los cos es de comunicaci´on den o de la je a qu´ıa
NUMA del mismo nodo.
E. Mul i-GPU dis ibuidas
En es a pa e del es udio nos cen amos en es u-
dia la escalabilidad, an o d´ebil como ue e (weak,
s ong scaling) cuando el c´ompu o se ealiza con
los disposi i os GPU, educiendose los iempos de
c´ompu o e inc men ´andose los de comunicaci´on de-
bido a la in oducci´on de las ans e encias en e la
je a qu´ıa de memo ia del disposi i o y el hos .
Tama˜nos de p oblema pa a es e caso???
En la igu a 8 mos amos los esul ados de escala-
bilidad d´ebil pa a el cl´us e CETA. Podemos obse -
a que apa ecen m´as i egula idades debidas a los
e ec os es oc´as icos de la ed. Sin emba go, la es-
calabilidad se man iene g acias a la capacidad de la
ecnolog´ıa de ed de es e cl´us e (In iniband).
5
10
15
20
25
30
35
40
45
50
4 8 12 16 20 24 24+4 24+8 24+12 (36)+4 (40)+4
Tiempo (Segundos)
p ocesos o ales
Fig. 7. Cl´us e T asgo: S ong scaling con n´ume o de p oce-
sado es
0
5
10
15
20
1,1 1,2 2,3 2,4 3,5 3,6 4,7 4,8 5,9 5,10
Tiempo (Segundos)
(nodos, p ocesos)
Fig. 8. Cl´us e CETA: Weak scaling con GPUs en nodos
dis ibuidos
En la igu a 9 mos amos los esul ados de escal-
abilidad ue e en el clus e T asgo. Las p ime as
GPUs que se in oducen son las de hyd a (4 en el
mismo nodo). Luego se an a˜nadiendo GPUs de
los o os nodos, in oduciendo al inal las de los no-
dos conec ados con la ecnolog´ıa de ed m´as limi-
ada. En es e caso el iempo de c´ompu o se e-
duce d ´as icamen e g acias al uso de las GPUs, so-
lap´andose po comple o con el iempo de comuni-
caci´on que domina el iempo o al. Los iempos en
los ´ul imos pun os de la g ´a ica se en a ec ados po
la capacidad de la ecnolog´ıa de ed m´as limi ada de
los ´ul imos nodos in oducidos (E he ne 1Mb).
Conclusiones
En es e abajo se han epasado y e isado ´ecnicas
de implemen aci´on e icien e de compu aciones de
ipo s encil pa a la ocul aci´on de las la encias de
comunicaci´on en e hos y GPU, y en e nodos, en
un cl´us e de GPUs dis ibuido. Se han e isado
di e en es op imizaciones y usos del API de CUDA.
Los esul ados mues an que la aplicaci´on de ´ecnicas
sencillas de p og amaci´on puede consegui minimiza
el impac o de las comunicaciones incluso en el caso
de u iliza ecnolog´ıas de ed de medio compa ido
de bajo cos e pa a g ados de escalabilidad aco ados.
Los esul ados son p ome edo es en cuan o a la posi-
2
4
6
8
10
12
14
1 2 3 4 4,1 4,1,1 4,1,1,1 4,1,1,1,1
Tiempo (Segundos)
p ocesos po nodo
Fig. 9. Cl´us e T asgo: S ong scaling con GPUs en nodos
dis ibuidos
bilidad de esol e e icien emen e p oblemas basados
en s encils en g andes cl´us e s con nodos do ados con
acele ado es ha dwa e y ecnolg´ıa de ed escalable.
El abajo u u o incluye el es udio de aplicaciones
s encil m´as complejas, o as ´ecnicas no con em-
pladas en el es udio, ajus a la pa ici´on de da os a
la he e ogenidad de los disposi i os y nodos, y la in-
eg aci´on de las ´ecnicas es udiadas en abs acciones
de p og amaci´on de sis emas he e og´eneos de m´as
al o ni el.
Re e encias
[1] Einwg Lusk William G opp, Using MPI. Po able Pa allel
P og amming wi h he Message-Passing In e ace, MIT
P ess, 3 d edi ion, 2015.
[2] B ian Hamil on, C aig J. Webb, Alan G ay, and S e an
Bilbao, “La ge s encil ope a ions o GPU-based 3-D
acous ics simula ions,” in 18 h In . Con e ence on Dig-
i al Audio E ec s (DAFx-15), 2015.
[3] Paulius Micike icius, “3d ini e di e ence compu a ion on
gpus using cuda,” in GPGPU2. Ma ch 2009, ACM P ess.
[4] Mohammed Sou ou i, Johannes Langgu h, Filippo Spiga,
Sco B. Baden, and Xing Cai, “CPU+GPU p og am-
ming o s encil compu a ions o esou ce-e icien use o
GPU clus e s,” in IEEE 18 h In e na ional Con e ence
on Compu a ional Science and Enginee ing. 2015, IEEE.
[5] Kaushik Da a, Samuel Williams, Vasily Volko 2,
Jona han Ca e , Leonid Olike , John Shal , and Ka he -
ine Yelick, “Au o- uning he 27-poin s encil o mul i-
co e,” in In e na ional Wo kshop on Au oma ic Pe o -
mance Tuning (iWAPT), 2009.
[6] Da id Ki k and Wen mei Hwu, P og amming Massi ely
Pa allel P ocesso s, Mo gan Kau man, 2nd edi ion, 2013.