PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio Transferencia de Calor sobre una Placa Julio Monetti. UTN-FRM
Referencia al fenómeno físico Modelado Matemático Modelado Numérico Agenda Transferencia de Calor Referencia al fenómeno físico Modelado Matemático Modelado Numérico Programación de una solución Paralelización y Simulación
Referencia al fenómeno físico Fenómeno de Transferencia de Calor Investigación Experimental Cálculos Teóricos Modelado Establecer modelo matemático Observación del Fenómeno Establecer modelo numérico Simulación Recolección de Resultados Recolección de Resultados
Referencia al fenómeno físico Fenómeno de Transferencia de Calor Cálculos Teóricos Ecuación Diferencial Establecer modelo matemático Diferencias Finitas Establecer modelo numérico Programa Serial Programación y Simulación Programa Paralelo Optimización Recolección de Resultados
DtT = KDxxT Modelo Matemático Flujo unidimensional El calor fluye desde temperaturas mas altas hacia temperaturas mas bajas Material K2=largo2/tiempo plata 1.71 Aluminio 0.86 Acero 0.12 Granito 0.011 Ladrillo 0.0038 agua 0.00144 Tabla de valores típicos para la difusividad Boyce and DiPrima, Elementary Differential Equations and Boundary Value Problems, 6th ed.
DtT = K(DxxT + DyyT) Modelo Matemático Flujo bidimensional El calor fluye desde temperaturas mas altas hacia temperaturas mas bajas. Se tiene en cuenta un gradiente en dos direcciones x e y.
(T1,j + T-1,j + T0,j+1 + T0,j-1 )/4=T0,j Modelo Numérico (T1,j + T-1,j + T0,j+1 + T0,j-1 )/4=T0,j T1,j + T-1,j + T0,j+1 + T0,j-1 - 4T0,j=0 La resolución simultánea de la ecuación para todas las estaciones del dominio conduce a un sistema de ecuaciones lineales que puede resolverse de manera iterativa, hasta que las temperaturas nodales alcancen la convergencia.
Método de las Diferencias Finitas
Método de las Diferencias Finitas Modelo Numérico Método de las Diferencias Finitas Dominio Continuo Dominio Discreto Ecuaciones Algebraicas Ecuaciones Diferenciales
Método de las Diferencias Finitas Modelo Numérico Método de las Diferencias Finitas Dominio Discreto Ecuaciones Algebraicas Número Finito de puntos sobre la malla. Equiespaciados en x e y INCÓGNITAS
Método de las Diferencias Finitas Modelo Numérico x-h x x+h Diferencias hacia delante Ap f(x) = ( f(x+h) – f(x) ) / h Diferencias hacia atrás Ap f(x) = ( f(x) – f(x-h) ) / h Diferencias centrales Ap f(x) = ( f(x+h) – f(x-h) ) / 2h
Método de las Diferencias Finitas Modelo Numérico Discretización espacial en dos dimensiones
Método de las Diferencias Finitas Modelo Numérico Discretización espacial en dos dimensiones x,y-h x-h,y x,y x+h,y x,y+h
Método de las Diferencias Finitas Modelo Numérico Discretización espacial en tres dimensiones
Método de las Diferencias Finitas Modelo Numérico Plano z-1 Plano z+1 El cálculo de cada elemento depende del valor de sus elementos adyacentes en un instante anterior En el caso de 3D cada elemento (excepto las fronteras) depende del valor de 6 elementos
Método de las Diferencias Finitas Modelo Numérico h2 h1 h1 Cuando ? Cuando se modela, antes de simular Por qué ? Zonas de mayor crecimiento o decrecimiento Impurezas en el material. Necesidad de mayor precisión en el cálculo
Método de las Diferencias Finitas Modelo Numérico x,y-h x-h,y x,y x+h,y x,y+h El cálculo de cada elemento depende del valor de sus elementos adyacentes en un instante anterior En el caso de 2D cada elemento (excepto las fronteras) depende del valor de 4 elementos (adyacentes)
A{x} = {b} (Tk-1i-1,j + Tk-1i+1,j + Tk-1i,j+1 + Tk-1i,j-1 )/4=Tki,j Método de las Diferencias Finitas Caso de Estudio Modelo Numérico (Tk-1i-1,j + Tk-1i+1,j + Tk-1i,j+1 + Tk-1i,j-1 )/4=Tki,j Sistema de ecuaciones Lineales Características diagonales A{x} = {b} Matriz de Coeficientes Incógnitas Términos independientes
Método de las Diferencias Finitas Caso de Estudio Modelo Numérico Método de las Diferencias Finitas Caso de Estudio Tk-1 Tk bk-11 bk-12 bk-13 bk-1n bk1 bk2 bk3 bkn Se compara a través de la norma infinito
T7 =( T6+T8+T2+T12 ) /4 Método de las Diferencias Finitas Modelo Numérico Método de las Diferencias Finitas Caso de Estudio Matriz Diagonal. Para estudiar la transmisión de calor en 2 dimensiones T7 =( T6+T8+T2+T12 ) /4
Método de las Diferencias Finitas Modelo Numérico Qué sucede cuando crece el modelo de datos ?
-4 1
Condiciones de Frontera
Condiciones Iniciales y de Frontera Modelo Numérico Condiciones Iniciales y de Frontera Condiciones de Frontera T[x=0] = 0 T[x=L] = 1 Tipos: Dirichlet y Newman Condiciones Iniciales Valores nodales para T en el tipo 0
Tki,j=(Tk-1i-1,j + Tk-1i+1,j + Tk-1i,j+1 + Tk-1i,j-1 )/4 Modelo Numérico Método de las Diferencias Finitas Caso de Estudio Δx= Δy=1 xi+1-xi=yi+1-yi=1 Para cada nodo Ti,j Tki,j=(Tk-1i-1,j + Tk-1i+1,j + Tk-1i,j+1 + Tk-1i,j-1 )/4
Método de Resolución
{x} =A-1{b} Método de Resolución Sistema de Ecuaciones Lineales Modelo Numérico Método de Resolución Sistema de Ecuaciones Lineales {x} =A-1{b} Cantidad de celdas en A= (Cantidad de Incógnitas)2 Cantidad de incógnitas en {b}=cantidad de puntos Características de A Simétrica Rala Matriz de coeficientes: Diagonal dominante.
Método de Resolución Métodos Iterativos Modelo Numérico Método de Resolución Métodos Iterativos Calculan en forma progresiva la solución Se puede aproximar la solución real con una precisión arbitraria. Proceso Se elije una tolerancia o cantidad de iteraciones. Se inicia con una solución aproximada Se itera sobre esta solución Se compara la solución con la obtenida en la iteración anterior.
Método de Resolución Métodos Iterativos Jacobi Modelo Numérico Método de Resolución Métodos Iterativos Jacobi Itera sobre una solución dada hasta conseguir convergencia La convergencia se observa comparando la solución actual con la anterior. Para ello se deben mantener dos vectores con los resultados. Gauss-Seidel Mejora con respecto a Jacobi Speed up en convergencia Ahorro en el almacenamiento
Modelo de Datos
Modelo de Datos Matriz Tridiagonal. (Banda) Modelo Numérico 1 -2 1 -2 Para estudiar la transmisión de calor en 1 dimensión 1 2 3 4 1 -2 1 -2
-4 1
Modelo de Datos Modelo Numérico 18% !!! 4 625 celdas en la matriz de coeficientes 113 en el vector unidimensional 18% !!!
Modelo de Datos Modelo Numérico Cuenta de elementos contenidos en la banda ne = ne1 + ne2 + ... Sn = superd2 /2+ (pr-0.5) * superd superd:cantidad de superdiagonales Total = 2*Sn + m m: rango ---------------------------------------------------------------------------------------------- Indice sobre el arreglo unidimensional C=x-y Ks=K-C I=(Ks)2+[ (m-K) – 0.5 ] * Ks + y
-4 1
Modelo de Datos Matriz Banda. Modelo Numérico Ancho de Banda A=3 Ancho de media Banda M=1 Espacio Interdiagonal L=5 E= L-1 E=3 L=3 E=L-1 E=1 L=3
Método de las Diferencias Finitas Modelo Numérico Plano z-1 Plano z+1 Cubo 3*3*3nodos. Cada plano tiene 9 nodos. Sistema con 729 celdas. E1=L1-1 E2=L2-1
Método de las Diferencias Finitas Modelo Numérico Plano z-1 Plano z+1 x14=x13+x15+x11+x17+x5+x23 Ancho de Banda = 45 sobre A27*27
Modelo de Datos Matriz Banda. Modelo Numérico Ancho de Banda A=3 Ancho de media Banda M=1 Espacio Interdiagonal L1=3 E1= L-2 E1=1
Solución Computacional
Solución Computacional Solución Paralela Lenguaje C Arreglo bidimensional en forma dinámica para contener temperaturas Tk. temperaturas Tk-1. Determinación de una condición de parada: Tolerancia Cantidad máxima de iteraciones. Utilización de norma L2 para calcular las diferencias entre los vectores Tk y Tk-1.
Solución Computacional Solución Paralela while (no_convergencia) para cada(i en dimension espacial x) para cada(j en dimension espacial y) calcular temperatura Tk(i,j) = Dif( Tk-1 )
Solución Paralela
Solución Paralela Solución Paralela Solución Serial Solución Paralela
Solución Paralela Solución Paralela Solución Serial Solución Paralela
Objetivo: Ganancia en los tiempos de procesamiento Solución Paralela Solución Paralela Características Objetivo: Ganancia en los tiempos de procesamiento Necesidad: Identificar partes del código serial paralelizables, granularidad, tiempos muertos, otros datos. Proceso: Particionado de Datos Dominio de datos funcional Comunicación entre procesos
Comunicación entre Procesos Solución Paralela Solución Paralela Comunicación entre Procesos Intercambio de mensajes entre iteraciones Manipulación de Nodos Fantasma
Solución Paralela Tecnología Aplicada Lenguaje C ? Fortran ? Librería MPI Arquitectura Física Infraestructura: edilicia, refrigeración, electricidad Cluster con 12 PD. 1 Gb RAM. Red ??? Lógica Nueva forma de pensar la solución: algoritmos paralelos Recuperación ante fallos. QoS: Balance de carga/Tunning/Instrumentación
Particionar_conjunto_de_datos() Solución Paralela Solución Paralela Nodo Master Particionar_conjunto_de_datos() Distribuir_conjunto_de_datos( …Workers…) while (no_convergencia) para_cada_nodo_Worker i recibir_condicion_convergencia i Recibir_datos_procesados( …Workers…); Consolidar_Resultados(); Postproceso();
Solución Computacional Solución Paralela Nodo Worker Recibir_datos_particionados(); while (continuar_trabajo) para cada(i en dimension espacial x) para cada(j en dimension espacial y) calcular temperatura Tk(i,j) = Dif( Tk-1 ) Controlar_convergencia_local() Comunicar_convergencia_local() continuar_trabajo = consultar_master Enviar_Datos_Procesados( 0 )
-4 1
Solución Paralela Solución Paralela Nodos Fantasmas Necesidad que tiene cada proceso de conocer datos que se encuentran en otro proceso. En cada iteración del proceso de Jacobi es necesario intercambiar valores En el ejemplo: 5 valores 2 mensajes
Solución Paralela Solución Paralela Si la cantidad de puntos en la discretización horizontal es L Cada procesador deberá intercambiar 2*L elementos con sus procesos contiguos, excepto aquellos procesadores que atienden los extremos del sistema de ecuaciones. Intercambio de nodos En la placa: una frontera En el sistema de ecuaciones: Submatriz Una parte del vector B.
Solución Paralela Solución Paralela -4 1
Solución Paralela Solución Paralela -4 1
Solución Computacional Solución Paralela Nodo Worker Recibir_datos_particionados(); while (continuar_trabajo) para cada(i en dimension espacial x) para cada(j en dimension espacial y) calcular temperatura Tk(i,j) = Dif( Tk-1 ) Controlar_convergencia_local() Comunicar_convergencia_local() continuar_trabajo = consultar_master intercambiar_nodos_Fantasmas() Enviar_Datos_Procesados( 0 )
Observación del fenómeno físico Transferencia de Calor Conclusiones Observación del fenómeno físico Modelado de las Ecuaciones Diferenciales Modelado de las Ecuaciones algebraicas Matices del modelo numérico. Diseño lógico y físico. Algoritmos Estructuras de datos Optimización. Simulación