SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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 . . . . . . . . . . . . . . . . . . . . . .    2
  1.2. Imposición de condiciones de contorno . . . . . . . . . . . . . . . . . . . .       2

2. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       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 un
ordenador en el que se encuentra situado el procesador[1]. Para trabajar adecuadamente
necesitamos conocer las dimensiones de la placa y del procesador, además de la posición
de este último. La placa es rectangular de dimensiones 2 cm de largo y 1 cm de ancho y el
procesador es cuadrado de 0,25 cm de lado. Éste se localiza a 0,25 cm hacia la izquierda
y arriba de la esquina inferior derecha.

    Sabemos que los lados de la placa están a 25o C, excepto el lado superior que está a
10o C por estar al lado del ventilador del ordenador. También tenemos que el procesador
siempre está a 50o C, así que con todo esto vamos a plantear la ecuación diferencial y
las respectivas condiciones de contorno. Como estamos considerando un problema físico
bastante estudiado el correcto planteamiento matemático estará bien condicionado por lo
que 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 en
una placa rectangular de ordenador, por lo que debemos estudiar la ecuación de Poisson
en 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 2
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 existen
en 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 C

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 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 del
problema) 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,75

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 mallado
de la placa, que por ser la placa rectangular escogeremos el tamaño de paso igual en ambas
dimensiones, 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 + 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
                                   Lx                 Ly
                             hx =         =hy =              .
                                  Nx + 1          Ny + 1
Indicamos que Lx es la longitud de la placa en la dirección del eje x (horizontal), que Ly es
la longitud de la placa en la dirección del eje y (vertical) y que Nx es el número de puntos
del 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 se
llamará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 la
aplicació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 siguiente
aspecto 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)]
                  4
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 ) sino
su 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 ] ,
                                    4
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 ecuaciones
resultante dará origen a una matriz simétrica, denida-positiva, de diagonal dominante y
banda.
    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 dimensiones
de éste quedarán sobrestimadas o subestimadas (dependiendo del caso) y los resultados
que obtengamos serán poco realistas. Para una correcta elección del número de puntos de
cada dimensión debemos analizar los vértices del procesador en notación fraccionaria y
conseguir que todos posean el mismo denominador. Podemos ver fácilmente que es 4, por
lo que debe cumplirse que el número de puntos de cada dimensión sean múltiplos de este
valor.

4                                                                                            5.o Física
Javier García Molleja                                    2 MÉTODO DE RESOLUCIÓN


2.2. Método de Jacobi
    Si consideramos que Ui,j es la temperatura del punto interior del mallado (xi , yj ) en la
                          k

k-ésima iteración podemos conocer el valor en la siguiente iteración mediante la aplicación
de 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 ,
                                 4
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 son
necesarias tantas iteraciones como puntos hemos escogido para el mallado para obtener
una 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 éste
todos 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
                                 4
podemos ver indicios de paralelización si nos damos cuenta que los nodos cuyos índices
suman par dependen sólo de nodos cuyos índices suman impar y viceversa, por lo que
llegamos al método RedBlack en el que actualizamos simultáneamente todos los nodos
negros (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ó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étodo
SOR que también se puede paralelizar. Para nuestro caso lo implementamos en el de
RedBlack:
          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
                               4
Para que este método sea óptimo debemos buscar el valor w que minimice el factor de
decrecimiento de error y analíticamente se muestra que es
                                             2
                              wopt =           (    ) ∈ (1, 2).
                                       1 + sen Nπ+1

Así pues, para hacer decrecer el error por un factor de 2, hace falta realizar k iteraciones
de 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. Resaltemos
que no indicaremos las partes referentes al reloj y a la grabación de datos, quedándonos
así con el método in situ.

PROGRAMA Jacobi_Paralelo
SIN CRITERIO IMPLÍCITO
REAL*8,ASIGNABLE::U(:,:), Uant(:,:),Error(:,:)
LÓGICO,ASIGNABLE::M(:,:)
REAL*8::tolerancia, h
ENTERO::Nx, k, control, procXini, procXfin, procYini, procYfin
ENTERO::Nx1, Ny1, Nxmenuno, Nymenuno
REAL*8,PARÁMETRO::uncu=1.0/4.0
ENTERO,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 + 1
Nx1 = Nx + 1
Ny1 = Ny + 1
Nxmenuno = Nx - 1
Nymenuno = Ny - 1
h = 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*,tolerancia
IMPRIMIR*,Indique el maximo de iteraciones para controlar el bucle
LEER*,control

procXini   =   1.5/h
procXfin   =   1.75/h
procYini   =   0.25/h
procYfin   =   0.5/h

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

HACER k=1,control
Uant = U
DONDE (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 DONDE
Error = ABS((U - Uant)/U)

7                                                                5.o Física
3 SEUDOCÓDIGO                                                   Javier García Molleja


SI(MAXVAL(Error)tolerancia)SALIR
FIN HACER

IMPRIMIR*,El bucle acabo en la iteracion,k
IMPRIMIR*,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_SOR
SIN CRITERIO IMPLÍCITO
ENTERO::Nx, i, j, k, control, procXini, procXfin, procYini, procYfin
ENTERO::Nx1, Ny1, Nxmenuno, Nymenuno
ENTERO, PARÁMETRO::Ny=51
REAL,PARÁMETRO::w=1.9
REAL*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,w
IMPRIMIR*,Introduzca la tolerancia
LEER*,tol
IMPRIMIR*,Indique el maximo de iteraciones
LEER*,control

uncu = 1.0/4.0
Nx = 2*Ny + 1
Nx1 = Nx + 1
Ny1 = Ny + 1
Nxmenuno = Nx - 1
Nymenuno = Ny - 1
h = 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/h
procXfin   =   1.75/h
procYini   =   0.25/h
procYfin   =   0.5/h

U(:,0) = 25.0
U(:,Ny+1)= 10.0
U(0,:) = 25.0
U(Nx+1,:) = 25.0
U(1:Nx,1:Ny) = 50.0
Uant = 0.0
Error = 0.0
M = .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,control
Uant = U
DONDE(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 DONDE
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))
FIN DONDE
FIN DONDE
Error = ABS((U - Uant)/U)
SI(MAXVAL(Error)tol)SALIR
FIN 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 soporte
magnético adjuntados a la presente memoria [2].



5. Juego de datos
    Antes de mostrar los datos de entrada es necesario considerar que el programa se
ejecutará en paralelo. Por este motivo debemos recurrir al uso de directivas !HPF$.
    Gracias a estas directivas[3] podremos distribuir sobre los procesadores disponibles la
matriz principal, así como alinear sobre ella (es decir, distribuir el resto de matrices en
función de la primera) las otras matrices de las que disponemos para realizar nuestros
cá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 con
esta elección la comunicación entre procesadores será mínima. Además, para asegurar una
buena paralelización y aprovechamiento de memoria recurriremos frecuentemente al uso
de secciones matriciales, así como el uso de construcciones FORALL y WHERE siempre
y 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 ocasiones
la 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 lo
que una vez que el programa secuencial haya compilado correctamente debemos ejecutarlo
con varios valores, comparando en cuál ha necesitado menos iteraciones para alcanzar la
tolerancia referida:

10                                                                               5.o Física
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 el
caso 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 de
procesadores utilizados, p, para calcular la ganancia en velocidad
                                                 Ts
                                         Sp =
                                                 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 p
procesadores.


6. Resultados
    En primer lugar debemos ejecutar el método de Jacobi y el método RedBlack SOR
en secuencial y ver los datos que devuelven, para poder tener así los primeros datos con
los 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 Red
Black SOR es mejor que el de Jacobi, tanto en iteraciones, como en error relativo y tiempo
de 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 valores
numéricos en las líneas isotermas cercanos a los bordes para comprobar que las condiciones
de 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 temperaturas
se adapta a las ideas previas que teníamos: la zona cercana al procesador debe estar
a 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 nos
acerquemos 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 a
la tolerancia que se requería para salir del bucle, 10−7 , por lo que parece que ha sido
correcto 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, ya
que el problema y el método son los mismos, la única diferencia estará en que no todas
las operaciones las realizará el mismo procesador.
    De igual manera vamos a mostrar la distribución nal de temperaturas de la placa
obtenida por el método de RedBlack con sobrerrelajación. Es de esperar que la gura
obtenida sea bastante parecida a la anterior, ya que el problema es el mismo, sólo va
variando el método de resolución. Al igual que hemos hecho antes, aparecerá un código de
colores y varios valores numéricos que nos conrmarán los buenos resultados obtenidos.

12                                                                                                                             5.o Física
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, aunque
este método ha necesitado menos operaciones para llegar a la distribución nal. Debemos
también agradecer el uso de la doble precisión por haber llegado a este punto. En este
punto 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 en
paralelo 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 paralelo
con 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 trabajando
en 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.88400
         RED-BLACK SOR             195       9.8534360389497298E-8    0.6710000

    Tras todos estos datos podemos calcular inmediatamente la ganancia en velocidad y
la 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ás
procesadores trabajando en paralelo más tiempo de ejecución. Esto es debido a que el
número de puntos usados (52x104) es demasiado bajo como para que la ejecución en
paralelo 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 como
valores 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 a
mantener el valor de w = 1,9, aunque al cambiar el número de puntos del mallado éste ya
no será el valor óptimo. En cualquier caso tras la compilación y ejecución en secuencial
de 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.41900
En tiempo de ejecución y en el número de iteraciones el método de Jacobi es el más
adecuado. Esto puede ser debido a que el parámetro w no es el óptimo. Si paralelizamos
ambos 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.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.282000
         RED-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.645000
          RED-BLACK SOR             351      9.9991948540142364E-4 10.74700
    Una vez conseguido todo este conjunto de datos calcularemos la ganancia en velocidad
y 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 que
tengamos 1040x2080 puntos. Por simplicidad mantendremos la misma tolerancia y número
máximo de iteraciones que en el caso anterior, ya que con un nivel de tolerancia bajo los
cálculos serán menos y con un número elevado de iteraciones nos aseguraremos que la
tolerancia 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.60610

Otra vez observamos que el mejor método en secuencial es el de Jacobi, pero es necesario
tener en cuenta que el parámetro de sobrerrelajación no es el óptimo. Ahora, compilemos
y 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.7870

Presentemos en una tabla los resultados obtenidos al ejecutar con dos procesadores en
paralelo:
             Método            Iteraciones             Error              Tp
            JACOBI                 350         9.9774198866405396E-4   24.05600
         RED-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.8800
         RED-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 con
el valor óptimo de w. Además cuando ejecutamos en paralelo con un único procesador
los tiempos se elevan drásticamente, ya que en esta situación debe ejecutar el código en
secuencial, 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 procesador
nú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 hemos
obtenido los resultados en dominios tan grandes. El origen puede estar en algún fallo
a la hora de escribir el código o que la tolerancia impuesta es baja, aunque suciente para
tener una solución aceptable. Además el aprovechamiento de memoria caché[4] realizado
por utilizar secciones matriciales, FORALL y WHERE ha podido inuir en el número
total 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, ya
que sus componentes, hechos con silicio, se recalientan demasiado y es necesario que el
ventilador evite posibles daños irreversibles. También se puede encontrar otra aplicación
en el estudio climático, pudiendo de esta manera conocer las posibles distribuciones y las
importantes bajadas o subidas de temperatura tras algún proceso natural o humano. Con
este procedimiento se puede estudiar el clima futuro del planeta y prevenir de las posibles
causas que empeoren el medio ambiente.
    Gracias al planteamiento, elaboración, ejecución y resolución llevada a cabo en esta
sesión el conocimiento sobre programación en paralelo se convierte en algo habitual en la
vida profesional del programador, dándole oportunidad de revisar sus antiguos códigos y
con 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 nal
del código para hacerlo más eciente evitando incluir operaciones simples y repetitivas
dentro de los bucles y que además no tienen relevancia directa con los cálculos que estamos
realizando. Es cierto que nos ayuda además a la hora de ver si ciertas construcciones son
susceptibles de ser paralelizadas o no. Por lo que nalmente podemos indicar que la
realizació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

Contenu connexe

Tendances

Ecuaciones diferenciales lineales con coeficientes indeterminados
Ecuaciones diferenciales lineales con coeficientes indeterminadosEcuaciones diferenciales lineales con coeficientes indeterminados
Ecuaciones diferenciales lineales con coeficientes indeterminados
sheep242
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
lisset neyra
 
Ecuaciones diferenciales de coeficientes por operador anular
Ecuaciones diferenciales de coeficientes por operador anularEcuaciones diferenciales de coeficientes por operador anular
Ecuaciones diferenciales de coeficientes por operador anular
sheep242
 
Fisica serway vol.2 (solucionario)
Fisica   serway vol.2 (solucionario)Fisica   serway vol.2 (solucionario)
Fisica serway vol.2 (solucionario)
luxeto
 
Métodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla FalsaMétodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla Falsa
Victor Reyes
 
Funciones hiperbolicas
Funciones hiperbolicasFunciones hiperbolicas
Funciones hiperbolicas
dalila69
 
Ecuaciones reducibles a variables separables
Ecuaciones reducibles a variables separablesEcuaciones reducibles a variables separables
Ecuaciones reducibles a variables separables
Arkantos Flynn
 
Solucionario de dennis g zill ecuaciones diferenciales
Solucionario de dennis g zill   ecuaciones diferencialesSolucionario de dennis g zill   ecuaciones diferenciales
Solucionario de dennis g zill ecuaciones diferenciales
jhonpablo8830
 
Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9
Xavier Davias
 
Formulas de derivadas e integrales
Formulas de derivadas e integralesFormulas de derivadas e integrales
Formulas de derivadas e integrales
Ivan Vera Montenegro
 

Tendances (20)

Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015a
 
Ode45
Ode45Ode45
Ode45
 
Ecuaciones diferenciales lineales con coeficientes indeterminados
Ecuaciones diferenciales lineales con coeficientes indeterminadosEcuaciones diferenciales lineales con coeficientes indeterminados
Ecuaciones diferenciales lineales con coeficientes indeterminados
 
Ecuacion cauchy euler
Ecuacion cauchy eulerEcuacion cauchy euler
Ecuacion cauchy euler
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
 
Funciones bessel
Funciones besselFunciones bessel
Funciones bessel
 
El método de la secante y secante modificado
El método de la secante y secante modificadoEl método de la secante y secante modificado
El método de la secante y secante modificado
 
Ecuaciones diferenciales de coeficientes por operador anular
Ecuaciones diferenciales de coeficientes por operador anularEcuaciones diferenciales de coeficientes por operador anular
Ecuaciones diferenciales de coeficientes por operador anular
 
Fisica serway vol.2 (solucionario)
Fisica   serway vol.2 (solucionario)Fisica   serway vol.2 (solucionario)
Fisica serway vol.2 (solucionario)
 
Ejercicios resueltos integracion_numerica
Ejercicios resueltos integracion_numericaEjercicios resueltos integracion_numerica
Ejercicios resueltos integracion_numerica
 
RAÍCES DE ECUACIONES NO LINEALES
RAÍCES DE ECUACIONES NO LINEALESRAÍCES DE ECUACIONES NO LINEALES
RAÍCES DE ECUACIONES NO LINEALES
 
Métodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla FalsaMétodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla Falsa
 
Ecuación de bessel
Ecuación de besselEcuación de bessel
Ecuación de bessel
 
Funciones hiperbolicas
Funciones hiperbolicasFunciones hiperbolicas
Funciones hiperbolicas
 
Ecuaciones reducibles a variables separables
Ecuaciones reducibles a variables separablesEcuaciones reducibles a variables separables
Ecuaciones reducibles a variables separables
 
Solucionario de dennis g zill ecuaciones diferenciales
Solucionario de dennis g zill   ecuaciones diferencialesSolucionario de dennis g zill   ecuaciones diferenciales
Solucionario de dennis g zill ecuaciones diferenciales
 
Ecucación de bessel
Ecucación de besselEcucación de bessel
Ecucación de bessel
 
Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9
 
Formulas de derivadas e integrales
Formulas de derivadas e integralesFormulas de derivadas e integrales
Formulas de derivadas e integrales
 
Transformadas de laplace murray r. spiegel
Transformadas de laplace   murray r. spiegelTransformadas de laplace   murray r. spiegel
Transformadas de laplace murray r. spiegel
 

En vedette (10)

Distribución vertical de la temperatura
Distribución vertical de la temperaturaDistribución vertical de la temperatura
Distribución vertical de la temperatura
 
Distribución de calor
Distribución de calorDistribución de calor
Distribución de calor
 
Deducción de h a partir de numeros adimensionales
Deducción de h a partir de numeros adimensionalesDeducción de h a partir de numeros adimensionales
Deducción de h a partir de numeros adimensionales
 
Calculo de h por Nusselt, Prandtl y Reynolds
Calculo de h por Nusselt, Prandtl y ReynoldsCalculo de h por Nusselt, Prandtl y Reynolds
Calculo de h por Nusselt, Prandtl y Reynolds
 
Viento, temperatura, humedad y lluvia
Viento, temperatura, humedad y lluvia Viento, temperatura, humedad y lluvia
Viento, temperatura, humedad y lluvia
 
Resolución de problemas mediante sistemas de ecuaciones lineales
Resolución de problemas mediante sistemas de ecuaciones linealesResolución de problemas mediante sistemas de ecuaciones lineales
Resolución de problemas mediante sistemas de ecuaciones lineales
 
Ejercicios resueltos y propuestos de combinacion lineal
Ejercicios resueltos y propuestos de combinacion linealEjercicios resueltos y propuestos de combinacion lineal
Ejercicios resueltos y propuestos de combinacion lineal
 
Fisica preuniv-ft
Fisica preuniv-ftFisica preuniv-ft
Fisica preuniv-ft
 
Deducciones y demostraciones - Transferencia de Calor
Deducciones y demostraciones - Transferencia de Calor Deducciones y demostraciones - Transferencia de Calor
Deducciones y demostraciones - Transferencia de Calor
 
Ejercicios resueltos blog definitivo
Ejercicios  resueltos  blog definitivoEjercicios  resueltos  blog definitivo
Ejercicios resueltos blog definitivo
 

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

Microsoft word 7.sistemas de ecuaciones diferenciales en derivadas par...
Microsoft word   7.sistemas de ecuaciones diferenciales      en derivadas par...Microsoft word   7.sistemas de ecuaciones diferenciales      en derivadas par...
Microsoft word 7.sistemas de ecuaciones diferenciales en derivadas par...
iverd
 
Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)
Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)
Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)
pedroperez683734
 
Ecuaciones diferenciales parciales Parte 2
Ecuaciones diferenciales parciales Parte 2Ecuaciones diferenciales parciales Parte 2
Ecuaciones diferenciales parciales Parte 2
Kike Prieto
 
Funciones De Dos Variables
Funciones De Dos VariablesFunciones De Dos Variables
Funciones De Dos Variables
José Encalada
 
Ecuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinariasEcuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinarias
Kike Prieto
 
Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales
Kike Prieto
 

Similaire à Distribución de temperaturas en una placa con simulación en paralelo (20)

Microsoft word 7.sistemas de ecuaciones diferenciales en derivadas par...
Microsoft word   7.sistemas de ecuaciones diferenciales      en derivadas par...Microsoft word   7.sistemas de ecuaciones diferenciales      en derivadas par...
Microsoft word 7.sistemas de ecuaciones diferenciales en derivadas par...
 
12534840 ecuaciones-diferenciales-parciales-elipticas
12534840 ecuaciones-diferenciales-parciales-elipticas12534840 ecuaciones-diferenciales-parciales-elipticas
12534840 ecuaciones-diferenciales-parciales-elipticas
 
F c3-2012-1
F c3-2012-1F c3-2012-1
F c3-2012-1
 
Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)
Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)
Guia de estudio 5 (tema 5 ecuaciones diferenciales ordinarias)
 
Ecuaciones diferenciales parciales Parte 2
Ecuaciones diferenciales parciales Parte 2Ecuaciones diferenciales parciales Parte 2
Ecuaciones diferenciales parciales Parte 2
 
Derivacion e integracion numéricas
Derivacion e integracion numéricasDerivacion e integracion numéricas
Derivacion e integracion numéricas
 
Cano Nieto Mariana Montserrat
Cano Nieto Mariana MontserratCano Nieto Mariana Montserrat
Cano Nieto Mariana Montserrat
 
Funciones De Dos Variables
Funciones De Dos VariablesFunciones De Dos Variables
Funciones De Dos Variables
 
Ecuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinariasEcuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinarias
 
F c3-2013-1
F c3-2013-1F c3-2013-1
F c3-2013-1
 
DERIVACION_INTEGRACION 1.pdf
DERIVACION_INTEGRACION 1.pdfDERIVACION_INTEGRACION 1.pdf
DERIVACION_INTEGRACION 1.pdf
 
Mat215
Mat215Mat215
Mat215
 
Mat215
Mat215Mat215
Mat215
 
Metodos numericos capitulo 5
Metodos numericos capitulo 5Metodos numericos capitulo 5
Metodos numericos capitulo 5
 
Derivación numérica (Series de Taylor)
Derivación numérica (Series de Taylor)Derivación numérica (Series de Taylor)
Derivación numérica (Series de Taylor)
 
Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales
 
Limites
LimitesLimites
Limites
 
2.4 ecuaciones, funciones e inecuaciones cuadráticas (mayo 0
2.4 ecuaciones, funciones e inecuaciones cuadráticas (mayo 02.4 ecuaciones, funciones e inecuaciones cuadráticas (mayo 0
2.4 ecuaciones, funciones e inecuaciones cuadráticas (mayo 0
 
Solcionario
SolcionarioSolcionario
Solcionario
 
Ed pr3 4_2012_13_enweb
Ed pr3 4_2012_13_enwebEd pr3 4_2012_13_enweb
Ed pr3 4_2012_13_enweb
 

Plus de Javier García Molleja

Plus de Javier García Molleja (20)

Highly thermal conductive Boron Nitride/Polyrotaxane encapsulated PEG-based ...
Highly thermal conductive Boron Nitride/Polyrotaxane encapsulated  PEG-based ...Highly thermal conductive Boron Nitride/Polyrotaxane encapsulated  PEG-based ...
Highly thermal conductive Boron Nitride/Polyrotaxane encapsulated PEG-based ...
 
PLA aerogel as a universal support for the typical organic phase change ener...
PLA aerogel as a universal support for the typical organic phase change  ener...PLA aerogel as a universal support for the typical organic phase change  ener...
PLA aerogel as a universal support for the typical organic phase change ener...
 
Graphene Functionalization of Polyrotaxane-Encapsulated PEG-Based PCMs: Fabri...
Graphene Functionalization of Polyrotaxane-Encapsulated PEG-Based PCMs: Fabri...Graphene Functionalization of Polyrotaxane-Encapsulated PEG-Based PCMs: Fabri...
Graphene Functionalization of Polyrotaxane-Encapsulated PEG-Based PCMs: Fabri...
 
Unveiling the structure, chemistry, and formation mechanism of an in-situ pho...
Unveiling the structure, chemistry, and formation mechanism of an in-situ pho...Unveiling the structure, chemistry, and formation mechanism of an in-situ pho...
Unveiling the structure, chemistry, and formation mechanism of an in-situ pho...
 
El rol de la tomografía en la industria: aplicaciones aeronáuticas y en el se...
El rol de la tomografía en la industria: aplicaciones aeronáuticas y en el se...El rol de la tomografía en la industria: aplicaciones aeronáuticas y en el se...
El rol de la tomografía en la industria: aplicaciones aeronáuticas y en el se...
 
How to make a manual binary segmentation for an XCT reconstructed volume with...
How to make a manual binary segmentation for an XCT reconstructed volume with...How to make a manual binary segmentation for an XCT reconstructed volume with...
How to make a manual binary segmentation for an XCT reconstructed volume with...
 
Una introducción a la Tomografía Computarizada de Rayos X
Una introducción a la Tomografía Computarizada de Rayos XUna introducción a la Tomografía Computarizada de Rayos X
Una introducción a la Tomografía Computarizada de Rayos X
 
Unidad 8: física cuántica
Unidad 8: física cuánticaUnidad 8: física cuántica
Unidad 8: física cuántica
 
Unidad 7: fuerzas a distancia
Unidad 7: fuerzas a distanciaUnidad 7: fuerzas a distancia
Unidad 7: fuerzas a distancia
 
Unidad 6: movimiento rotacional
Unidad 6: movimiento rotacionalUnidad 6: movimiento rotacional
Unidad 6: movimiento rotacional
 
Unit 5: Impulse and momentum
Unit 5: Impulse and momentumUnit 5: Impulse and momentum
Unit 5: Impulse and momentum
 
Unidad 5: impulso y cantidad de movimiento
Unidad 5: impulso y cantidad de movimientoUnidad 5: impulso y cantidad de movimiento
Unidad 5: impulso y cantidad de movimiento
 
How to manually equalize the histograms of two (or more) subvolumes, measured...
How to manually equalize the histograms of two (or more) subvolumes, measured...How to manually equalize the histograms of two (or more) subvolumes, measured...
How to manually equalize the histograms of two (or more) subvolumes, measured...
 
Unidad 4: trabajo, energía y potencia
Unidad 4: trabajo, energía y potenciaUnidad 4: trabajo, energía y potencia
Unidad 4: trabajo, energía y potencia
 
Unidad 3: dinámica
Unidad 3: dinámicaUnidad 3: dinámica
Unidad 3: dinámica
 
Unidad 2: cinemática
Unidad 2: cinemáticaUnidad 2: cinemática
Unidad 2: cinemática
 
Unidad 1: descripción del mundo físico
Unidad 1: descripción del mundo físicoUnidad 1: descripción del mundo físico
Unidad 1: descripción del mundo físico
 
Unit 1: Description of the physical world
Unit 1: Description of the physical worldUnit 1: Description of the physical world
Unit 1: Description of the physical world
 
How to concatenate two (or more) subvolumes, measured with XCT, using ImageJ
How to concatenate two (or more) subvolumes, measured with XCT, using ImageJHow to concatenate two (or more) subvolumes, measured with XCT, using ImageJ
How to concatenate two (or more) subvolumes, measured with XCT, using ImageJ
 
How to make a mask for an XCT reconstructed volume with ImageJ
How to make a mask for an XCT reconstructed volume with ImageJHow to make a mask for an XCT reconstructed volume with ImageJ
How to make a mask for an XCT reconstructed volume with ImageJ
 

Dernier

Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 

Dernier (20)

Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 

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

  • 1. 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 . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Imposición de condiciones de contorno . . . . . . . . . . . . . . . . . . . . 2 2. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Seudocódigo 6 4. Programación 10 5. Juego de datos 10 6. Resultados 11 7. Discusión de resultados 14 1
  • 2. 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 un ordenador en el que se encuentra situado el procesador[1]. Para trabajar adecuadamente necesitamos conocer las dimensiones de la placa y del procesador, además de la posición de este último. La placa es rectangular de dimensiones 2 cm de largo y 1 cm de ancho y el procesador es cuadrado de 0,25 cm de lado. Éste se localiza a 0,25 cm hacia la izquierda y arriba de la esquina inferior derecha. Sabemos que los lados de la placa están a 25o C, excepto el lado superior que está a 10o C por estar al lado del ventilador del ordenador. También tenemos que el procesador siempre está a 50o C, así que con todo esto vamos a plantear la ecuación diferencial y las respectivas condiciones de contorno. Como estamos considerando un problema físico bastante estudiado el correcto planteamiento matemático estará bien condicionado por lo que 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 en una placa rectangular de ordenador, por lo que debemos estudiar la ecuación de Poisson en 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 2 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 existen en 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 C 2 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 del problema) 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,75 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 mallado de la placa, que por ser la placa rectangular escogeremos el tamaño de paso igual en ambas dimensiones, 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 + 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 Lx Ly hx = =hy = . Nx + 1 Ny + 1 Indicamos que Lx es la longitud de la placa en la dirección del eje x (horizontal), que Ly es la longitud de la placa en la dirección del eje y (vertical) y que Nx es el número de puntos del 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 se llamarán nodos interiores. 3 5.o Física
  • 4. 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 la aplicació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 siguiente aspecto 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)] 4 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 ) sino su 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 ] , 4 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 ecuaciones resultante dará origen a una matriz simétrica, denida-positiva, de diagonal dominante y banda. 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 dimensiones de éste quedarán sobrestimadas o subestimadas (dependiendo del caso) y los resultados que obtengamos serán poco realistas. Para una correcta elección del número de puntos de cada dimensión debemos analizar los vértices del procesador en notación fraccionaria y conseguir que todos posean el mismo denominador. Podemos ver fácilmente que es 4, por lo que debe cumplirse que el número de puntos de cada dimensión sean múltiplos de este valor. 4 5.o Física
  • 5. Javier García Molleja 2 MÉTODO DE RESOLUCIÓN 2.2. Método de Jacobi Si consideramos que Ui,j es la temperatura del punto interior del mallado (xi , yj ) en la k k-ésima iteración podemos conocer el valor en la siguiente iteración mediante la aplicación de 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 , 4 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 son necesarias tantas iteraciones como puntos hemos escogido para el mallado para obtener una 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 éste todos 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 4 podemos ver indicios de paralelización si nos damos cuenta que los nodos cuyos índices suman par dependen sólo de nodos cuyos índices suman impar y viceversa, por lo que llegamos al método RedBlack en el que actualizamos simultáneamente todos los nodos negros (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ón 5 5.o Física
  • 6. 3 SEUDOCÓDIGO Javier García Molleja de nuestro método para acercarnos al punto que calculamos. Esto da lugar al método SOR que también se puede paralelizar. Para nuestro caso lo implementamos en el de RedBlack: 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 4 Para que este método sea óptimo debemos buscar el valor w que minimice el factor de decrecimiento de error y analíticamente se muestra que es 2 wopt = ( ) ∈ (1, 2). 1 + sen Nπ+1 Así pues, para hacer decrecer el error por un factor de 2, hace falta realizar k iteraciones de 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. Resaltemos que no indicaremos las partes referentes al reloj y a la grabación de datos, quedándonos así con el método in situ. PROGRAMA Jacobi_Paralelo SIN CRITERIO IMPLÍCITO REAL*8,ASIGNABLE::U(:,:), Uant(:,:),Error(:,:) LÓGICO,ASIGNABLE::M(:,:) REAL*8::tolerancia, h ENTERO::Nx, k, control, procXini, procXfin, procYini, procYfin ENTERO::Nx1, Ny1, Nxmenuno, Nymenuno REAL*8,PARÁMETRO::uncu=1.0/4.0 ENTERO,PARÁMETRO::Ny=51 !HPF$ DISTRIBUIR(BLOQUE,BLOQUE)::U !HPF$ ALINEAR CON U::Uant !HPF$ ALINEAR CON U::Error 6 5.o Física
  • 7. Javier García Molleja 3 SEUDOCÓDIGO !HPF$ ALINEAR CON U::M Nx = 2*Ny + 1 Nx1 = Nx + 1 Ny1 = Ny + 1 Nxmenuno = Nx - 1 Nymenuno = Ny - 1 h = 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*,tolerancia IMPRIMIR*,Indique el maximo de iteraciones para controlar el bucle LEER*,control procXini = 1.5/h procXfin = 1.75/h procYini = 0.25/h procYfin = 0.5/h U(:,0) = 25.0 U(:,Ny+1) = 10.0 U(0,:) = 25.0 U(Nx+1,:) = 25.0 U(1:Nx,1:Ny) = 50.0 Uant = 0.0 Error = 0.0 M = .VERDAD. M(procXini:procXfin, procYini:procYfin) = .FALSO. HACER k=1,control Uant = U DONDE (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 DONDE Error = ABS((U - Uant)/U) 7 5.o Física
  • 8. 3 SEUDOCÓDIGO Javier García Molleja SI(MAXVAL(Error)tolerancia)SALIR FIN HACER IMPRIMIR*,El bucle acabo en la iteracion,k IMPRIMIR*,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_SOR SIN CRITERIO IMPLÍCITO ENTERO::Nx, i, j, k, control, procXini, procXfin, procYini, procYfin ENTERO::Nx1, Ny1, Nxmenuno, Nymenuno ENTERO, PARÁMETRO::Ny=51 REAL,PARÁMETRO::w=1.9 REAL*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,w IMPRIMIR*,Introduzca la tolerancia LEER*,tol IMPRIMIR*,Indique el maximo de iteraciones LEER*,control uncu = 1.0/4.0 Nx = 2*Ny + 1 Nx1 = Nx + 1 Ny1 = Ny + 1 Nxmenuno = Nx - 1 Nymenuno = Ny - 1 h = 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Ó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/h procXfin = 1.75/h procYini = 0.25/h procYfin = 0.5/h U(:,0) = 25.0 U(:,Ny+1)= 10.0 U(0,:) = 25.0 U(Nx+1,:) = 25.0 U(1:Nx,1:Ny) = 50.0 Uant = 0.0 Error = 0.0 M = .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,control Uant = U DONDE(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 DONDE 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)) FIN DONDE FIN DONDE Error = ABS((U - Uant)/U) SI(MAXVAL(Error)tol)SALIR FIN HACER IMPRIMIR*,La ultima iteracion es,k 9 5.o Física
  • 10. 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 soporte magnético adjuntados a la presente memoria [2]. 5. Juego de datos Antes de mostrar los datos de entrada es necesario considerar que el programa se ejecutará en paralelo. Por este motivo debemos recurrir al uso de directivas !HPF$. Gracias a estas directivas[3] podremos distribuir sobre los procesadores disponibles la matriz principal, así como alinear sobre ella (es decir, distribuir el resto de matrices en función de la primera) las otras matrices de las que disponemos para realizar nuestros cá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 con esta elección la comunicación entre procesadores será mínima. Además, para asegurar una buena paralelización y aprovechamiento de memoria recurriremos frecuentemente al uso de secciones matriciales, así como el uso de construcciones FORALL y WHERE siempre y 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 ocasiones la 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 lo que una vez que el programa secuencial haya compilado correctamente debemos ejecutarlo con varios valores, comparando en cuál ha necesitado menos iteraciones para alcanzar la tolerancia 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 el caso 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 de procesadores utilizados, p, para calcular la ganancia en velocidad Ts Sp = 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 p procesadores. 6. Resultados En primer lugar debemos ejecutar el método de Jacobi y el método RedBlack SOR en secuencial y ver los datos que devuelven, para poder tener así los primeros datos con los 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 Red Black SOR es mejor que el de Jacobi, tanto en iteraciones, como en error relativo y tiempo de 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
  • 12. 6 RESULTADOS Javier García Molleja rojo indica alta temperatura y el color azul baja. Además, se han incluido ciertos valores numéricos en las líneas isotermas cercanos a los bordes para comprobar que las condiciones de 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 temperaturas se adapta a las ideas previas que teníamos: la zona cercana al procesador debe estar a 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 nos acerquemos 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 a la tolerancia que se requería para salir del bucle, 10−7 , por lo que parece que ha sido correcto 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, ya que el problema y el método son los mismos, la única diferencia estará en que no todas las operaciones las realizará el mismo procesador. De igual manera vamos a mostrar la distribución nal de temperaturas de la placa obtenida por el método de RedBlack con sobrerrelajación. Es de esperar que la gura obtenida sea bastante parecida a la anterior, ya que el problema es el mismo, sólo va variando el método de resolución. Al igual que hemos hecho antes, aparecerá un código de colores 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, aunque este método ha necesitado menos operaciones para llegar a la distribución nal. Debemos también agradecer el uso de la doble precisión por haber llegado a este punto. En este punto 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 en paralelo 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 paralelo con 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 trabajando en 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 y la 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ás procesadores trabajando en paralelo más tiempo de ejecución. Esto es debido a que el número de puntos usados (52x104) es demasiado bajo como para que la ejecución en paralelo dé buenos resultados. Por este motivo vamos a realizar de nuevo los cálculos para 14 5.o Física
  • 15. Javier García Molleja 7 DISCUSIÓN DE RESULTADOS el caso, por ejemplo, de 520x1040 puntos. Las condiciones que vamos a introducir como valores 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 a mantener el valor de w = 1,9, aunque al cambiar el número de puntos del mallado éste ya no será el valor óptimo. En cualquier caso tras la compilación y ejecución en secuencial de 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.41900 En tiempo de ejecución y en el número de iteraciones el método de Jacobi es el más adecuado. Esto puede ser debido a que el parámetro w no es el óptimo. Si paralelizamos ambos 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.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.282000 RED-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.645000 RED-BLACK SOR 351 9.9991948540142364E-4 10.74700 Una vez conseguido todo este conjunto de datos calcularemos la ganancia en velocidad y 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 que tengamos 1040x2080 puntos. Por simplicidad mantendremos la misma tolerancia y número máximo de iteraciones que en el caso anterior, ya que con un nivel de tolerancia bajo los cálculos serán menos y con un número elevado de iteraciones nos aseguraremos que la tolerancia 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.60610 Otra vez observamos que el mejor método en secuencial es el de Jacobi, pero es necesario tener en cuenta que el parámetro de sobrerrelajación no es el óptimo. Ahora, compilemos y 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.7870 Presentemos en una tabla los resultados obtenidos al ejecutar con dos procesadores en paralelo: Método Iteraciones Error Tp JACOBI 350 9.9774198866405396E-4 24.05600 RED-BLACK SOR 351 9.9991948222642475E-4 73.82700 16 5.o Física
  • 17. 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.8800 RED-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 con el valor óptimo de w. Además cuando ejecutamos en paralelo con un único procesador los tiempos se elevan drásticamente, ya que en esta situación debe ejecutar el código en secuencial, 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 procesador nú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 hemos obtenido los resultados en dominios tan grandes. El origen puede estar en algún fallo a la hora de escribir el código o que la tolerancia impuesta es baja, aunque suciente para tener una solución aceptable. Además el aprovechamiento de memoria caché[4] realizado por utilizar secciones matriciales, FORALL y WHERE ha podido inuir en el número total 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, ya que sus componentes, hechos con silicio, se recalientan demasiado y es necesario que el ventilador evite posibles daños irreversibles. También se puede encontrar otra aplicación en el estudio climático, pudiendo de esta manera conocer las posibles distribuciones y las importantes bajadas o subidas de temperatura tras algún proceso natural o humano. Con este procedimiento se puede estudiar el clima futuro del planeta y prevenir de las posibles causas que empeoren el medio ambiente. Gracias al planteamiento, elaboración, ejecución y resolución llevada a cabo en esta sesión el conocimiento sobre programación en paralelo se convierte en algo habitual en la vida profesional del programador, dándole oportunidad de revisar sus antiguos códigos y con 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 nal del código para hacerlo más eciente evitando incluir operaciones simples y repetitivas dentro de los bucles y que además no tienen relevancia directa con los cálculos que estamos realizando. Es cierto que nos ayuda además a la hora de ver si ciertas construcciones son susceptibles de ser paralelizadas o no. Por lo que nalmente podemos indicar que la realizació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