programaciÓn en clusters fernando tinetti. unlp. mayo-2009 caso de estudio

57
PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-200 Caso de Estudio Transferencia de Calor sobre una Placa Julio Monetti. UTN-FR

Upload: boris-curry

Post on 01-Jan-2016

29 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

PROGRAMACIÓN EN CLUSTERSFernando Tinetti. UNLP. Mayo-2009

Caso de EstudioTransferencia de Calor sobre

una PlacaJulio Monetti. UTN-FRM

Page 2: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 3: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 4: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 5: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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.

Page 6: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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.

Page 7: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 8: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Método de las Diferencias Finitas

Page 9: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Método de las Diferencias Finitas

Dominio Continuo Dominio Discreto

EcuacionesDiferenciales

EcuacionesAlgebraicas

Modelo Numérico

Page 10: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 11: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 12: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Método de las Diferencias FinitasModelo Numérico

Discretización espacial en dos dimensiones

Page 13: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 14: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Método de las Diferencias FinitasModelo Numérico

Discretización espacial en tres dimensiones

Page 15: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 16: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 17: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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)

Page 18: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 19: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 20: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 21: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Método de las Diferencias FinitasModelo Numérico

Qué sucede cuando crece el modelo de datos ?

Page 22: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

-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

Page 23: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Condiciones de Frontera

Page 24: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 25: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Δ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

Page 26: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Método de Resolución

Page 27: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 28: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 29: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 30: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Modelo de Datos

Page 31: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 32: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

-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

Page 33: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 34: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 35: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

-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

Page 36: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 37: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 38: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 39: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 40: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Solución Computacional

Page 41: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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.

Page 42: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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 )

Page 43: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Solución Paralela

Page 44: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Solución ParalelaSolución Paralela

Solución Serial

Solución Paralela

Page 45: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Solución ParalelaSolución Paralela

Solución Paralela

Solución Serial

Page 46: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 47: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

Solución ParalelaSolución Paralela

Comunicación entre Procesos

Intercambio de mensajes entre iteraciones

Manipulación de Nodos Fantasma

Page 48: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 49: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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();

Page 50: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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 )

Page 51: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

-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

Page 52: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 53: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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.

Page 54: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 55: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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

Page 56: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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 )

Page 57: PROGRAMACIÓN EN CLUSTERS Fernando Tinetti. UNLP. Mayo-2009 Caso de Estudio

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