Your SlideShare is downloading. ×
Distribución de temperaturas en una placa con simulación en paralelo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

787
views

Published on

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 …

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.

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
787
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Distribución de temperaturas de una placa Javier García Molleja Programación Cientíca AvanzadaÍndice1. Denición del problema 2 1.1. Obtención de la ecuación diferencial . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Imposición de condiciones de contorno . . . . . . . . . . . . . . . . . . . . 22. Método de resolución 3 2.1. Aplicación de diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Método de RedBlack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53. Seudocódigo 64. Programación 105. Juego de datos 106. Resultados 117. Discusión de resultados 14 1
  • 2. 1 DEFINICIÓN DEL PROBLEMA Javier García Molleja1. 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 25o C, excepto el lado superior que está a10o C por estar al lado del ventilador del ordenador. También tenemos que el procesadorsiempre está a 50o C, 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 ∂ 2u ∇2 u = ∆u = + = f (x, y) ∂x2 ∂y 2 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 ∂ 2u ∇2 u = ∆u = + = 0. ∂x2 ∂y 2La 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 10o C2 5.o Física
  • 3. Javier García Molleja 2 MÉTODO DE RESOLUCIÓN 2. El resto de extremos del dominio están a 25o C 3. El procesador está a 50o C 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 ∂ 2u + = 0 en Ω ∂x2 ∂y 2  10, para los puntos (x, 1) u(x, y) = g(x, y) = 25, para los puntos (x, 0), (0, y), (1, y) sobre ∂Ω   50, para los puntos 0,25 ≤ x ≤ 0,50 , 1,50 ≤ y ≤ 1,752. 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 1 = Nx + 1 Ny + 1 2Ny + 2 =Nx + 1 Nx =2Ny + 1Así, un punto cualquiera de la placa se determinará con la dupla (xi , yj ), tal que xi =ih yj =jhdonde i =0, 1, 2, . . . , Nx + 1 j =0, 1, 2, . . . , Ny + 1 Lx Ly hx = =hy = . Nx + 1 Ny + 1Indicamos 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
  • 4. 2 MÉTODO DE RESOLUCIÓN Javier García Molleja2.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 + h) − 2f (x) + f (x − h) f ′′ (x) ≈ . h2 De esta manera las derivadas parciales de la ecuación de Laplace toman el siguienteaspecto al aplicarles diferencias nitas: ∂ 2u u(x + h, y) + u(x − h, y) − 2u(x, y) 2 (x, y) ≈ ∂x h2 2 ∂ u u(x, y + h) + u(x, y − h) − 2u(x, y) 2 (x, y) ≈ ∂y h2 Llegado a este punto sustituímos estos resultados en la ecuación diferencial para pos-teriormente despejar el punto u(x, y) : u(x + h, y) + u(x − h, y) + u(x, y + h) + u(x, y − h) − 4u(x, y) 0≈ h2 1 u(x, y) ≈ [u(x + h, y) + u(x − h, y) + u(x, y + h) + u(x, y − h)] 4Ahora 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á: 1 Ui,j = [Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 ] , 4que 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
  • 5. Javier García Molleja 2 MÉTODO DE RESOLUCIÓN2.2. Método de Jacobi Si consideramos que Ui,j es la temperatura del punto interior del mallado (xi , yj ) en la kk-ésima iteración podemos conocer el valor en la siguiente iteración mediante la aplicaciónde la fórmula de los cinco puntos k+1 1[ k k k k ] Ui,j = Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 , 4que 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 ( )2 N +1 k≈ π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 k+1 1[ k k+1 k k+1 ] Ui,j = Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 4podemos 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 k+1 1[ k k k k ] Ui,j = Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 4 NODOS ROJOS: i + j = impar k+1 1 [ k+1 k+1 k+1 k+1 ] Ui,j = Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 4 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ón5 5.o Física
  • 6. 3 SEUDOCÓDIGO Javier García Mollejade 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 w[ k ] k+1 k Ui,j =Ui,j + Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 − 4Ui,j k k k k 4 NODOS ROJOS: i + j = impar w [ k+1 ] k+1 k Ui,j =Ui,j + Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 − 4Ui,j k+1 k+1 k+1 k 4Para 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 2 wopt = ( ) ∈ (1, 2). 1 + sen Nπ+1Así pues, para hacer decrecer el error por un factor de 2, hace falta realizar k iteracionesde tal manera que ( ) N +1 k≈ 2π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::Error6 5.o Física
  • 7. Javier García Molleja 3 SEUDOCÓDIGO!HPF$ ALINEAR CON U::MNx = 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 deseadaLEER*,toleranciaIMPRIMIR*,Indique el maximo de iteraciones para controlar el bucleLEER*,controlprocXini = 1.5/hprocXfin = 1.75/hprocYini = 0.25/hprocYfin = 0.5/hU(:,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
  • 8. 3 SEUDOCÓDIGO Javier García MollejaSI(MAXVAL(Error)tolerancia)SALIRFIN HACERIMPRIMIR*,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::MIMPRIMIR*,El parametro de relajacion optimo es,wIMPRIMIR*,Introduzca la toleranciaLEER*,tolIMPRIMIR*,Indique el maximo de iteracionesLEER*,controluncu = 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
  • 9. Javier García Molleja 3 SEUDOCÓDIGOASIGNAR(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/hU(:,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 TODOSHACER 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 HACERIMPRIMIR*,La ultima iteracion es,k9 5.o Física
  • 10. 5 JUEGO DE DATOS Javier García MollejaIMPRIMIR*,Con un error relativo,MAXVAL(Error)FIN PROGRAMA Red_Black_SOR4. 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
  • 11. Javier García Molleja 6 RESULTADOS w k 1.99 1665 1.95 330 1.9 195 1.75 692 1.7 849 1.6 1181 1.4 1946 1.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 Ts Sp = Tpy a partir de este valor determinar la eciencia Sp η= peligiendo 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.285500 RED-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 color11 5.o Física
  • 12. 6 RESULTADOS Javier García Mollejarojo 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. Isotermas (50) 50 11.5686 45 6 17 .1 40 24 35 23.333 61 30 .19 3 20 42.1569 25 20 15 10 02 5 24.9 0 0 10 20 30 40 50 60 70 80 90 100 x 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 50o C. 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
  • 13. Javier García Molleja 6 RESULTADOS Isotermas (50) 50 11.5686 45 76 .11 40 24 5 627 18. 35 30 23.3 333 25 20 15 10 42.9412 5 02 .9 24 0 0 10 20 30 40 50 60 70 80 90 100 x 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.544000 RED-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.656000 RED-BLACK SOR 195 9.8534360389497298E-8 0.3510000 Finalmente, escribimos los resultados obtenidos con cuatro procesadores trabajandoen paralelo:13 5.o Física
  • 14. 7 DISCUSIÓN DE RESULTADOS Javier García Molleja Método Iteraciones Error Tp JACOBI 7912 9.9998836545329137E-8 13.88400 RED-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 para14 5.o Física
  • 15. Javier García Molleja 7 DISCUSIÓN DE RESULTADOSel caso, por ejemplo, de 520x1040 puntos. Las condiciones que vamos a introducir comovalores de entrada serán: TOLERANCIA: 0,001 ITERACIONES: 100000Tambié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.51430 RED-BLACK SOR 351 9.999194854023665E-4 18.41900En 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.89200 RED-BLACK SOR 351 9.9991948540142364E-4 36.34906Ahora 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.282000 RED-BLACK SOR 351 9.9991948540142364E-4 18.95100Por último es necesario realizar la ejecución utilizando cuatro procesadores en paralelo.Entonces: Método Iteraciones Error Tp JACOBI 350 9.9774198866405396E-4 3.645000 RED-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
  • 16. 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.34490 RED-BLACK SOR 351 9.999194822266609E-4 74.60610Otra 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.46800 RED-BLACK SOR 351 9.9991948222642475E-4 143.7870Presentemos en una tabla los resultados obtenidos al ejecutar con dos procesadores enparalelo: Método Iteraciones Error Tp JACOBI 350 9.9774198866405396E-4 24.05600 RED-BLACK SOR 351 9.9991948222642475E-4 73.8270016 5.o Física
  • 17. Javier García Molleja 7 DISCUSIÓN DE RESULTADOSVeamos nalmente los datos que obtenemos al ejecutar con cuatro procesadores en parale-lo: Método Iteraciones Error Tp JACOBI 350 9.9774198866405396E-4 12.8800 RED-BLACK SOR 351 9.9991948222642475E-4 37.83700Tras 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
  • 18. 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órdoba18 5.o Física