Click here to load reader
Upload
javier-garcia-molleja
View
879
Download
7
Embed Size (px)
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.
Citation preview
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
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
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
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
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
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
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::Error
6 5.o Física
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
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
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
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
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
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
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
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
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
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
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
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