Distribución de temperaturas en una placa con simulación en paralelo

18

Click here to load reader

description

Parallel simulation using FORTRAN90 code in Advanced Scientific Computing at Universidad de Córdoba (Spain). Heat distribution calculated by 4 processor using Jacobi method and Red-Black over-relaxed method.

Transcript of Distribución de temperaturas en una placa con simulación en paralelo

Page 1: Distribución de temperaturas en una placa con simulación en paralelo

Distribución de temperaturas de una placa

Javier García Molleja

Programación Cientíca Avanzada

Índice

1. Denición del problema 2

1.1. Obtención de la ecuación diferencial . . . . . . . . . . . . . . . . . . . . . . 21.2. Imposición de condiciones de contorno . . . . . . . . . . . . . . . . . . . . 2

2. Método de resolución 3

2.1. Aplicación de diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . 42.2. Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3. Método de RedBlack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Seudocódigo 6

4. Programación 10

5. Juego de datos 10

6. Resultados 11

7. Discusión de resultados 14

1

Page 2: Distribución de temperaturas en una placa con simulación en paralelo

1 DEFINICIÓN DEL PROBLEMA Javier García Molleja

1. Denición del problema

En el problema vamos a considerar la distribución de temperaturas de una placa de unordenador en el que se encuentra situado el procesador[1]. Para trabajar adecuadamentenecesitamos conocer las dimensiones de la placa y del procesador, además de la posiciónde este último. La placa es rectangular de dimensiones 2 cm de largo y 1 cm de ancho y elprocesador es cuadrado de 0,25 cm de lado. Éste se localiza a 0,25 cm hacia la izquierday arriba de la esquina inferior derecha.

Sabemos que los lados de la placa están a 25oC, excepto el lado superior que está a10oC por estar al lado del ventilador del ordenador. También tenemos que el procesadorsiempre está a 50oC, así que con todo esto vamos a plantear la ecuación diferencial ylas respectivas condiciones de contorno. Como estamos considerando un problema físicobastante estudiado el correcto planteamiento matemático estará bien condicionado por loque un tratamiento numérico es posible.

1.1. Obtención de la ecuación diferencial

Nuestra práctica tiene como objetivo determinar la distribución de temperaturas enuna placa rectangular de ordenador, por lo que debemos estudiar la ecuación de Poissonen dos dimensiones

∇2u = ∆u =∂2u

∂x2+

∂2u

∂y2= f(x, y)

La función f(x, y) representa las posibles fuentes o sumideros existentes en el dominio,pero como carecemos de éstos (al considerar que el procesador no forma parte del contorno)su valor es

f(x, y) = 0,

por consiguiente la ecuación diferencial es la de Laplace:

∇2u = ∆u =∂2u

∂x2+

∂2u

∂y2= 0.

La solución de esta ecuación, u, se denominará armónica.

1.2. Imposición de condiciones de contorno

Una vez determinada la ecuación diferencial debemos indiciar los valores que existenen el contorno del dominio. Esto se traduce en un problema de Dirichlet.

Las condiciones de contorno son entonces:

1. El extremo superior del dominio está a 10oC

2 5.o Física

Page 3: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 2 MÉTODO DE RESOLUCIÓN

2. El resto de extremos del dominio están a 25oC

3. El procesador está a 50oC

Tras denir esto podemos ya considerar el problema en su conjunto, el cual estarábien planteado (con solución que existe, es única y varía contínuamente con los datos delproblema) y además poseerá solución analítica (aunque en forma de serie innita):

∂2u

∂x2+

∂2u

∂y2= 0 en Ω

u(x, y) = g(x, y) =

10, para los puntos (x, 1)

25, para los puntos (x, 0), (0, y), (1, y)

50, para los puntos 0,25 ≤ x ≤ 0,50 , 1,50 ≤ y ≤ 1,75

sobre ∂Ω

2. Método de resolución

Tras plantear la ecuación diferencial con las respectivas condiciones de contorno de-beríamos resolver el problema numéricamente. Para ello es necesario realizar un malladode la placa, que por ser la placa rectangular escogeremos el tamaño de paso igual en ambasdimensiones, por lo que el número de puntos en cada dimensión deberán ser dependientes.

hx =hy

2

Nx + 1=

1

Ny + 1

2Ny + 2 =Nx + 1

Nx =2Ny + 1

Así, un punto cualquiera de la placa se determinará con la dupla (xi, yj), tal que

xi =ih

yj =jh

donde

i =0, 1, 2, . . . , Nx + 1

j =0, 1, 2, . . . , Ny + 1

hx =Lx

Nx + 1=hy =

Ly

Ny + 1.

Indicamos que Lx es la longitud de la placa en la dirección del eje x (horizontal), que Ly esla longitud de la placa en la dirección del eje y (vertical) y que Nx es el número de puntosdel mallado en la dimensión horizontal y Ny es lo mismo para la dimensión vertical.

Los puntos que contengan 0 ó N + 1 se denominarán nodos frontera y el resto sellamarán nodos interiores.

3 5.o Física

Page 4: Distribución de temperaturas en una placa con simulación en paralelo

2 MÉTODO DE RESOLUCIÓN Javier García Molleja

2.1. Aplicación de diferencias nitas

Para llegar a esto es necesario aproximar la derivada segunda de f(x) mediante laaplicación de un desarrollo en serie de Taylor en los puntos x± h :

f ′′(x) ≈ f(x+ h)− 2f(x) + f(x− h)

h2.

De esta manera las derivadas parciales de la ecuación de Laplace toman el siguienteaspecto al aplicarles diferencias nitas:

∂2u

∂x2(x, y) ≈u(x+ h, y) + u(x− h, y)− 2u(x, y)

h2

∂2u

∂y2(x, y) ≈u(x, y + h) + u(x, y − h)− 2u(x, y)

h2

Llegado a este punto sustituímos estos resultados en la ecuación diferencial para pos-teriormente despejar el punto u(x, y) :

0 ≈u(x+ h, y) + u(x− h, y) + u(x, y + h) + u(x, y − h)− 4u(x, y)

h2

u(x, y) ≈1

4[u(x+ h, y) + u(x− h, y) + u(x, y + h) + u(x, y − h)]

Ahora bien, al calcular numéricamente estos valores obtendremos un error, el cual se irápropagando en cada cálculo. De este modo no estamos calculando realmente u(xi, yj) sinosu aproximación Ui,j, entonces la última ecuación será:

Ui,j =1

4[Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1] ,

que es conocida como la fórmula de los cinco puntos.A continuación debemos numerar los nodos (sin contar las esquinas pues no apare-

cerán en las operaciones) siguiendo el orden lexicográco, es decir, comenzamos por (1, 0),siguiendo por (2, 0), (3, 0), . . . , (Nx + 1, 0), (0, 1), (1, 1), (2, 1) . . . El sistema de ecuacionesresultante dará origen a una matriz simétrica, denida-positiva, de diagonal dominante ybanda.

Tras haber discretizado el dominio es necesario considerar que los vértices del proce-sador deben coincidir con los nodos del mallado, ya que si esto no es así las dimensionesde éste quedarán sobrestimadas o subestimadas (dependiendo del caso) y los resultadosque obtengamos serán poco realistas. Para una correcta elección del número de puntos decada dimensión debemos analizar los vértices del procesador en notación fraccionaria yconseguir que todos posean el mismo denominador. Podemos ver fácilmente que es 4, porlo que debe cumplirse que el número de puntos de cada dimensión sean múltiplos de estevalor.

4 5.o Física

Page 5: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 2 MÉTODO DE RESOLUCIÓN

2.2. Método de Jacobi

Si consideramos que Uki,j es la temperatura del punto interior del mallado (xi, yj) en la

k-ésima iteración podemos conocer el valor en la siguiente iteración mediante la aplicaciónde la fórmula de los cinco puntos

Uk+1i,j =

1

4

[Uki+1,j + Uk

i−1,j + Uki,j+1 + Uk

i,j−1

],

que es el llamado método de Jacobi en el que no hace falta construir la matriz del sistema.En este método el valor en cada punto es la media de los valores adyacentes, así que sonnecesarias tantas iteraciones como puntos hemos escogido para el mallado para obteneruna aproximación aceptable. Además, para hacer decrecer el error por un factor de 2,hace falta realizar

k ≈(N + 1

π

)2

iteraciones, con el inconveniente de cuanto más grande sea N, (considerando para éstetodos los puntos del dominio) más lenta sea la convergencia.

Si analizamos detenidamente el método podemos ver que se puede paralelizar, asig-nando convenientemente los nodos a los procesadores disponibles para sus actualización.Sin embargo, se requiere la comunicación entre procesadores de los valores frontera.

2.3. Método de RedBlack

Si partimos del método de GaussSeidel secuencial

Uk+1i,j =

1

4

[Uki+1,j + Uk+1

i−1,j + Uki,j+1 + Uk+1

i,j−1

]podemos ver indicios de paralelización si nos damos cuenta que los nodos cuyos índicessuman par dependen sólo de nodos cuyos índices suman impar y viceversa, por lo quellegamos al método RedBlack en el que actualizamos simultáneamente todos los nodosnegros (suma par) y después todos los rojos (suma impar)

NODOS NEGROS: i+ j = par

Uk+1i,j =

1

4

[Uki+1,j + Uk

i−1,j + Uki,j+1 + Uk

i,j−1

]NODOS ROJOS: i+ j = impar

Uk+1i,j =

1

4

[Uk+1i+1,j + Uk+1

i−1,j + Uk+1i,j+1 + Uk+1

i,j−1

]Aunque este método es dos veces más rápido que el de Jacobi, no acelera la conver-

gencia, por lo que debemos introducir un factor de amplicación que mejore la corrección

5 5.o Física

Page 6: Distribución de temperaturas en una placa con simulación en paralelo

3 SEUDOCÓDIGO Javier García Molleja

de nuestro método para acercarnos al punto que calculamos. Esto da lugar al métodoSOR que también se puede paralelizar. Para nuestro caso lo implementamos en el deRedBlack:

NODOS NEGROS: i+ j = par

Uk+1i,j =Uk

i,j +w

4

[Uki+1,j + Uk

i−1,j + Uki,j+1 + Uk

i,j−1 − 4Uki,j

]NODOS ROJOS: i+ j = impar

Uk+1i,j =Uk

i,j +w

4

[Uk+1i+1,j + Uk+1

i−1,j + Uk+1i,j+1 + Uk+1

i,j−1 − 4Uki,j

]Para que este método sea óptimo debemos buscar el valor w que minimice el factor dedecrecimiento de error y analíticamente se muestra que es

wopt =2

1 + sen(

πN+1

) ∈ (1, 2).

Así pues, para hacer decrecer el error por un factor de 2, hace falta realizar k iteracionesde tal manera que

k ≈(N + 1

)que es, aproximadamente, la raíz cuadrada del número de pasos que Jacobi requería.

3. Seudocódigo

A continuación vamos a describir el seudocódigo del método de Jacobi. Resaltemosque no indicaremos las partes referentes al reloj y a la grabación de datos, quedándonosasí con el método in situ.

PROGRAMA Jacobi_ParaleloSIN CRITERIO IMPLÍCITOREAL*8,ASIGNABLE::U(:,:), Uant(:,:),Error(:,:)LÓGICO,ASIGNABLE::M(:,:)REAL*8::tolerancia, hENTERO::Nx, k, control, procXini, procXfin, procYini, procYfinENTERO::Nx1, Ny1, Nxmenuno, NymenunoREAL*8,PARÁMETRO::uncu=1.0/4.0ENTERO,PARÁMETRO::Ny=51

!HPF$ DISTRIBUIR(BLOQUE,BLOQUE)::U!HPF$ ALINEAR CON U::Uant!HPF$ ALINEAR CON U::Error

6 5.o Física

Page 7: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 3 SEUDOCÓDIGO

!HPF$ ALINEAR CON U::M

Nx = 2*Ny + 1Nx1 = Nx + 1Ny1 = Ny + 1Nxmenuno = Nx - 1Nymenuno = Ny - 1h = 1.0/(Ny + 1)

ASIGNAR(U(0:Nx+1,0:Ny+1))ASIGNAR(Uant(0:Nx+1,0:Ny+1))ASIGNAR(M(0:Nx+1,0:Ny+1))ASIGNAR(Error(0:Nx+1,0:Ny+1))

IMPRIMIR*,"Introduzca la tolerancia deseada"LEER*,toleranciaIMPRIMIR*,"Indique el maximo de iteraciones para controlar el bucle"LEER*,control

procXini = 1.5/hprocXfin = 1.75/hprocYini = 0.25/hprocYfin = 0.5/h

U(:,0) = 25.0U(:,Ny+1) = 10.0U(0,:) = 25.0U(Nx+1,:) = 25.0U(1:Nx,1:Ny) = 50.0Uant = 0.0Error = 0.0M = .VERDAD.M(procXini:procXfin, procYini:procYfin) = .FALSO.

HACER k=1,controlUant = UDONDE (M(1:Nx,1:Ny))U(1:Nx,1:Ny) = uncu*(U(2:Nx1,1:Ny) + U(0:Nxmenuno,1:Ny) &+ U(1:Nx,2:Ny1) + U(1:Nx,0:Nymenuno))FIN DONDEError = ABS((U - Uant)/U)

7 5.o Física

Page 8: Distribución de temperaturas en una placa con simulación en paralelo

3 SEUDOCÓDIGO Javier García Molleja

SI(MAXVAL(Error)<tolerancia)SALIRFIN HACER

IMPRIMIR*,"El bucle acabo en la iteracion",kIMPRIMIR*,"El error cometido por los calculos es",MAXVAL(Error)FIN PROGRAMA Jacobi_Paralelo

Ahora escribiremos el seudocódigo básico para el método RedBlack con sobrerrela-jación.

PROGRAMA Red_Black_SORSIN CRITERIO IMPLÍCITOENTERO::Nx, i, j, k, control, procXini, procXfin, procYini, procYfinENTERO::Nx1, Ny1, Nxmenuno, NymenunoENTERO, PARÁMETRO::Ny=51REAL,PARÁMETRO::w=1.9REAL*8,ASIGNABLE::U(:,:), Uant(:,:), Error(:,:)LÓGICO,ASIGNABLE::P(:,:), M(:,:)REAL*8::tol,uncu, h

!HPF$ DISTRIBUIR(BLOQUE,BLOQUE)::U!HPF$ ALINEAR CON U::Uant!HPF$ ALINEAR CON U::Error!HPF$ ALINEAR CON U::P!HPF$ ALINEAR CON U::M

IMPRIMIR*,"El parametro de relajacion optimo es",wIMPRIMIR*,"Introduzca la tolerancia"LEER*,tolIMPRIMIR*,"Indique el maximo de iteraciones"LEER*,control

uncu = 1.0/4.0Nx = 2*Ny + 1Nx1 = Nx + 1Ny1 = Ny + 1Nxmenuno = Nx - 1Nymenuno = Ny - 1h = 1.0/(Ny + 1)

ASIGNAR(U(0:Nx+1,0:Ny+1))ASIGNAR(Uant(0:Nx+1,0:Ny+1))

8 5.o Física

Page 9: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 3 SEUDOCÓDIGO

ASIGNAR(P(0:Nx+1,0:Ny+1))ASIGNAR(M(0:Nx+1,0:Ny+1))ASIGNAR(Error(0:Nx+1,0:Ny+1))

procXini = 1.5/hprocXfin = 1.75/hprocYini = 0.25/hprocYfin = 0.5/h

U(:,0) = 25.0U(:,Ny+1)= 10.0U(0,:) = 25.0U(Nx+1,:) = 25.0U(1:Nx,1:Ny) = 50.0Uant = 0.0Error = 0.0M = .VERDAD.M(procXini:procXfin, procYini:procYfin) = .FALSO.

PARA TODOS(i=0:Nx+1,j=0:Ny+1)P(i,j) = (MOD(i+j,2)==0)FIN PARA TODOS

HACER k=1,controlUant = UDONDE(M(1:Nx,1:Ny))DONDE (P(1:Nx,1:Ny))U(1:Nx,1:Ny) = U(1:Nx,1:Ny) + w*uncu*(U(0:Nxmenuno,1:Ny)&+ U(2:Nx1,1:Ny) + U(1:Nx,0:Nymenuno) + U(1:Nx,2:Ny1)&- 4.0*U(1:Nx,1:Ny))SI NO DONDEU(1:Nx,1:Ny) = U(1:Nx,1:Ny) + w*uncu*(U(0:Nxmenuno,1:Ny)&+ U(2:Nx1,1:Ny) + U(1:Nx,0:Nymenuno) + U(1:Nx,2:Ny1)&-4.0*U(1:Nx,1:Ny))FIN DONDEFIN DONDEError = ABS((U - Uant)/U)SI(MAXVAL(Error)<tol)SALIRFIN HACER

IMPRIMIR*,"La ultima iteracion es",k

9 5.o Física

Page 10: Distribución de temperaturas en una placa con simulación en paralelo

5 JUEGO DE DATOS Javier García Molleja

IMPRIMIR*,"Con un error relativo",MAXVAL(Error)FIN PROGRAMA Red_Black_SOR

4. Programación

Los programas creados a partir del lenguaje FORTRAN 90 se presentarán en soportemagnético adjuntados a la presente memoria [2].

5. Juego de datos

Antes de mostrar los datos de entrada es necesario considerar que el programa seejecutará en paralelo. Por este motivo debemos recurrir al uso de directivas !HPF$.

Gracias a estas directivas[3] podremos distribuir sobre los procesadores disponibles lamatriz principal, así como alinear sobre ella (es decir, distribuir el resto de matrices enfunción de la primera) las otras matrices de las que disponemos para realizar nuestroscálculos. Es conveniente realizar la distribución por bloques, ya que los métodos a pro-gramar necesitan para actualizar los valores los datos de los nodos más próximos y conesta elección la comunicación entre procesadores será mínima. Además, para asegurar unabuena paralelización y aprovechamiento de memoria recurriremos frecuentemente al usode secciones matriciales, así como el uso de construcciones FORALL y WHERE siemprey cuando sea posible.

También debemos centrarnos en una precisión numérica aceptable, por lo que uti-lizaremos reales con doble precisión, de esta manera evitaremos en multitud de ocasionesla salida del bucle de control cuando aún la precisión requerida no ha sido alcanzada.

Los datos de entrada que incluiremos en ambos programas son los siguientes

TOLERANCIA: 0,0000001

CONTROL: 20000

En el caso del método de RedBlack SOR debemos buscar el valor óptimo de w, por loque una vez que el programa secuencial haya compilado correctamente debemos ejecutarlocon varios valores, comparando en cuál ha necesitado menos iteraciones para alcanzar latolerancia referida:

10 5.o Física

Page 11: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 6 RESULTADOS

w k

1.99 16651.95 3301.9 1951.75 6921.7 8491.6 11811.4 19461.01 4148

Este valor sólo depende del método en sí, por lo que w también será válida para elcaso de la ejecución en paralelo, por lo que elegimos entonces w = 1,9.

Una vez obtenidos los resultados tanto secuencial como paralelamente (usando uno,dos y cuatro procesadores) debemos obtener su tiempo de ejecución, T, y el número deprocesadores utilizados, p, para calcular la ganancia en velocidad

Sp =Ts

Tp

y a partir de este valor determinar la eciencia

η =Sp

p

eligiendo de este modo qué método es mejor al ejecutar el programa paralelizado con pprocesadores.

6. Resultados

En primer lugar debemos ejecutar el método de Jacobi y el método RedBlack SORen secuencial y ver los datos que devuelven, para poder tener así los primeros datos conlos que calcular posteriormente la ganancia en velocidad y la eciencia.

Método Iteraciones Error Ts

JACOBI 7912 9.999883672849208E-8 2.285500RED-BLACK SOR 195 9.853435983766532E-8 6.4900003E-2

Como podemos observar a primera vista en la ejecución secuencial el método de RedBlack SOR es mejor que el de Jacobi, tanto en iteraciones, como en error relativo y tiempode ejecución.

La distribución de temperaturas en la placa de 52 nodos verticales y 104 nodos hori-zontales tras utilizar el método de Jacobi se presenta en la siguiente gura donde el color

11 5.o Física

Page 12: Distribución de temperaturas en una placa con simulación en paralelo

6 RESULTADOS Javier García Molleja

rojo indica alta temperatura y el color azul baja. Además, se han incluido ciertos valoresnuméricos en las líneas isotermas cercanos a los bordes para comprobar que las condicionesde contorno no han sido alteradas.

x

Isotermas (50)

23.3333

11.5686

20.1961

24.9

02

24.1176

42.1569

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35

40

45

50

Figura 1: Solución mediante el método de Jacobi

Podemos ver que la solución es bastante buena, ya que la distribución de temperaturasse adapta a las ideas previas que teníamos: la zona cercana al procesador debe estara una temperatura elevada, cercana a los 50oC. Si nos alejamos, la caída será brusca,regularizándose en las zonas intermedias entre aquél y los contornos. Una vez que nosacerquemos lo suciente a éstos vemos que la temperatura tiende a la impuesta.

Además, debemos tener en cuenta que la aproximación es bastante buena debido ala tolerancia que se requería para salir del bucle, 10−7, por lo que parece que ha sidocorrecto el uso de doble precisión a la hora de declarar las variables. Debemos indicar porúltimo que estos resultados los esperaremos en las distintas ejecuciones en paralelo, yaque el problema y el método son los mismos, la única diferencia estará en que no todaslas operaciones las realizará el mismo procesador.

De igual manera vamos a mostrar la distribución nal de temperaturas de la placaobtenida por el método de RedBlack con sobrerrelajación. Es de esperar que la guraobtenida sea bastante parecida a la anterior, ya que el problema es el mismo, sólo vavariando el método de resolución. Al igual que hemos hecho antes, aparecerá un código decolores y varios valores numéricos que nos conrmarán los buenos resultados obtenidos.

12 5.o Física

Page 13: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 6 RESULTADOS

x

Isotermas (50)

23.3333

11.5686

24.90

2

24.1176

18.6275

42.9412

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35

40

45

50

Figura 2: Solución mediante el método de RedBlack SOR

Podemos conrmar que los resultados son análogos con la anterior solución, aunqueeste método ha necesitado menos operaciones para llegar a la distribución nal. Debemostambién agradecer el uso de la doble precisión por haber llegado a este punto. En estepunto es necesario indicar que las ejecuciones en paralelo mostrarán el mismo resultado.

A continuación vamos a escribir los resultados obtenidos mediante la ejecución enparalelo con un procesador:

Método Iteraciones Error Tp

JACOBI 7912 9.9998836545329137E-8 1.544000RED-BLACK SOR 195 9.8534360389497298E-8 7.0000000E-2

Ahora debemos indicar los resultados tras haber ejecutado el programa en paralelocon dos procesadores:

Método Iteraciones Error Tp

JACOBI 7912 9.9998836545329137E-8 6.656000RED-BLACK SOR 195 9.8534360389497298E-8 0.3510000

Finalmente, escribimos los resultados obtenidos con cuatro procesadores trabajandoen paralelo:

13 5.o Física

Page 14: Distribución de temperaturas en una placa con simulación en paralelo

7 DISCUSIÓN DE RESULTADOS Javier García Molleja

Método Iteraciones Error Tp

JACOBI 7912 9.9998836545329137E-8 13.88400RED-BLACK SOR 195 9.8534360389497298E-8 0.6710000

Tras todos estos datos podemos calcular inmediatamente la ganancia en velocidad yla eciencia para cada una de las ejecuciones en paralelo:

Para un procesador:

JACOBI: Sp = 1,480246114, así que η = 1,480246114

RED-BLACK: Sp = 0,9271429, así que η = 0,9271429

El mejor es el de JACOBI.

Para dos procesadores:

JACOBI: Sp = 0,343374399, así que η = 0,171687199

RED-BLACK: Sp = 0,184900293, así que η = 0,092450146

El mejor es el de JACOBI.

Para cuatro procesadores:

JACOBI: Sp = 0,041153486, así que η = 0,010288371

RED-BLACK: Sp = 0,096721315, así que η = 0,024180328

El mejor es el de RED-BLACK.

7. Discusión de resultados

Los resultados anteriormente obtenidos llegan a ser lógicos, es decir, mientras másprocesadores trabajando en paralelo más tiempo de ejecución. Esto es debido a que elnúmero de puntos usados (52x104) es demasiado bajo como para que la ejecución enparalelo dé buenos resultados. Por este motivo vamos a realizar de nuevo los cálculos para

14 5.o Física

Page 15: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 7 DISCUSIÓN DE RESULTADOS

el caso, por ejemplo, de 520x1040 puntos. Las condiciones que vamos a introducir comovalores de entrada serán:

TOLERANCIA: 0,001

ITERACIONES: 100000

También es necesario mencionar que en el caso del método de RedBlack SOR vamos amantener el valor de w = 1,9, aunque al cambiar el número de puntos del mallado éste yano será el valor óptimo. En cualquier caso tras la compilación y ejecución en secuencialde ambos métodos los resultados serán:

Método Iteraciones Error Ts

JACOBI 350 9.977419886639343E-4 11.51430RED-BLACK SOR 351 9.999194854023665E-4 18.41900

En tiempo de ejecución y en el número de iteraciones el método de Jacobi es el másadecuado. Esto puede ser debido a que el parámetro w no es el óptimo. Si paralelizamosambos programas, compilamos y ejecutamos con un único procesador los resultados son:

Método Iteraciones Error Tp

JACOBI 350 9.9774198866405396E-4 11.89200RED-BLACK SOR 351 9.9991948540142364E-4 36.34906

Ahora debemos realizar la ejecución de ambos programas paralelos utilizando dos proce-sadores cuyos datos de salida son los que presentamos a continuación:

Método Iteraciones Error Tp

JACOBI 350 9.9774198866405396E-4 6.282000RED-BLACK SOR 351 9.9991948540142364E-4 18.95100

Por último es necesario realizar la ejecución utilizando cuatro procesadores en paralelo.Entonces:

Método Iteraciones Error Tp

JACOBI 350 9.9774198866405396E-4 3.645000RED-BLACK SOR 351 9.9991948540142364E-4 10.74700

Una vez conseguido todo este conjunto de datos calcularemos la ganancia en velocidady la eciencia para ver en cada caso cuál es el mejor método:

Para un procesador:

JACOBI: Sp = 0,968239152, así que η = 0,968239152

RED-BLACK: Sp = 0,506725621, así que η = 0,506725621

El mejor es el de JACOBI.

15 5.o Física

Page 16: Distribución de temperaturas en una placa con simulación en paralelo

7 DISCUSIÓN DE RESULTADOS Javier García Molleja

Para dos procesadores:

JACOBI: Sp = 1,832903534, así que η = 0,916451767

RED-BLACK: Sp = 0,971927602, así que η = 0,485963801

El mejor es el de JACOBI.

Para cuatro procesadores:

JACOBI: Sp = 3,158930041, así que η = 0,78973251

RED-BLACK: Sp = 1,713873639, así que η = 0,428468409

El mejor es el de JACOBI.

Como último paso vamos a volver a realizar todos estos cálculos para el caso de quetengamos 1040x2080 puntos. Por simplicidad mantendremos la misma tolerancia y númeromáximo de iteraciones que en el caso anterior, ya que con un nivel de tolerancia bajo loscálculos serán menos y con un número elevado de iteraciones nos aseguraremos que latolerancia ha sido alcanzada. Volveremos a elegir w = 1,9 aunque no sea el valor óptimo.

Los resultados con la compilación y ejecución en secuancial darán

Método Iteraciones Error Ts

JACOBI 350 9.977419886639343E-4 46.34490RED-BLACK SOR 351 9.999194822266609E-4 74.60610

Otra vez observamos que el mejor método en secuencial es el de Jacobi, pero es necesariotener en cuenta que el parámetro de sobrerrelajación no es el óptimo. Ahora, compilemosy ejecutemos en paralelo con un solo procesador:

Método Iteraciones Error Tp

JACOBI 350 9.9774198866405396E-4 46.46800RED-BLACK SOR 351 9.9991948222642475E-4 143.7870

Presentemos en una tabla los resultados obtenidos al ejecutar con dos procesadores enparalelo:

Método Iteraciones Error Tp

JACOBI 350 9.9774198866405396E-4 24.05600RED-BLACK SOR 351 9.9991948222642475E-4 73.82700

16 5.o Física

Page 17: Distribución de temperaturas en una placa con simulación en paralelo

Javier García Molleja 7 DISCUSIÓN DE RESULTADOS

Veamos nalmente los datos que obtenemos al ejecutar con cuatro procesadores en parale-lo:

Método Iteraciones Error Tp

JACOBI 350 9.9774198866405396E-4 12.8800RED-BLACK SOR 351 9.9991948222642475E-4 37.83700

Tras esto determinemos la ganancia en velocidad y la eciencia:

Para un procesador:

JACOBI: Sp = 0,997350865, así que η = 0,997350865

RED-BLACK: Sp = 0,518865405, así que η = 0,518865405

El mejor es el de JACOBI.

Para dos procesadores:

JACOBI: Sp = 1,926542235, así que η = 0,963271117

RED-BLACK: Sp = 1,01055305, así que η = 0,505276524

El mejor es el de JACOBI.

Para cuatro procesadores:

JACOBI: Sp = 3,598206522, así que η = 0,89955163

RED-BLACK: Sp = 1,971776304, así que η = 0,492944075

El mejor es el de JACOBI.

Los resultados son lógicos, puesto que el método de RedBlack SOR no contaba conel valor óptimo de w. Además cuando ejecutamos en paralelo con un único procesadorlos tiempos se elevan drásticamente, ya que en esta situación debe ejecutar el código ensecuencial, pero siguiendo el protocolo de la ejecución en paralelo.

También debemos resaltar que en el mallado de 520x1040 puntos utilizando dos proce-sadores los resultados no son los esperados. Esto puede ser debido a que el procesadornúmero 2 ha podido tener algunos problemas técnicos que han desvirtuado el resultado.

17 5.o Física

Page 18: Distribución de temperaturas en una placa con simulación en paralelo

REFERENCIAS Javier García Molleja

Es necesario dar a conocer el número tan bajo de iteraciones con las que hemosobtenido los resultados en dominios tan grandes. El origen puede estar en algún falloa la hora de escribir el código o que la tolerancia impuesta es baja, aunque suciente paratener una solución aceptable. Además el aprovechamiento de memoria caché[4] realizadopor utilizar secciones matriciales, FORALL y WHERE ha podido inuir en el númerototal de iteraciones y su tiempo de ejecución.

La sesión realizada presenta gran validez actual. En el mundo de la creación de orde-nadores es de vital importancia conocer la distribución de temperaturas en la placa, yaque sus componentes, hechos con silicio, se recalientan demasiado y es necesario que elventilador evite posibles daños irreversibles. También se puede encontrar otra aplicaciónen el estudio climático, pudiendo de esta manera conocer las posibles distribuciones y lasimportantes bajadas o subidas de temperatura tras algún proceso natural o humano. Coneste procedimiento se puede estudiar el clima futuro del planeta y prevenir de las posiblescausas que empeoren el medio ambiente.

Gracias al planteamiento, elaboración, ejecución y resolución llevada a cabo en estasesión el conocimiento sobre programación en paralelo se convierte en algo habitual en lavida profesional del programador, dándole oportunidad de revisar sus antiguos códigos ycon el uso de directivas resolverlo en paralelo. También se recurre al uso asiduo de cons-trucciones, tales como FORALL y WHERE, que se favorecen en paralelo y la mejora naldel código para hacerlo más eciente evitando incluir operaciones simples y repetitivasdentro de los bucles y que además no tienen relevancia directa con los cálculos que estamosrealizando. Es cierto que nos ayuda además a la hora de ver si ciertas construcciones sonsusceptibles de ser paralelizadas o no. Por lo que nalmente podemos indicar que larealización de esta sesión es provechosa en cuanto a la ampliación de conocimientos.

Referencias

[1] M. Marín Beltrán: Ampliación de Métodos Numéricos ; 2005, Universidad de Córdoba

[2] J.L. Cruz Soto: Programación Cientíca; 2003, Universidad de Córdoba

[3] J.L. Cruz Soto, M. Marín Beltrán: Programación Cientíca Avanzada; 2006, Univer-sidad de Córdoba

[4] J.I. Benavides Benítez: Estructura de Computadores ; 2006, Universidad de Córdoba

18 5.o Física