Descomposición de dominios



Documentos relacionados
Descomposición de dominios con el método alternante de Schwarz

SISTEMAS DE ECUACIONES LINEALES

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Métodos Iterativos para Resolver Sistemas Lineales

Matrices equivalentes. El método de Gauss

La Lección de Hoy es Distancia entre dos puntos. El cuál es la expectativa para el aprendizaje del estudiante CGT.5.G.1

Ecuaciones de primer grado con dos incógnitas

Computación Científica en Paralelo

Subespacios vectoriales en R n

4. Programación Paralela

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Capitulo V Administración de memoria

Cálculo Simbólico también es posible con GeoGebra

Unidad 3 Direccionamiento IP (Subnetting)

Espacios generados, dependencia lineal y bases

ARREGLOS DEFINICION GENERAL DE ARREGLO

2.2 Transformada de Laplace y Transformada Definiciones Transformada de Laplace

Tarea 4.2 Memoria Virtual

Descomposición factorial de polinomios

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

REDES INFORMATICAS: Protocolo IP

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Informática Bioingeniería

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

La lección de hoy es sobre Resolver Ecuaciones. El cuál es la expectativa para el aprendizaje del estudiante SEI.2.A1.1

BREVE MANUAL DE SOLVER

by Tim Tran:

4 Pruebas y análisis del software

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

Manual del Usuario de NOVIT GPS. Le llegará un como éste. Nombre completo;

Tema 2 Límites de Funciones

Análisis de propuestas de evaluación en las aulas de América Latina

La Lección de hoy es sobre determinar el Dominio y el Rango. El cuál es la expectativa para el aprendizaje del estudiante LF.3.A1.

x

Gradiente conjugado. MSc. Miguel Vargas-Félix 07/09/11 1/23

1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet.

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

15 CORREO WEB CORREO WEB

MÉTODOS DE ELIMINACIÓN Son tres los métodos de eliminación más utilizados: Método de igualación, de sustitución y de suma o resta.

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

QUÉ ES UN NÚMERO DECIMAL?

ACCIONES Y OTROS TÍTULOS DE INVERSIÓN

La ventana de Microsoft Excel

Álgebra Lineal Ma1010

Estructuras de datos: Proyecto 2

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

SCOP++ Lidar. Metodología de filtrado

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

Resolución de problemas en paralelo

UNIDAD 1. LOS NÚMEROS ENTEROS.

Cap. 24 La Ley de Gauss

Implementación de algoritmos genéticos paralelos de grano burdo en redes locales de computadoras. Resumen

Sistemas de ecuaciones lineales. Métodos iterativos

DIRECTRICES Y ORIENTACIONES GENERALES PARA LAS PRUEBAS DE ACCESO A LA UNIVERSIDAD

ANÁLISIS DE DATOS NO NUMERICOS

Sistemas de ecuaciones lineales

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Tópicos de implementación en paralelo

Prácticas PGSI. Práctica 4. Gestión de las Cargas de Trabajo de los Recursos y Delimitaciones de Tareas

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

CAPÍTULO III. FUNCIONES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

PROGRAMACIÓN LINEAL Introducción Inecuaciones lineales con 2 variables

Conclusiones. Particionado Consciente de los Datos

Manual para para becarios CONACYT de CIATEQ Registro de CVU

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

Unidad 6 Cálculo de máximos y mínimos

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Valoración de inventario a precio medio.

CONVERSIÓN DE UN NÚMERO EN BINARIO A DECIMAL Y VICEVERSA

Aritmética finita y análisis de error

CAPÍTULO 10 Aplicaciones de la Derivada a Funciones Económicas

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Interoperabilidad de Fieldbus

Tema 2. Espacios Vectoriales Introducción

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

1.4.- D E S I G U A L D A D E S

INFORMÁTICA. Matemáticas aplicadas a la Informática

Ampliación de Estructuras de Datos

CONVERTIDORES DIGITAL ANALÓGICO Y ANALÓGICO - DIGITAL

1 Espacios y subespacios vectoriales.

28 = =

Análisis de medidas conjuntas (conjoint analysis)

SISTEMAS DE NUMERACIÓN.

Cambio de representaciones para variedades lineales.

Matemáticas

Mecánica Racional 20 TEMA 3: Método de Trabajo y Energía.

Tema 3 Resolución de Sistemas de Ecuaciones Lineales

Clase 4: Probabilidades de un evento

18. Camino de datos y unidad de control

Operaciones con polinomios

Transcripción:

Descomposición de dominios Miguel Vargas 27/10/10 1/29

Contenido Contenido Solución de ecuaciones diferenciales con descomposición de dominios Dominios sin traslape, complemento de Schur Método alternante de Schwarz Ejemplo de implementación con MPI Método de Schwarz con gradiente conjugado Método de Schwarz con Cholesky Ejemplo con Cholesky en paralelo Sistemas grandes Preguntas? Bibliografía 27/10/10 2/29

Solución de ecuaciones diferenciales con descomposición de dominios Solución de ecuaciones diferenciales con descomposición de dominios Al discretizar en millones de elementos, la cantidad de información que hace que el cálculo de la solución requiera tiempos de procesamiento y/o cantidades de memoria tales que no es posible resolver el problema utilizando una sola computadora en un tiempo razonable. Se divide el dominio en particiones, para resolver cada una independientemente y después combinar las soluciones locales de forma iterativa. Hay dos formas de trabajar la descomposición de dominio, con particiones con traslape y sin traslape. 2 2 1 1 Descomposición en dominios sin traslape (izquierda) y con traslape (derecha). 27/10/10 3/29

Solución de ecuaciones diferenciales con descomposición de dominios Dividir un dominio en P particiones equivale entonces a separar en P bloques la matriz A que representa las relaciones entre nodos. Cada dominio entonces estará representado por una matriz A p, con p=1 P. El siguiente paso es resolver el sistema de ecuaciones con la matriz A p de cada partición de foma independiente, utilizando algún método convencional para resolver sistemas de ecuaciones. La soluciones obtenidas se intercambiarán con las particiones adyacentes y así, de forma iterativa, se irá aproximando la solución global del sistema. Ejemplo tridimensional de descomposición de dominio 27/10/10 4/29

Dominios sin traslape, complemento de Schur Dominios sin traslape, complemento de Schur En dominios sin traslape, 2 = 1 2, 1 2 =, = 1 2, 1 dos particiones adyacentes tendrán nodos en común en la frontera, lo que equivaldrá a entradas iguales en sus respectivas matrices. Podemos entonces formar la matriz A como 1 I I A= A 0 A I I 1 A I 1 0 A I 2 2 A I Para cada patición p tendremos entonces A p = A p I I p A I p A I p A, x p = 1 I 2 A I x= x A, x p I p x, b p = 2 x I x b p I p b, b= bi 1 2 b I b. (1), con p=1 P. (2) 27/10/10 5/29

Dominios sin traslape, complemento de Schur Una estrategia para resolver este tipo de problemas es utilizar el sistema de complementos de p Schur [Tose05 pp1-7]. Se parte de eliminar las incógnitas x I en el interior de la partición, esto corresponde a la factorización de la matriz de (1) como A=L R= y un sistema lineal resultante aquí 1 A I I 0 0 0 I 0 1 1 A I I 1 AI I 2 2 1 A I A I I 1 0 A I 2 0 A I I 0 0 S 2 A I 1 I I AI 1 x= bi 2 b I g, 1 0 A I 2 2 A I 0 A I I 0 0 S 1 S=A A 1 I A I I 1 A 1 2 2 I A I A I I 1 A 2 I, es el complemento de Schur relativo a las incógnitas en., 27/10/10 6/29

Dominios sin traslape, complemento de Schur Acomodando como en (2), podemos escribir el complemento de Schur local S p = A p p p A I A I I 1 p A I, con p=1 P, encontraremos el complemento de Schur para x con S x =g, (3) con S=S 1 S 2, g = b 1 1 1 A I A I I 1 1 b I b 2 2 2 A I A I I 1 2 b I =g 1 g 1. El método de complementos de Shur consiste entonces en encontrar primero la solución en la frontera común x resolviendo (3) y después aplicar ésta como condición de Dirichlet para encontrar las incógnitas dentro de los dominios con x p p I = A I I 1 b p I A p I x. 27/10/10 7/29

Método alternante de Schwarz Método alternante de Schwarz El algoritmo es conocido como el método alternante de Schwarz en paralelo. 1 2 1 2 Particionamiento del dominio Tenemos un dominio con frontera. Sea L un operador diferencial tal que L x= y en. Se tienen condiciones Dirichlet x=b en 27/10/10 8/29

Método alternante de Schwarz El dominio va a ser dividido en dos particiones 1 y 2 con fronteras 1 y 2 respectivamente. 1 1 2 2 2 1 Particiones traslapadas Las particiones se traslapan, así = 1 2 Las fronteras 1 y 2 son fronteras artificiales y son la parte de las fronteras de 1 y 2 que están en el interior de. 27/10/10 9/29

Método alternante de Schwarz El método alternante de Schwarz consiste en resolver de cada partición de forma independiente, fijando condiciones de Dirichlet en las fronteras artificiales de cada partición con los valores de la iteración previa de la partición adyacente. x 1 0, x 2 0 aproximaciónes iniciales tolerancia i 0 número de iteración mientras x 1 i x 1 i 1 o x 2 i x 2 i 1 resolver resolver L x 1 i = y en 1 L x 2 i = y en 2 con x i 1 =b en 1 1 con x i 2 =b en 2 2 x i i 1 1 x 2 1 en 1 x i i 1 2 x 1 2 en 2 i i 1 Método alternante de Schwarz en paralelo Cuando el operador L tiene una representación como matriz, el algoritmo de Schwarz corresponde a una generalización (debido al traslape) del método iterativo tradicional Gauss-Seidel por bloques. 27/10/10 10/29

Método alternante de Schwarz En problemas de elemento finito, el traslape se realiza aumentando a cada partición elementos de la partición adyacente a partir de la frontera entre las particiones. 2 2 2 2 1 1 1 1 q Dos tipos de traslape de particiones en un problema de elemento finito Un tratamiento profundo de la teoría de los algoritmos de Schwarz puede consultarse en [Tose05]. q 27/10/10 11/29

Método alternante de Schwarz Velocidad de convergencia La velocidad de convergencia al utilizar descomposición de dominios se deteriora conforme se aumenta el número de particiones. 1 2 3 N Caso patológico de descomposición de un dominio En cada iteración del metodo alternante de Schwarz solo transferirá información entre las particiones adyacentes. Entonces, si se tiene una condición de frontera diferente de cero en la primer partición, y se inicia en la iteración 0, le tomará N iteraciones para que la solución local en la partición N sea diferente de cero. Cuando el traslape aumenta se reduce el número de iteraciones necesarias para la convergencia. 27/10/10 12/29

Método alternante de Schwarz Ejemplo de deformación de sólidos Las siguientes imágenes muestran la evolución de un problema de deformación de sólidos en dos dimensiones utilizando el método alternante de Schwarz. Primeras siete iteraciones del método alternante de Schwarz 27/10/10 13/29

Método alternante de Schwarz La gráfica siguiente muestra la convergencia d i de cada partición, medida como la norma ponderada de la diferencia entre la solución actual y la anterior i u d i t 1 u i t =, u t i i donde u t es el vector de desplazamiento resultante de resolver el sistema de ecuaciones de la partición i. 1E+1 1E+0 1E-1 norm(x' - x)/norm(x) 1E-2 1E-3 1E-4 P1 P2 P3 P4 1E-5 1E-6 1E-7 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 Iteration 27/10/10 14/29

Ejemplo de implementación con MPI Ejemplo de implementación con MPI Vamos a explicar de forma simplificada las rutinas de MPI [MPIF08] utilizadas en nuestra implementación del método alternante de Schwarz. 1. P que indica la cantidad de particiones. Para este ejemplo, el programa se instancia 5 veces, asignándose el proceso con rango 0 como el maestro y los procesos 1 a 4 como esclavos, es decir, tendremos 4 particiones. Cada nodo entra en el esquema de MPI llamando la rutina MPI_Init. Maestro MPI_Init s i=1,, P MPI_Init Entrada del programa. 27/10/10 15/29

Ejemplo de implementación con MPI 2. En el nodo maestro se realiza un particionamiento con traslape. Se generan las particiones con traslape, se reenumeran elementos y nodos, finalmente se generan tablas con los enlaces de los nodos fantasma. Particionamiento del dominio con traslape. 27/10/10 16/29

Ejemplo de implementación con MPI 3. El nodo maestro entra en un ciclo i=1,, P en el cual se envian los siguientes datos correspondientes a cada partición i utilizando la función MPI_Send: N i coordenadas de los nodos E i tabla de conectividades de los elementos C i condiciones de frontera Se envian en un ciclo j=1,, P con j i: Los L i j enlaces con los indices de los nodos de frontera artificial y su correspondiente nodo fantasma en la partición j. Con la función MPI_Irecv i, s i se crea una petición sin bloqueo del estatus del nodo i, esto le permite al nodo maestro seguir enviando datos sin esperar a que los esclavos estén listos. Cada esclavo generará su sistema de ecuaciones y cuando esté listo enviará su estatus s i al nodo maestro. 27/10/10 17/29

Ejemplo de implementación con MPI 2 3 Maestro MPI_Send i, N i MPI_Send i, E i MPI_Send i,c i MPI_Send i, L i j MPI_Irecv i, s i MPI_Waitall s i Maestro 1 4 Creación de problemas individuales. s i=1,, P MPI_Recv 0, N i MPI_Recv 0, E i MPI_Recv 0,C i MPI_Recv 0, L i j MPI_Send 0, s i Con la función MPI_Waitall s i el nodo maestro espera el estatus de todos los esclavos antes de continuar. 27/10/10 18/29

Ejemplo de implementación con MPI 4. En este punto el programa comienza a iterar hasta que se logre la convergencia del algoritmo de Schwarz. En cada esclavo el sistema de ecuaciones es resuelto localmente. Al terminar cada esclavo envia la diferencia entre la solución anterior y la actual d i al nodo maestro, el cual evalua la convergencia global del problema. 2 2 3 3 Maestro MPI_Irecv i,d i MPI_Waitall d i Maestro Maestro s i=1,, P MPI_Send 0, d i 1 1 4 4 Reporte del estado de la convergencia al nodo maestro. 27/10/10 19/29

Ejemplo de implementación con MPI 5. Si aún no se ha logrado la convergencia global, entonces los esclavos solicitarán los valores en los nodos fantasma a cada una de las particiones adyacentes con la función MPI_Irecv j,g i j, con j=1,, P, i j, al mismo tiempo enviara los valores de los nodos fantasma que soliciten las otras particiones con el la función MPI_Isend j,g j i, j=1,, P, i j. Con la función MPI_Wait esperaran a que todas las transacciones con las particiones adyacentes hayan concluido. 2 2 Maestro Maestro 3 3 s i=1,, P MPI_Irecv j,g i j MPI_Isend j,g j i MPI_Waitall G i j MPI_Waitall G j i 1 1 4 4 Intercambio de valores en las fronteras artificiales con sus respectivos nodos fantasma. 27/10/10 20/29

Ejemplo de implementación con MPI 6. Una vez que se logre la convergencia el nodo maestro entrará en un ciclo i=1,, P y solicitará uno a uno a los esclavos los resultados de desplazamiento u i, deformación i, y esfuerzos i de cada partición. 22 33 Maestro MPI_Recv i,u i MPI_Recv i, i MPI_Recv i, i Maestro Maestro s i=1,, P MPI_Send 0,u i MPI_Send 0, i MPI_Send 0, i 1 1 4 4 Envio de resultados locales al nodo maestro. 27/10/10 21/29

Ejemplo de implementación con MPI 7. El nodo maestro generará una solución global conjuntando los resultados de todas las particiones. Los nodos salen del esquema MPI llamando la función MPI_Finalize. Maestro MPI_Finalize s i=1,, P MPI_Finalize Consolidación de un resultado global. 27/10/10 22/29

Método de Schwarz con gradiente conjugado Método de Schwarz con gradiente conjugado En las siguientes pruebas se siguió utilizando el Cluster 2 del CIMAT, utilizamos las 14 computadoras del cluster, cada una con cuatro procesadores, lo que nos da un total de 56 CPUs. 1000.00 900.00 Tiempo total Tiempo [m] 800.00 700.00 600.00 500.00 400.00 300.00 200.00 100.00 0.00 941.02 322.34 82.62 G.C. paralelo D.D. con G.C. (14 particiones) D.D. con G.C. (56 particiones) Comparación de estrategias usando gradiente conjugado. 27/10/10 23/29

Método de Schwarz con gradiente conjugado El problema que encontramos con este esquema es que el tiempo que requiere el gradiente conjugado para converger es muy diferente en cada una de las particiones. Diferencia de carga en los nodos más eficiente (izquierda) y menos eficiente (derecha) En el nodo más eficiente se ve que después de terminar de resolver el sistema tiene periodos de baja actividad, durante este tiempo este nodo está esperando que los otros nodos terminen. En comparación, el nodo menos eficiente tarda más en resolver el sistema de ecuaciones, al ser el más lento no muestra periodos de espera, en la gráfica se aprecia que está trabajando continuamente. El nodo menos eficiente alenta a todos los nodos del cluster. 27/10/10 24/29

Método de Schwarz con Cholesky Método de Schwarz con Cholesky Entre más pequeño sea el sistema de ecuaciones más eficiente será la resolución por factorización Cholesky, es por eso que en vez de utilizar 14 particiones, como en el caso con gradiente conjugado paralelizado, utilizaremos 56 particiones (una por cada procesador del cluster) con 20 capas de traslape. 90 80 70 Tiempo total Tiempo de factorización Tiempo [m] 60 50 40 30 20 10 0 82.62 6.34 G.C. paralelo D.D. con Cholesky (56 particiones) Comparación de estrategias usando Cholesky. 27/10/10 25/29

Ejemplo con Cholesky en paralelo Ejemplo con Cholesky en paralelo Problem: Edificio Dimension: 3 Elements: 264,250 Nodes: 326,228 Variables: 978,684 nnz(a): 69,255,522 Global tolerance 1e-4 Partitions 27 Overlapping 3 Solver Parallel cholesky Number of threads Total time [s] Total iterations Iteration time [s] 8 48.8 204 0.114 6 45.9 204 0.095 4 49.9 204 0.092 2 67.1 204 0.095 1 101.4 204 0.096 Time [s] 101.4 67.1 49.9 45.9 48.8 120.0 100.0 80.0 60.0 40.0 La memoria total: 13,438,244,806 [bytes] Memoria nodo maestro: 308,703,548 [bytes] Memoria en nodos esclavo: 486,279,305 [bytes] 1 2 4 Threads 6 8 20.0 0.0 27/10/10 26/29

Sistemas grandes Sistemas grandes Ecuaciones Tiempo [h] Memoria [GB] Procesadores PCs 3,970,662 0.12 17 52 13 14,400,246 0.93 47 52 13 32,399,048 1.60 110 60 15 41,256,528 2.38 142 60 15 63,487,290 4.93 215 84 29 78,370,466 5.59 271 100 29 82,033,206 5.13 285 100 29 6 5.6 5 4.9 5.1 4 Tiempo [horas] 3 2 2.4 1.6 1 0.9 0 0.1 3,970,662 14,400,246 32,399,048 41,256,528 63,487,290 78,370,466 82,033,206 Número de ecuaciones 27/10/10 27/29

Preguntas? Preguntas? 27/10/10 28/29

Bibliografía Bibliografía [Smit96]B. F. Smith, P. E. Bjorstad, W. D. Gropp. Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations. Cambridge Univeristy Press, 1996. [Tose05]A. Toselli, O. Widlund. Domain Decomposition Methods - Algorithms and Theory. Springer, 2005. 27/10/10 29/29