You are on page 1of 16

Arquitectura de Computadores

Paralelos y Distribuidos
TRABAJO PRCTICO
COMPARATIVA ETRE EJEC!CI"
#EC!ECIA$ % PARA$E$A
Alejandro Chacn Peregrino
Alejandro Melero Rodrguez
Beatrz Rodrguez Romero
&DICE
1. Introduccin............................................................................1
2. Programacin Secuencial........................................................2
3. Programacin Paralela............................................................3
a) OpenMP...............................................................................3
b) OpenMPI.............................................................................4
c) Hbrida MP/MPI.................................................................
4. !omparati"a............................................................................#
a) P! $....................................................................................%
b) P! &....................................................................................'
c) P! !....................................................................................(
d) !digo Secuencial............................................................1)
e) !digo OpenMP................................................................11
*) !digo OpenMPI..............................................................12
g) !digo Hbrido.................................................................13
. !onclu+ione+.........................................................................14
'( I)troducci*)
,n e+te traba-o "amo+ a reali.ar una comparati"a de di*erente+ cdigo+ para reali.ar una
+uma de matrice+ en la /ue ob+er"aremo+ cual de ello+ e+ m0+ e*iciente a la 1ora de apro"ec1ar
tanto el tiempo como lo+ recur+o+ del +i+tema.
,mpe.aremo+ probando el cdigo +ecuencial reali.ado en ! 2 lo compararemo+ con
re+pecto a +u+ "er+ione+ reali.ada+ en OpenMP3 OpenMPI e Hbrida 4unin de OpenMP 2
OpenMPI).
5eali.aremo+ la medicin del tiempo mediante una *uncin creada /ue no+ dir0 cu0nto tarda
en e-ecutar+e la tarea.
6a+ prueba+ 1an +ido reali.ada+ en tre+ m0/uina+ parecida+ pero con alguna+ di*erencia+
para comprobar el *uncionamiento en m0+ de un di+po+iti"o.
7ato+ P! $8
9 !P: Intel i 2.4;H 4 n<cleo+
9 ' ;& 5$M 1.333 ;H
7ato+ P! &8
9 !P: Intel i 2.# ;H.3 4 n<cleo+
9 4gb 5$M 1.333 ;H.
7ato+ P! !8
9 !P: Intel i 2.4 ;H.3 4 n<cleo+
9 4;& 5$M 1.333 ;H.
1
+( Pro,ramaci*) #ecue)cial
,+te cdigo e+ el m0+ +encillo de todo+3 "eamo+ cual e+ la operacin crtica /ue +e reali.ar0
en la +iguiente imagen.
Operacin crtica
Ob+er"amo+ /ue +e reali.a la +uma de todo+ lo+ elemento+ de amba+ matrice+ 2 +e depo+ita
el re+ultado en una matri. para el re+ultado.
:tili.aremo+ la *uncin cloc=4) de ! para guardar el tiempo /ue tardamo+ en e-ecutar el
cdigo. >oda+ la+ "er+ione+ del cdigo u+ar0n e+ta *uncin para el tiempo.
clock()
;uardaremo+ el "alor de la 1ora en una "ariable -u+to ante+ de empe.ar a reali.ar el cdigo.
Mostramos el tiempo
!uando acabamo+ la operacin crtica "ol"emo+ a guardar el tiempo en otra "ariable 2
mo+tramo+ por pantalla el tiempo tran+currido entre ella+.
2
-( Pro,ramaci*) Paralela
$1ora "eremo+ 3 "er+ione+ di+tinta+ de programacin paralela. OpenMP3 OpenMPI e
Hbrida uniendo la+ do+ anteriore+.
a. Ope)MP
Para e+ta "er+in del cdigo u+aremo+ la $PI de OpenMP /ue no+ permite a?adir la opcin
de di"idir el programa en di*erente+ proce+o+ para /ue puedan +er reali.ado+ en di*erente+
proce+adore+ o n<cleo+ de un proce+ador.
6o primero /ue debemo+ reali.ar e+ la de*inicin de en cuanto+ proce+o+ "amo+ a di"idir el
cdigo cuando entremo+ en una directi"a paralela.
Definicin de procesos
Mediante e+ta *uncin de*inimo+ el n<mero de proce+o+ como la multiplicacin del m0@imo
n<mero de 1ilo+ del +i+tema por + mi+mo3 a+ cada "e. /ue un proce+ador acabe con +u proce+o
podr0 coger otro /ue +e encuentre en e+pera.
Directiva OpenMP
,n e+ta imagen ob+er"amo+ /ue iniciamo+ la directi"a mediante la +inta@i+ #pragma omp
parallel for indicando /ue todo el cdigo +iguiente dentro del bucle *or +e reali.ar0 de manera
paralela en todo+ lo+ proce+o+ /ue 1a2amo+ de*inido anteriormente.
,n"iamo+ la+ "ariable+ i 2 - nece+aria+ para lo+ bucle+ de manera pri"ada a cada proce+o3
mientra+ /ue la+ matrice+ la+ en"iamo+ de manera compartida 2a /ue todo+ acceder0n a ella+.
3
b. Ope)MPI
,n e+ta "er+in paralela u+aremo+ la biblioteca de pa+o de men+a-e+ OpenMPI /ue no+
permite di"idir el programa en di*erente+ men+a-e+ /ue pueden en"iar+e a di*erente+ proce+adore+.
,n e+te ca+o e+ e+pecialmente <til para en"iar a di*erente+ e/uipo+ dentro de un cl<+ter.
6o primero /ue debemo+ reali.ar e+ crear una "ariable donde incluiremo+ lo+ re+ultado+
parciale+ /ue reali.ar0 cada uno de lo+ men+a-e+.
Creacin de matrices parciales
6a+ matrice+ parciale+ +er0n del tama?o total di"idido entre el tama?o de lo+ proce+o+ del
+i+tema. !reamo+ do+3 una para cada matri..
Mtodo Scatter para dividir las matrices
6a *uncin Scatter no+ permite di"idir la+ do+ matrice+ en pe/ue?a+ +ubmatrice+ /ue +er0n
en"iada+ a lo+ di*erente+ proce+o+. ,n ella3 e+peci*icamo+ el n<mero de elemento+ en lo+ /ue +e "a a
di"idir la matri..
Operacin crtica y mtodo Gather
5eali.amo+ la +uma de cada uno de lo+ proce+o+ de manera parcial3 cada uno guardandolo
en +u propia matri. parcial. 6uego3 u+amo+ la *uncin ;at1er3 /ue +e encarga de recopilar toda+ la+
matrice+ parciale+ 2 unirla+ en la matri. re+ultado.
4
c. /0brida MP1MPI
:na "e. "i+ta+ la+ do+ "er+ione+ anteriore+ podemo+ pen+ar /ue una manera a<n m0+
e*ecti"a de programar e+ unirla+ para reali.ar de manera m0+ e*iciente la paraleli.acin.
OpenMP y OpenMP
Aemo+ como primero utili.amo+ OpenMPI para di"idir la+ matrice+ 2 luego3 mediante
OpenMP3 di"idimo+ en "ario+ proce+o+ /ue +e reali.ar0n de manera paralela.
,+ta "er+in e+ e+pecialmente e*ecti"a en +i+tema+ cl<+ter donde podemo+ di"idir mediante
OpenMPI en tanto+ proce+o+ como m0/uina+ di+pone el cl<+ter 2 luego mediante OpenMP podemo+
di"idir en proce+o+ para lo+ di*erente+ n<cleo+ en cada m0/uina.

2( Comparati3a
:na "e. "i+ta la parte principal de cada uno de nue+tro+ cdigo+3 e identi*icado la+
caracter+tica+ m0+ rele"ante+ de la+ m0/uina+ /ue emplearemo+ para la+ medicione+3 pa+amo+ a "er
lo+ re+ultado+ de e-ecutar dic1o+ cdigo+ 2 lo+ tiempo+ /ue producen.
Ha2 /ue tener en cuenta /ue para obtener uno+ tiempo+ *iable+ no+ 1emo+ decidido por
repetir el c0lculo un determinado n<mero de "ece+.
:na "e. dic1o e+to3 procedemo+ a mo+trar en primer lugar la+ comparati"a+ entre tiempo+ de
e-ecucin en cada ordenador3 2 po+teriormente +e mo+trar0n la+ comparacione+ entre e/uipo+ por
cada tipo de programacin empleado para ob+er"ar cual de ello+ o*rece un me-or rendimiento.
Para cada comparati"a3 podremo+ ob+er"ar en primer lugar la tabla generada con la+
medicione+ de tiempo+ de e-ecucin para cada cdigo3 +eguida de una gr0*ica en la /ue tenemo+ una
*orma "i+ual de contra+tar lo+ re+ultado+8
#
a. PC A4
tam Secuencial OpenMP OpenMPI Hbrida
100 0,04 0,09 0,03 0,04
200 0,15 0,17 0,07 0,12
300 0,34 0,21 0,08 0,13
400 0,5 0,41 0,14 0,14
500 0,79 0,53 0,16 0,18
600 1,25 0,75 0,23 0,23
700 1,81 0,96 0,32 0,29
800 2,56 1,22 0,37 0,32
%
b. PC B4
tam Secuencial OpenMP OpenMPI Hibrida
100 0,03 0,03 0,01 0,04
200 0,09 0,07 0,04 0,06
300 0,26 0,15 0,07 0,09
400 0,39 0,24 0,09 0,11
500 0,63 0,4 0,12 0,16
600 0,89 0,54 0,17 0,19
700 1,21 0,78 0,24 0,23
800 1,58 0,97 0,31 0,28
'
c. PC C4
tam Secuencial OpenMP OpenMPI Hibrida
100 0,03 0,03 0,03 0,05
200 0,14 0,09 0,08 0,12
300 0,32 0,2 0,13 0,16
400 0,56 0,36 0,27 0,19
500 0,9 0,56 0,32 0,22
600 1,28 0,83 0,35 0,39
700 1,76 1,12 0,38 0,45
800 2,28 1,46 0,52 0,48
(
:na "e. "i+to lo+ re+ultado+ producido+ en cada ordenador +olamente no+ /ueda comparar
lo+ dato+ entre +3 para "er cu0l e+ el e/uipo m0+ potente de lo+ empleado+3 2 decidir /uB 1ace /ue
+ea me-or *rente a otro+.
d. C*di,o #ecue)cial4
tam tiemp!"# tiemp!$# tiemp!%#
100 0,04 0,03 0,03
200 0,15 0,09 0,14
300 0,34 0,26 0,32
400 0,5 0,39 0,56
500 0,79 0,63 0,9
600 1,25 0,89 1,28
700 1,81 1,21 1,76
800 2,56 1,58 2,28
1)
e. C*di,o Ope)MP4
tam tiemp!"# tiemp!$# tiemp!%#
100 0,09 0,03 0,03
200 0,17 0,07 0,09
300 0,21 0,15 0,2
400 0,41 0,24 0,36
500 0,53 0,4 0,56
600 0,75 0,54 0,83
700 0,96 0,78 1,12
800 1,22 0,97 1,46
11
5. C*di,o Ope)MPI4
tam tiemp!"# tiemp!$# tiemp!%#
100 0,03 0,01 0,03
200 0,07 0,04 0,08
300 0,08 0,07 0,13
400 0,14 0,09 0,27
500 0,16 0,12 0,32
600 0,23 0,17 0,35
700 0,32 0,24 0,38
800 0,37 0,31 0,52
12
,. C*di,o /0brido4
tam tiemp!"# tiemp!$# tiemp!%#
100 0,04 0,04 0,05
200 0,12 0,06 0,12
300 0,13 0,09 0,16
400 0,14 0,11 0,19
500 0,18 0,16 0,22
600 0,23 0,19 0,39
700 0,29 0,23 0,45
800 0,32 0,28 0,48
13
6( Co)clusio)es
:na "e. "i+ta+ la+ comparati"a+ /ue +e 1an reali.ado3 "amo+ a reali.ar un an0li+i+ de por
/uB +e dan lo+ re+ultado+ /ue +e 1an ido obteniendo en la+ prueba+ /ue 1emo+ reali.ado.
,n primer lugar "emo+ /ue en lo+ tre+ e/uipo+ "amo+ obteniendo me-ora+ cuanto ma2or e+
el grado de paraleli+mo. ,+to +e debe a /ue +e apro"ec1an me-or el 1ardCare de lo+ e/uipo+ al
di"idir el problema en +ubcon-unto+ independiente+ paraleli.able+ 2 /ue e+to+ +ubcon-unto+ +e
e-ecutan de *orma paralela3 no /ue el cdigo +ecuencial re/uiere 1acer la +uma de lo+ nDn elemento+
de la matri. uno a uno.
Otra conclu+in /ue podemo+ +acar a partir de e+to+ dato+ e+ /ue a ma2or n<mero de
elemento+ a proce+ar +e nota m0+ la me-ora del paraleli+mo con re+pecto al +ecuencial. 6a me-ora
/ue produce MPI con re+pecto a MP e+ grande tambiBn 2a /ue +e trata de traba-o en memoria
di+tribuida3 por lo /ue tarda muc1o meno+ /ue MP 2a /ue en memoria tiene <nicamente lo+ dato+
/ue le intere+en para traba-ar 2 en"iar0 al proce+ador mae+tro +lo lo+ re+ultado+3 eliminando
po+ible+ cuello+ de botella por acce+o +imult0neo a memoria de do+ o m0+ proce+adore+.
,n cuanto a la me-ora /ue produce la "er+in Hbrida con re+pecto a MPI o MP e+ /ue al
tener 1ilo+ MP /ue traba-an dentro de cada proce+o MPI3 apro"ec1amo+ a<n m0+ lo+ recur+o+ 2a
/ue tenemo+ traba-o con memoria compartida a la "e. /ue con memoria di+tribuida3 2 por tanto
"ario+ 1ilo+ 1aciendo la tarea /ue en MPI 1aca un +olo proce+ador. Podemo+ ob+er"ar /ue cuando
el tama?o e+ pe/ue?o pierde e*iciencia re+pecto a MPI 2a /ue +e tarda m0+ en reali.ar la+ di"i+ione+
/ue en lo+ propio+ c0lculo+ pero a medida /ue aumentamo+ el tama?o del problema "emo+ como
empie.a a ganar e*iciencia 1a+ta +uperar la de MPI.
!on re+pecto a la+ comparati"a+ entre e/uipo+3 podemo+ decir /ue el par0metro
determinante para obtener un e/uipo ganador 1a +ido la di*erencia de "elocidad e@i+tente entre lo+
proce+adore+32a /ue el /ue 1a obtenido me-ore+ tiempo+ en toda+ la+ prueba+ 1a +ido el P! &3 cu2a
"elocidad de proce+ado 1a +ido +uperior a la de lo+ otro+ do+ debido a /ue +u proce+ador *unciona a
2.#;H. mientra+ /ue lo+ otro+ do+ *uncionan a 2.4;H..
Podemo+ a*irmar /ue el tama?o de la memoria 5$M no a*ecta al rendimiento tanto como
podra e+perar+e 2a /ue el P! $3 con el doble de memoria /ue lo+ otro+ do+ e/uipo+ no obtiene
ning<n tipo de me-ora apreciable ni ninguna "enta-a +obre el P! &3 con ma2or "elocidad de
proce+amiento.
!omo conclu+in *inal3 podemo+ a*irmar /ue para problema+ de tama?o medianamente
grande+ +iempre no+ +upone una "enta-a reali.ar la paraleli.acin. Para la programacin 1brida3 en
cambio3 debemo+ e+tudiar primero +i dado el tama?o del problema no+ bene*iciara o no la
implementacin3 2a /ue como 1emo+ ob+er"ado en tama?o+ no tan grande+ perdemo+ rendimiento
re+pecto a MPI.
14

You might also like