programaciÓn en clusters fernando tinetti. unlp. mayo-2009 caso de estudio
DESCRIPTION
PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio Transferencia de Calor sobre una Placa Julio Monetti. UTN-FRM. Agenda. Transferencia de Calor. Referencia al fenómeno físico Modelado Matemático Modelado Numérico Programación de una solución - PowerPoint PPT PresentationTRANSCRIPT
PROGRAMACIÓN EN CLUSTERSFernando Tinetti. UNLP. Mayo-2009
Caso de EstudioTransferencia de Calor sobre
una PlacaJulio Monetti. UTN-FRM
Transferencia de CalorAgenda
1.Referencia al fenómeno físico2.Modelado Matemático3.Modelado Numérico4.Programación de una solución5.Paralelización y Simulación
Fenómeno de Transferencia de Calor
Investigación Experimental Cálculos Teóricos
Establecer modelo matemático
Establecer modelo numérico
Simulación
Recolección de Resultados
Modelado
Observación del Fenómeno
Recolección de Resultados
Referencia al fenómeno físico
Fenómeno de Transferencia de Calor
Cálculos Teóricos
Establecer modelo matemático
Establecer modelo numérico
Programación y Simulación
Recolección de Resultados
Diferencias Finitas
Referencia al fenómeno físico
Ecuación Diferencial
Programa Serial
OptimizaciónPrograma Paralelo
Modelo Matemático
DtT = KDxxT
•Flujo unidimensional•El calor fluye desde temperaturas mas altas hacia temperaturas mas bajas
MaterialK2=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 difusividadBoyce and DiPrima, Elementary Differential Equations and Boundary Value Problems, 6th ed.
Modelo Matemático
DtT = K(DxxT + DyyT)
•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.
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.
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
Método de las Diferencias Finitas
Método de las Diferencias Finitas
Dominio Continuo Dominio Discreto
EcuacionesDiferenciales
EcuacionesAlgebraicas
Modelo Numérico
Método de las Diferencias Finitas
Dominio Discreto
EcuacionesAlgebraicas
Modelo Numérico
•Número Finito de puntos sobre la malla.•Equiespaciados en x e y
INCÓGNITAS
x-h x+hx
Método de las Diferencias FinitasModelo Numérico
•Diferencias hacia delanteAp 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 FinitasModelo Numérico
Discretización espacial en dos dimensiones
Método de las Diferencias FinitasModelo Numérico
x-h,y x,y x+h,y
x,y+h
x,y-h
Discretización espacial en dos dimensiones
Método de las Diferencias FinitasModelo Numérico
Discretización espacial en tres dimensiones
Método de las Diferencias FinitasModelo Numérico
•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
Plano z+1
Plano z-1
Método de las Diferencias FinitasModelo Numérico
h1h2 h1
Cuando ? Cuando se modela, antes de simular
Por qué ?Zonas de mayor crecimiento o decrecimientoImpurezas en el material.Necesidad de mayor precisión en el cálculo
Método de las Diferencias FinitasModelo Numérico
x-h,y x,y x+h,y
x,y+h
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)
Método de las Diferencias FinitasCaso de Estudio
(Tk-1i-1,j + Tk-1
i+1,j + Tk-1i,j+1 + Tk-1
i,j-1 )/4=Tki,j
Modelo Numérico
•Sistema de ecuaciones Lineales•Características diagonales
A{x} = {b}
Matriz de Coeficientes
Incógnitas
Términos independientes
Método de las Diferencias FinitasCaso de Estudio
Modelo Numérico
bk-11
bk-12
bk-13
bk-1n
Tk-1 Tk
bk1
bk2
bk3
bkn
Se compara a través de la norma infinito
Matriz Diagonal.
Para estudiar la transmisión de calor en 2 dimensiones
T7 =( T6+T8+T2+T12 ) /4
Modelo Numérico Método de las Diferencias FinitasCaso de Estudio
Método de las Diferencias FinitasModelo Numérico
Qué sucede cuando crece el modelo de datos ?
-4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4
Condiciones de Frontera
Condiciones Iniciales y de FronteraModelo Numérico
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
Δx= Δy=1xi+1-xi=yi+1-yi=1
Para cada nodoTi,j
Método de las Diferencias FinitasCaso de Estudio
Tki,j=(Tk-1
i-1,j + Tk-1i+1,j + Tk-1
i,j+1 + Tk-1i,j-1 )/4
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ónModelo Numérico
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ónModelo Numérico
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
Método de ResoluciónModelo Numérico
Modelo de Datos
Matriz Tridiagonal. (Banda)
Para estudiar la transmisión de calor en 1 dimensión
1 32 4
1 1
1 -2 1
1 -2 1
1 1
Modelo de DatosModelo Numérico
1 1 1 1 -2 -2 -2 1 1 1 1
-4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1
625 celdas en la matriz de coeficientes
113 en el vector unidimensional 18% !!!
Modelo de DatosModelo Numérico
Modelo de DatosModelo 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-yKs=K-CI=(Ks)2+[ (m-K) – 0.5 ] * Ks + y
-4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4
Matriz Banda.
Modelo de DatosModelo Numérico
•Ancho de Banda A=3
•Ancho de media Banda M=1
•Espacio Interdiagonal L=5E= L-1E=3
L=3E=L-1E=1
L=5
L=3
Método de las Diferencias FinitasModelo Numérico
•Cubo 3*3*3nodos. Cada plano tiene 9 nodos.•Sistema con 729 celdas.
•E1=L1-1•E2=L2-1
Plano z+1
Plano z-1
Método de las Diferencias FinitasModelo Numérico
•x14=x13+x15+x11+x17+x5+x23
Ancho de Banda = 45 sobre A27*27
Plano z+1
Plano z-1
Matriz Banda.
Modelo de DatosModelo 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 ComputacionalSolución Paralela
•Lenguaje C•Arreglo bidimensional en forma dinámica para contener temperaturas Tk.
•Arreglo bidimensional en forma dinámica para contener 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 ComputacionalSolució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 ParalelaSolución Paralela
Solución Serial
Solución Paralela
Solución ParalelaSolución Paralela
Solución Paralela
Solución Serial
Solución ParalelaSolució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
Solución ParalelaSolución Paralela
Comunicación entre Procesos
Intercambio de mensajes entre iteraciones
Manipulación de Nodos Fantasma
Solución ParalelaSolució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
Solución ParalelaSolució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 ComputacionalSolució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 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4 1
1 1 -4
Solución ParalelaSolució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 ParalelaSolución Paralela
•Si la cantidad de puntos en la discretización horizontal es L•Cada procesador deberá intercambiar 2*L elementos consus procesos contiguos, excepto aquellos procesadores queatienden 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 ParalelaSolución Paralela
-4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
Solución ParalelaSolución Paralela
-4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
1 1 -4 1 1
Solución ComputacionalSolució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 )
Transferencia de Calor
Conclusiones
1.Observación del fenómeno físico2.Modelado de las Ecuaciones Diferenciales3.Modelado de las Ecuaciones algebraicas4.Matices del modelo numérico.5.Diseño lógico y físico.
1.Algoritmos2.Estructuras de datos
6.Optimización.7.Simulación