SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Programación y Computación
         paralela (8)
 Resolviendo Sist.Ec.Lineales
provenientes de Ec.Dif.Parc. (2)
          Glen D. Rodríguez R.
     Basado en material de J. Demmel




                                       1
Revisión de este tema




                                                Prerequisitos para entender Multigrid
•   Se vió la Ec. Poisson
•   Y los métodos numéricos para solucionarla




                                                Se reducen a multipl. de vector
•   Método de Jacobi
•   Método de Sobre relajación SOR rojo-negro




                                                con matriz dispersa
•   Gradiente conjugada
•   FFT

• Multigrid
• Comparación de métodos




                                                                                        2
Ec. Poisson en 1D:            ∂2u/∂x2 = f(x)
                                  ∂



     2    -1                      Grafo y “estencil”
     -1   2    -1
          -1   2    -1                 -1   2   -1
T=             -1   2    -1
                    -1   2




                                                       3
Ec. Poisson 2D

• Similar al caso 1D, pero la matriz T es ahora así:
                                                           Grafo y “estencil”
             4    -1        -1
             -1   4    -1        -1
                                                                    -1
                  -1   4              -1
                                                               -1   4    -1
             -1             4    -1        -1
     T=           -1        -1   4    -1        -1
                                                                    -1
                       -1        -1    4              -1
                            -1             4    -1
                                 -1        -1    4    -1
                                      -1         -1    4

• 3D es análogo


                                                                                4
Algoritmos para Poisson 2D (3D) (N = n2 (n3) vars)
   Algoritmo        Serial          PRAM               Memoria          #Procs
   • Dense LU       N3              N                  N2               N2
   • Band LU        N2 (N7/3)       N                  N3/2 (N5/3)      N (N4/3)
   • Jacobi N2      (N5/3)          N (N2/3)           N                N
   • Explicit Inv.  N2              log N              N2               N2
   • Conj.Gradients N3/2 (N4/3)     N1/2(1/3) *log N   N                N
   • Red/Black SOR N3/2 (N4/3)      N1/2 (N1/3)        N                N
   • Sparse LU      N3/2 (N2)       N1/2               N*log N (N4/3)   N
   • FFT            N*log N         log N              N                N
   • Multigrid      N               log2 N             N                N
   • MINIMO         N               log N              N



   Referencia: James Demmel, Applied Numerical Linear Algebra, SIAM, 1997.




                                                                          5
Motivación del Multigrid
• Recordemos que Jacobi, SOR, CG, y cualquier otro
  algoritmo basado en multiplicación de vector por matriz
  dispersa puede mover información sólo en una celda a
  la vez (por iteración)
   • Mover la información a lo largo de una malla n x n toma por lo
     menos n pasos
• Se puede mostrar que disminuir el error por un factor fijo
  c<1 toma mínimo unos Ω(log n) pasos      límite
  asintótico mínimo
   • Convergencia a un error fijo < 1 toma Ω(log n ) pasos
• Por lo tanto, converger en O(1) pasos (número
  constante de pasos para cualquier n) implica mover
  información a lo largo de la malla o grilla más rápido que
  una celda por paso
                                                                  6
Motivación de Multigrid




                          7
Bases de Multigrid
• Algoritmo básico:
   • Reemplazar problema en una grilla o malla fina por una
     aproximación en una malla más gruesa (o malla burda)
   • Resolver aproximadamente el problema en la grilla gruesa, y
     usar la solución como una “starting guess” para el problema en
     malla fina, el cual es luego resuelto iterativamente
   • Resolver el problema en malla gruesa recursvamente, o sea,
     usando una aproximación más burda todavía, etc.
• El éxito depende de que la solución en malla burda sea
  una buena aproximación a la solución de malla fina




                                                                 8
Esa misma Gran Idea se usa en otros lados
• Reemplazar el problema fino por una aproximación burda
  en forma recursiva.
• Multilevel Graph Partitioning (METIS):
   • Reemplazar el grafo a ser particionado por un grafo más burdo,
     obtenido por el “Maximal Independent Set”
   • Dada la partición de la grilla burda, refinar usando Kernighan-Lin
• Barnes-Hut (y el método de Multipolo Rápido) para
  computar las fuerzas gravitacionales de n partículas en
  tiempo O(n log n):
   • Aproximar partículas encajas por masa total, centro de gravedad
   • Suficientemente bueno para partículas lejanas; para las cercanas,
     dividir la caja en forma recursiva.
• Todos estos ejemplos dependen de que la aproximación
  burda sea suficientemente buena (por lo menos si estamos
  lejos en la recursión)
                                                                      9
Multigrid usa “Divide y Vencerás” en 2 formas
• 1ra forma:
   • Resolver el problema en una malla dada invocando al Multigrid en
     una aproximación burda para conseguir una buena “initial guess” a
     ser refinada después.
• 2da forma:
   • Piense que el error es la suma de senos de diferente frecuencias.
   • La misma idea que con el método de las FFT, pero no en forma
     explícita.
   • Cada llamada al Multgrid es responsable de suprimir los
     coeficientes de los senos en el 50% de las frecuencias más bajas
     en el error (gráficos después)




                                                                   10
Multigrid en 1D a grosso modo
• Considere una grilla 1D de tamaño 2m+1 por simplicidad
• Sea P(i) el problema de resolver la ec. discreta de Poisson en una
  grilla 2i+1 en 1D. La ec.linear sería T(i) * x(i) = b(i)
• P(m) , P(m-1) , … , P(1) es la secuencia de problemas del más fino al
  más burdo




                                                                    11
Multigrid en 1D y 2D a grosso modo
• Considere la grilla 2m+1 en 1D (2m+1 x 2m+1 en 2D) por simplicidad
• Sea P(i) el rpoblema de resolver Poisson discreto en una grilla 2i+1 en
  1D (2i+1 by 2i+1 en 2D)
    • El sistema linear sería T(i) * x(i) = b(i)
• P(m) , P(m-1) , … , P(1) es la secuencia de problemas del más fino al
  más burdo




                                                                    12
Operadores Multigrid
• Para el problema P(i) :
    • b(i) es el vector del lado derecho de la ecuación lineal y      Ambos en la grilla
    • x(i) es la solución estimada actualmente                        de tamaño 2i-1

• Todos los sgtes. operadores solo promedian valores en puntos aledaños
  en la grilla (así la info se mueve más rápido en mallas burdas)
• El operador restricción R<i> mapea P(i) a P(i-1)
    • Redefine el problema en la grilla fina P(i) a la grilla burda P(i-1)
    • Usa muestreo o promedios
    • b(i-1)= R<i> (b(i))
• El operador interpolación In<i-1> mapea la solución aprox. x(i-1) a x(i)
    • Interpola la solución en la malla burda P(i-1) a la fina P(i)
    • x(i) = In<i-1>(x(i-1))
• El operador solución S(i) toma P(i) y mejora la solución x(i)
    • Usa Jacobi “ponderado” o SOR en un solo nivel de la malla
    • x mejorado (i) = S<i> (b(i), x(i))


                                                                                13
Algoritmo Multigrid de ciclo V
Function MGV ( b(i), x(i) )
 … Resuelve T(i)*x(i) = b(i) dado un b(i) y un “initial guess” para x(i)
 … retorna un x(i) mejorado
 if (i = 1)
      computar solución exacta de x(1) of P(1)        solo 1 incógnita
      return x(1)
 else
      x(i) = S<i> (b(i), x(i))                     mejorar la solución
                                               atenuando el error de alta frecuencia
      r(i) = T(i)*x(i) - b(i)                     computar el residual
      d(i) = In<i-1> ( MGV( R<i> (r(i)), 0 ) ) resolver T(i)*d(i) = r(i) recursivamente
      x(i) = x(i) - d(i)                          corregir solución en grilla fina
      x(i) = S<i> ( b(i), x(i) )                   mejorar solución de nuevo
      return x(i)




                                                                                    14
¿Por qué es llamado ciclo V?
• Miren el dibujo del orden de las llamadas
• Después de un tiempo, el ciclo V luce así:




                                               15
Complejidad de un Ciclo V
• En una computadora serial
   • En cada punto del Ciclo V, el cómputo es del orden O(número
     de incógnitas)
   • Costo del nivel i-esimo es (2i-1)2 = O(4 i)
   • Si el nivel más fino es el m, el tiempo total es:
              m
   •          Σ     O(4 i) = O( 4 m) = O(# incógnitas)
              i=1



• En un sistema paralelo (PRAM)
   • Con un procesador por cada punto de la grilla y comunicación
     con costo despreciable, cada paso del ciclo V tarda un tiempo
     constante
   • Tiempo Total del ciclo V es O(m) = O(log #incógnitas)



                                                                16
Full Multigrid (FMG)
• Intuición:
    • Mejorar la solución haciendo varios ciclos V
    • Evitar los costosos ciclos en grilla fina (alta frecuencia)
    • El por qué funciona es para otro curso
      Function FMG (b(m), x(m))
        … retorna un x(m) mejorado dado un “initial guess”
        computa la solución exacta x(1) del P(1)
        for i=2 to m
            x(i) = MGV ( b(i), In<i-1> (x(i-1) ) )

• En otras palabras:
    • Resolver el problema con 1 incógnita
    • Dada la solución de un problema burdo P(i-1) , mapear los valores de
      la solución como el guess inicial del problema P(i)
    • Resolver el problema más fino usando el ciclo V

                                                                        17
Análisis del costo del Full Multigrid




• Una V para cada llamada al Full MultiGrid
   • Algunos usan Ws y otras formas
                  m
• Tiempo serial: Σ       O(4 i) = O( 4 m) = O(# incógn.)
                  i=1
                   m
• Tiempo PRAM: Σ          O(i) = O( m 2) = O( log2 # incógn.)
                   i=1
                                                            18
Complejidad de resolver la Ec.Poisson
• Teorema: error después de una llamada al Full
  Multigrid<= c* error antes, donde c < 1/2,
  independentemente del # incógnitas

• Corolario: se puede hacer que el error se vuelva < que
  cualquier tolerancia fija arbitraria en n número fijo de
  pasos, independentemente del tamaño de la grilla fina

• Esta es la más importante propiedad de convergencia
  del MultiGrid, que lo diferencia de otros métodos, que
  convergen más lento en grillas grandes (finas)

• Complejidad total es proporcional al costo de una
  llamada al FMG
                                                           19
El operador Solución S<i> - Detalles
• El operador Solución, S<i>, es un Jacobi ponderado
• Considere este problema 1D

• En el nivel i, el Jacobi puro hace:
     x(j) := 1/2 (x(j-1) + x(j+1) + b(j) )
• En su lugar, Jacobi ponderado hace:
     x(j) := 1/3 (x(j-1) + x(j) + x(j+1) + b(j) )

• En 2D, de forma similar se promedia la variable con sus
  vecinos.




                                                       20
Jacobi ponderado para amortiguar error de alta frecuencia

                               Error inicial
                                 “Áspero”
                                 Componentes de alta frec. son fuertes
                                  Norma = 1.65




                                Error después de 1 Jacobi
                                  “Suave”
                                   Comp. de alta frec. menos fuertes
                                   Norma = 1.06




                                 Error después de 2 Jacobi
                                   “Más Suave”
                                    Débil comp. de alta frec.
                                    Norma = .92,
                                        No disminuirá mucho más
                                                               21
Multigrid como algoritmo Divide y Vencerás

• Cada nivel en un ciclo V reduce el error en una parte del
  dominio de la frecuencia




                                                       22
El Operador Restricción R<i> - Detalles
• El operador restricción, R<i>, toma
    • un problema P(i) con vector del lado derecho b(i) y
    • lo mapea en un problema más burdo P(i-1) con vector b(i-1)
• En 1D, se promedia los valores de los vecinos
    • xburdo(i) = 1/4 * xfino(i-1) + 1/2 * xfino(i) + 1/4 * xfino(i+1)




• En 2D, se promedia con los 8 vecinos (N,S,E,W,NE,NW,SE,SW)
                                                                         23
Operador Interpolación In<i-1>: detalles
• El operador Interpolación In<i-1>, toma una función en una malla burda
  P(i-1) , y produce una función en una malla fina P(i)
• En 1D, se hace interpolación lineal a los vecinos burdos más próximos
    • xfino(i) = xburdo(i) si el punto i de la grilla fina está también en la burda, si no:
    • xfino(i) = 1/2 * xburdo(izquierda de i) + 1/2 * xburdo(derecha de i)




• En 2D, la interpolación debe promediar los 4 vecinos (NW,SW,NE,SE)


                                                                                     24
Convergencia del Multigrid en 1D




                                   25
Convergencia del Multigrid en 2D




                                   26
Multigrid paralela en 2D


• Multigrid en 2D necesita
  computar con los
  vecinos más próximos
  (hasta 8) en cada nivel
  de la grilla

• Empieza con una grilla
  de n=2m+1 x 2m+1 (aquí
  m=5)

• Se usa una malla de
  procesadores de s x s
  (aquí s=4)
                             27
Modelo de performance del Multigrid 2D paralelo (ciclo V)
• Asumir grilla de 2m+1 x 2m+1 puntos, n= 2m-1, N=n2
• Asumir p = 4k procesadores, en una malla de 2k x 2k
    • Procesadores comienzan con una sub grilla de 2m-k x 2m-k variables
• Considerar que el Ciclo V empieza en el nivel m
    • En los niveles del m al k del ciclo V, cada procesador trabaja.
    • En los noveles k-1 al 1, algunos procesadores están ociosos, por que una
      malla de 2k-1 x 2k-1 variables (o menos) no puede ocupar cada procesador
• Costo de un nivel en el ciclo V
    • If nivel j >= k, then costo =
          O(4j-k )     …. Flops, proporcional al número de puntos/procesador
        + O( 1 ) α     …. Envía un número constante de mensajes a los procs. vecinos
        + O( 2j-k) β   …. Número de words (doubles o floats) enviados
    • If nivel j < k, then costo =
          O(1)         …. Flops, proporcional al número de puntos/procesador
        + O(1) α       …. Envía un número constante de mensajes a los procs. vecinos
        + O(1) β       .… Número de words enviados
• Sume para todos los niveles 1,2,… y todos los ciclos V en FMG!!!
                                                                                 28
Comparición de Métodos (en O(.))
             # Flops       # Mensajes           # Words enviadas
MG            N/p +         (log N)2             (N/p)1/2 +
             log p * log N                      log p * log N
FFT          N log N / p       p1/2              N/p
SOR           N3/2 /p           N1/2             N/p

•   SOR es más lento en todo
•   Flops para el MG y FFT dependen de la precisión del MG
•   MG comunica menos data (ancho de banda)
•   El total de mensajes (latencia) depende …
      • Este análisis simplista no nos dice si MG o FFT es mejor cuando
        α >> β
                                                                  29
Consideraciones prácticas
• En la práctica, no tenemos que iterar hasta P(1)
• En programa secuencial, las grillas más burdas son
  rápidas, pero en un prog.paralelo no.
   • Considere 1000 puntos por procesador
   • En 2D, las vars. a comunicar es 4xsqrt(1000) ~= 128, o 13%
   • En 3D, sería 1000-83 ~= 500, o 50%
• Ver Tuminaro y Womble, SIAM J. Sci. Comp., v14, n5,
  1993 para el análisis de MG en nCUBE2 de 1024 procs.
   • En grilla 64x64 vars., solo 4 por procesador
      •   eficiencia de 1 ciclo V fue 0.02, y en FMG 0.008
   • En grilla 1024x1024
      •   eficiencias fueron 0.7 (MG ciclo V) y 0.42 (FMG)
      •   Aunque su eficiencia paralela es peor, FMG es 2.6 veces más
          rápido que sólo los ciclos V
   • nCUBE tenía comunicación rápida, procesadores lentos
                                                                    30
Multigrid en un Mesh adaptativo
• Para problemas con un
  rango dinámico muy
  grande, se necesita otro
  nivel de refinamiento

• Se construye un mesh
  adaptativo y se resuelve
  el multigrid (típicamente)
  en cada nivel

 • No se puede costear el uso de mesh fino en todo el
   problema



                                                        31
Aplicaciones multibloque
• Resolver el sistema de ecuaciones en una unión de
  rectángulos
    • subproblema de AMR
• Ej:




                                                      32
Refinando el Mesh Adaptativo (AMR)
• Usar estructuras de datos en el AMR
• El paralelismo usual es asignar grillas en cada nivel a
  los procesadores
• Balance de carga es problemático




                                                            33
Soporte para AMR
• Dominios en ciertos sistemas (Titanium, etc.) diseñados
  para este problema
• Librerías: Kelp, Boxlib, y AMR++
• Primitivas para ayudar con los updates en las fronteras
  entre procesadores, etc.




                                                       34
Multigrid en un Mesh no estructurado

• Otro enfoque para
  manejar trabajos
  variables es usar un
  mesh no estructurado
  que se refina más en las
  áreas de interes
• Rectangular adaptivo o
  no estructurado?
   • Fórmulas más simples en
     el rectangular
   • Supuestamente más fácil
     de implementar (arrays)
     pero las fronteras tienden Hasta 39M variables en 960 procesadores,
     a dominar el código.       Con 50% eficiencia (Fuente: M. Adams)

                                                                    35
Multigrid en una Mesh no estructurada

• Se necesita particionar el gráfico para paralelizar
• Recordar: Cuál es el propósito del Multigrid?
• Debe poderse crear grillas burdas (problema “duro”)
   • No se puede “saltearse los puntos uno si otro no” como antes
   • Usar de nuevo “maximal independent sets”
   • Como hacer que un grafo burdo aproxime bien al fino???
• Se debe redefinir R<> y In<>
   • Cómo convertir de grilla burda a fina y viceversa?
• Definir S<>
   • Cómo se computa la matriz? (fórmulas varían)
• Procesar meshes burdas eficientemente
   • Sería mejor limitarse a usar pocos procesadores en meshes
     burdas?
   • Debería cambiarse el “solver” en meshes burdas?
                                                                 36
Fuente de Mesh no estructurada (elem.finito):
Vertebra




 Fuente: M. Adams, H. Bayraktar, T. Keaveny, P. Papadopoulos, A. Gupta
                                                                         37
Multigrid para análisis elástico no lineal de hueso
 Test mecánico de                                Fuente: M. Adams et al
 propiedades del material   Imagen 3d
                                                µFE mesh
                                                2.5 mm3
                                                elementos 44 µm




   Tomografía por
                                        Hasta
   computadora @
                                        537M variables
   resolución 22 µm
                                        4088 Procesadores (ASCI White)
                                        70% eficiencia en paralelo 38

Contenu connexe

Tendances

4 la derivada por formulas
4 la derivada por formulas4 la derivada por formulas
4 la derivada por formulasJesus Gil
 
Señales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLABSeñales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLABJose Agustin Estrada
 
Zoom de una imagen
Zoom de una imagenZoom de una imagen
Zoom de una imagenlmarchenac01
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSIng. Electrónica xD
 
RESOLUCION Capitulo4 soria porras
RESOLUCION Capitulo4 soria porrasRESOLUCION Capitulo4 soria porras
RESOLUCION Capitulo4 soria porrasALEX PORRAS
 
Intro parte3
Intro parte3Intro parte3
Intro parte3UNEFA
 
La Integral Definida
La Integral DefinidaLa Integral Definida
La Integral DefinidaERICK CONDE
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSIng. Electrónica xD
 
Lab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECSLab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECSIng. Electrónica xD
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discretoguest1e528d
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSIng. Electrónica xD
 
REDES NEURONALES De Hopfield
REDES NEURONALES De HopfieldREDES NEURONALES De Hopfield
REDES NEURONALES De HopfieldESCOM
 

Tendances (20)

4 la derivada por formulas
4 la derivada por formulas4 la derivada por formulas
4 la derivada por formulas
 
Integrales inmediatas
Integrales inmediatasIntegrales inmediatas
Integrales inmediatas
 
Señales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLABSeñales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLAB
 
Zoom de una imagen
Zoom de una imagenZoom de una imagen
Zoom de una imagen
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECS
 
Parte2
Parte2Parte2
Parte2
 
RESOLUCION Capitulo4 soria porras
RESOLUCION Capitulo4 soria porrasRESOLUCION Capitulo4 soria porras
RESOLUCION Capitulo4 soria porras
 
Intro parte3
Intro parte3Intro parte3
Intro parte3
 
Solucion taller 1 de control 2
Solucion taller 1 de control 2Solucion taller 1 de control 2
Solucion taller 1 de control 2
 
Guia 2 matlab
Guia 2 matlabGuia 2 matlab
Guia 2 matlab
 
Transformada de laplace
Transformada de laplaceTransformada de laplace
Transformada de laplace
 
La Integral Definida
La Integral DefinidaLa Integral Definida
La Integral Definida
 
Series de fourier
Series de fourierSeries de fourier
Series de fourier
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECS
 
DERIVACIÓN E INTEGRACIÓN NUMÉRICA
DERIVACIÓN E INTEGRACIÓN NUMÉRICADERIVACIÓN E INTEGRACIÓN NUMÉRICA
DERIVACIÓN E INTEGRACIÓN NUMÉRICA
 
211 matlab senales
211 matlab senales211 matlab senales
211 matlab senales
 
Lab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECSLab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECS
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECS
 
REDES NEURONALES De Hopfield
REDES NEURONALES De HopfieldREDES NEURONALES De Hopfield
REDES NEURONALES De Hopfield
 

Similaire à Paralela8

Tp n7 series numéricas
Tp n7 series numéricasTp n7 series numéricas
Tp n7 series numéricasvivianajara
 
1 transporte de_partículas_3
1 transporte de_partículas_31 transporte de_partículas_3
1 transporte de_partículas_3Neutron Hadron
 
Paso 2 aporte jose labio
Paso 2 aporte jose labioPaso 2 aporte jose labio
Paso 2 aporte jose labioJose Labio
 
Intro parte4
Intro parte4Intro parte4
Intro parte4UNEFA
 
Perceptron y Adaline
Perceptron y AdalinePerceptron y Adaline
Perceptron y AdalineSpacetoshare
 
Documentación doctorado
Documentación doctoradoDocumentación doctorado
Documentación doctoradocompunova
 
Clase 8- Diseño indirecto de Controladores digitales
Clase 8- Diseño indirecto de Controladores digitalesClase 8- Diseño indirecto de Controladores digitales
Clase 8- Diseño indirecto de Controladores digitalesUNEFA
 
resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB Raul Ibañez
 
Sistemas ecuaciones no lineales
Sistemas ecuaciones no linealesSistemas ecuaciones no lineales
Sistemas ecuaciones no linealesAndres Milquez
 
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...Videoconferencias UTPL
 
Actividadderecuperacionmath10enero2010
Actividadderecuperacionmath10enero2010Actividadderecuperacionmath10enero2010
Actividadderecuperacionmath10enero2010Ervvin Lozano
 

Similaire à Paralela8 (20)

Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Los algoritmos rápidos y sus aplicaciones
Los algoritmos rápidos y sus aplicacionesLos algoritmos rápidos y sus aplicaciones
Los algoritmos rápidos y sus aplicaciones
 
Tp n7 series numéricas
Tp n7 series numéricasTp n7 series numéricas
Tp n7 series numéricas
 
1 transporte de_partículas_3
1 transporte de_partículas_31 transporte de_partículas_3
1 transporte de_partículas_3
 
Paso 2 aporte jose labio
Paso 2 aporte jose labioPaso 2 aporte jose labio
Paso 2 aporte jose labio
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Sistemas Difusos
Sistemas DifusosSistemas Difusos
Sistemas Difusos
 
Intro parte4
Intro parte4Intro parte4
Intro parte4
 
Perceptron y Adaline
Perceptron y AdalinePerceptron y Adaline
Perceptron y Adaline
 
Documentación doctorado
Documentación doctoradoDocumentación doctorado
Documentación doctorado
 
Ejercicio psu
Ejercicio psuEjercicio psu
Ejercicio psu
 
Mr1i 753-2007-2
Mr1i 753-2007-2Mr1i 753-2007-2
Mr1i 753-2007-2
 
Clase 8- Diseño indirecto de Controladores digitales
Clase 8- Diseño indirecto de Controladores digitalesClase 8- Diseño indirecto de Controladores digitales
Clase 8- Diseño indirecto de Controladores digitales
 
resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB
 
Sistemas ecuaciones no lineales
Sistemas ecuaciones no linealesSistemas ecuaciones no lineales
Sistemas ecuaciones no lineales
 
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
UTPL-MATEMÁTICAS PARA CIENCIAS BIOLÓGICAS-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2...
 
Actividadderecuperacionmath10enero2010
Actividadderecuperacionmath10enero2010Actividadderecuperacionmath10enero2010
Actividadderecuperacionmath10enero2010
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Taller de metodos
Taller de metodosTaller de metodos
Taller de metodos
 

Plus de Abraham Zamudio (8)

Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Clase5_Python-CTIC
Clase5_Python-CTICClase5_Python-CTIC
Clase5_Python-CTIC
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Paralela10
Paralela10Paralela10
Paralela10
 
Paralela9
Paralela9Paralela9
Paralela9
 
Paralela2
Paralela2Paralela2
Paralela2
 

Dernier

Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 

Dernier (20)

Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 

Paralela8

  • 1. Programación y Computación paralela (8) Resolviendo Sist.Ec.Lineales provenientes de Ec.Dif.Parc. (2) Glen D. Rodríguez R. Basado en material de J. Demmel 1
  • 2. Revisión de este tema Prerequisitos para entender Multigrid • Se vió la Ec. Poisson • Y los métodos numéricos para solucionarla Se reducen a multipl. de vector • Método de Jacobi • Método de Sobre relajación SOR rojo-negro con matriz dispersa • Gradiente conjugada • FFT • Multigrid • Comparación de métodos 2
  • 3. Ec. Poisson en 1D: ∂2u/∂x2 = f(x) ∂ 2 -1 Grafo y “estencil” -1 2 -1 -1 2 -1 -1 2 -1 T= -1 2 -1 -1 2 3
  • 4. Ec. Poisson 2D • Similar al caso 1D, pero la matriz T es ahora así: Grafo y “estencil” 4 -1 -1 -1 4 -1 -1 -1 -1 4 -1 -1 4 -1 -1 4 -1 -1 T= -1 -1 4 -1 -1 -1 -1 -1 4 -1 -1 4 -1 -1 -1 4 -1 -1 -1 4 • 3D es análogo 4
  • 5. Algoritmos para Poisson 2D (3D) (N = n2 (n3) vars) Algoritmo Serial PRAM Memoria #Procs • Dense LU N3 N N2 N2 • Band LU N2 (N7/3) N N3/2 (N5/3) N (N4/3) • Jacobi N2 (N5/3) N (N2/3) N N • Explicit Inv. N2 log N N2 N2 • Conj.Gradients N3/2 (N4/3) N1/2(1/3) *log N N N • Red/Black SOR N3/2 (N4/3) N1/2 (N1/3) N N • Sparse LU N3/2 (N2) N1/2 N*log N (N4/3) N • FFT N*log N log N N N • Multigrid N log2 N N N • MINIMO N log N N Referencia: James Demmel, Applied Numerical Linear Algebra, SIAM, 1997. 5
  • 6. Motivación del Multigrid • Recordemos que Jacobi, SOR, CG, y cualquier otro algoritmo basado en multiplicación de vector por matriz dispersa puede mover información sólo en una celda a la vez (por iteración) • Mover la información a lo largo de una malla n x n toma por lo menos n pasos • Se puede mostrar que disminuir el error por un factor fijo c<1 toma mínimo unos Ω(log n) pasos límite asintótico mínimo • Convergencia a un error fijo < 1 toma Ω(log n ) pasos • Por lo tanto, converger en O(1) pasos (número constante de pasos para cualquier n) implica mover información a lo largo de la malla o grilla más rápido que una celda por paso 6
  • 8. Bases de Multigrid • Algoritmo básico: • Reemplazar problema en una grilla o malla fina por una aproximación en una malla más gruesa (o malla burda) • Resolver aproximadamente el problema en la grilla gruesa, y usar la solución como una “starting guess” para el problema en malla fina, el cual es luego resuelto iterativamente • Resolver el problema en malla gruesa recursvamente, o sea, usando una aproximación más burda todavía, etc. • El éxito depende de que la solución en malla burda sea una buena aproximación a la solución de malla fina 8
  • 9. Esa misma Gran Idea se usa en otros lados • Reemplazar el problema fino por una aproximación burda en forma recursiva. • Multilevel Graph Partitioning (METIS): • Reemplazar el grafo a ser particionado por un grafo más burdo, obtenido por el “Maximal Independent Set” • Dada la partición de la grilla burda, refinar usando Kernighan-Lin • Barnes-Hut (y el método de Multipolo Rápido) para computar las fuerzas gravitacionales de n partículas en tiempo O(n log n): • Aproximar partículas encajas por masa total, centro de gravedad • Suficientemente bueno para partículas lejanas; para las cercanas, dividir la caja en forma recursiva. • Todos estos ejemplos dependen de que la aproximación burda sea suficientemente buena (por lo menos si estamos lejos en la recursión) 9
  • 10. Multigrid usa “Divide y Vencerás” en 2 formas • 1ra forma: • Resolver el problema en una malla dada invocando al Multigrid en una aproximación burda para conseguir una buena “initial guess” a ser refinada después. • 2da forma: • Piense que el error es la suma de senos de diferente frecuencias. • La misma idea que con el método de las FFT, pero no en forma explícita. • Cada llamada al Multgrid es responsable de suprimir los coeficientes de los senos en el 50% de las frecuencias más bajas en el error (gráficos después) 10
  • 11. Multigrid en 1D a grosso modo • Considere una grilla 1D de tamaño 2m+1 por simplicidad • Sea P(i) el problema de resolver la ec. discreta de Poisson en una grilla 2i+1 en 1D. La ec.linear sería T(i) * x(i) = b(i) • P(m) , P(m-1) , … , P(1) es la secuencia de problemas del más fino al más burdo 11
  • 12. Multigrid en 1D y 2D a grosso modo • Considere la grilla 2m+1 en 1D (2m+1 x 2m+1 en 2D) por simplicidad • Sea P(i) el rpoblema de resolver Poisson discreto en una grilla 2i+1 en 1D (2i+1 by 2i+1 en 2D) • El sistema linear sería T(i) * x(i) = b(i) • P(m) , P(m-1) , … , P(1) es la secuencia de problemas del más fino al más burdo 12
  • 13. Operadores Multigrid • Para el problema P(i) : • b(i) es el vector del lado derecho de la ecuación lineal y Ambos en la grilla • x(i) es la solución estimada actualmente de tamaño 2i-1 • Todos los sgtes. operadores solo promedian valores en puntos aledaños en la grilla (así la info se mueve más rápido en mallas burdas) • El operador restricción R<i> mapea P(i) a P(i-1) • Redefine el problema en la grilla fina P(i) a la grilla burda P(i-1) • Usa muestreo o promedios • b(i-1)= R<i> (b(i)) • El operador interpolación In<i-1> mapea la solución aprox. x(i-1) a x(i) • Interpola la solución en la malla burda P(i-1) a la fina P(i) • x(i) = In<i-1>(x(i-1)) • El operador solución S(i) toma P(i) y mejora la solución x(i) • Usa Jacobi “ponderado” o SOR en un solo nivel de la malla • x mejorado (i) = S<i> (b(i), x(i)) 13
  • 14. Algoritmo Multigrid de ciclo V Function MGV ( b(i), x(i) ) … Resuelve T(i)*x(i) = b(i) dado un b(i) y un “initial guess” para x(i) … retorna un x(i) mejorado if (i = 1) computar solución exacta de x(1) of P(1) solo 1 incógnita return x(1) else x(i) = S<i> (b(i), x(i)) mejorar la solución atenuando el error de alta frecuencia r(i) = T(i)*x(i) - b(i) computar el residual d(i) = In<i-1> ( MGV( R<i> (r(i)), 0 ) ) resolver T(i)*d(i) = r(i) recursivamente x(i) = x(i) - d(i) corregir solución en grilla fina x(i) = S<i> ( b(i), x(i) ) mejorar solución de nuevo return x(i) 14
  • 15. ¿Por qué es llamado ciclo V? • Miren el dibujo del orden de las llamadas • Después de un tiempo, el ciclo V luce así: 15
  • 16. Complejidad de un Ciclo V • En una computadora serial • En cada punto del Ciclo V, el cómputo es del orden O(número de incógnitas) • Costo del nivel i-esimo es (2i-1)2 = O(4 i) • Si el nivel más fino es el m, el tiempo total es: m • Σ O(4 i) = O( 4 m) = O(# incógnitas) i=1 • En un sistema paralelo (PRAM) • Con un procesador por cada punto de la grilla y comunicación con costo despreciable, cada paso del ciclo V tarda un tiempo constante • Tiempo Total del ciclo V es O(m) = O(log #incógnitas) 16
  • 17. Full Multigrid (FMG) • Intuición: • Mejorar la solución haciendo varios ciclos V • Evitar los costosos ciclos en grilla fina (alta frecuencia) • El por qué funciona es para otro curso Function FMG (b(m), x(m)) … retorna un x(m) mejorado dado un “initial guess” computa la solución exacta x(1) del P(1) for i=2 to m x(i) = MGV ( b(i), In<i-1> (x(i-1) ) ) • En otras palabras: • Resolver el problema con 1 incógnita • Dada la solución de un problema burdo P(i-1) , mapear los valores de la solución como el guess inicial del problema P(i) • Resolver el problema más fino usando el ciclo V 17
  • 18. Análisis del costo del Full Multigrid • Una V para cada llamada al Full MultiGrid • Algunos usan Ws y otras formas m • Tiempo serial: Σ O(4 i) = O( 4 m) = O(# incógn.) i=1 m • Tiempo PRAM: Σ O(i) = O( m 2) = O( log2 # incógn.) i=1 18
  • 19. Complejidad de resolver la Ec.Poisson • Teorema: error después de una llamada al Full Multigrid<= c* error antes, donde c < 1/2, independentemente del # incógnitas • Corolario: se puede hacer que el error se vuelva < que cualquier tolerancia fija arbitraria en n número fijo de pasos, independentemente del tamaño de la grilla fina • Esta es la más importante propiedad de convergencia del MultiGrid, que lo diferencia de otros métodos, que convergen más lento en grillas grandes (finas) • Complejidad total es proporcional al costo de una llamada al FMG 19
  • 20. El operador Solución S<i> - Detalles • El operador Solución, S<i>, es un Jacobi ponderado • Considere este problema 1D • En el nivel i, el Jacobi puro hace: x(j) := 1/2 (x(j-1) + x(j+1) + b(j) ) • En su lugar, Jacobi ponderado hace: x(j) := 1/3 (x(j-1) + x(j) + x(j+1) + b(j) ) • En 2D, de forma similar se promedia la variable con sus vecinos. 20
  • 21. Jacobi ponderado para amortiguar error de alta frecuencia Error inicial “Áspero” Componentes de alta frec. son fuertes Norma = 1.65 Error después de 1 Jacobi “Suave” Comp. de alta frec. menos fuertes Norma = 1.06 Error después de 2 Jacobi “Más Suave” Débil comp. de alta frec. Norma = .92, No disminuirá mucho más 21
  • 22. Multigrid como algoritmo Divide y Vencerás • Cada nivel en un ciclo V reduce el error en una parte del dominio de la frecuencia 22
  • 23. El Operador Restricción R<i> - Detalles • El operador restricción, R<i>, toma • un problema P(i) con vector del lado derecho b(i) y • lo mapea en un problema más burdo P(i-1) con vector b(i-1) • En 1D, se promedia los valores de los vecinos • xburdo(i) = 1/4 * xfino(i-1) + 1/2 * xfino(i) + 1/4 * xfino(i+1) • En 2D, se promedia con los 8 vecinos (N,S,E,W,NE,NW,SE,SW) 23
  • 24. Operador Interpolación In<i-1>: detalles • El operador Interpolación In<i-1>, toma una función en una malla burda P(i-1) , y produce una función en una malla fina P(i) • En 1D, se hace interpolación lineal a los vecinos burdos más próximos • xfino(i) = xburdo(i) si el punto i de la grilla fina está también en la burda, si no: • xfino(i) = 1/2 * xburdo(izquierda de i) + 1/2 * xburdo(derecha de i) • En 2D, la interpolación debe promediar los 4 vecinos (NW,SW,NE,SE) 24
  • 27. Multigrid paralela en 2D • Multigrid en 2D necesita computar con los vecinos más próximos (hasta 8) en cada nivel de la grilla • Empieza con una grilla de n=2m+1 x 2m+1 (aquí m=5) • Se usa una malla de procesadores de s x s (aquí s=4) 27
  • 28. Modelo de performance del Multigrid 2D paralelo (ciclo V) • Asumir grilla de 2m+1 x 2m+1 puntos, n= 2m-1, N=n2 • Asumir p = 4k procesadores, en una malla de 2k x 2k • Procesadores comienzan con una sub grilla de 2m-k x 2m-k variables • Considerar que el Ciclo V empieza en el nivel m • En los niveles del m al k del ciclo V, cada procesador trabaja. • En los noveles k-1 al 1, algunos procesadores están ociosos, por que una malla de 2k-1 x 2k-1 variables (o menos) no puede ocupar cada procesador • Costo de un nivel en el ciclo V • If nivel j >= k, then costo = O(4j-k ) …. Flops, proporcional al número de puntos/procesador + O( 1 ) α …. Envía un número constante de mensajes a los procs. vecinos + O( 2j-k) β …. Número de words (doubles o floats) enviados • If nivel j < k, then costo = O(1) …. Flops, proporcional al número de puntos/procesador + O(1) α …. Envía un número constante de mensajes a los procs. vecinos + O(1) β .… Número de words enviados • Sume para todos los niveles 1,2,… y todos los ciclos V en FMG!!! 28
  • 29. Comparición de Métodos (en O(.)) # Flops # Mensajes # Words enviadas MG N/p + (log N)2 (N/p)1/2 + log p * log N log p * log N FFT N log N / p p1/2 N/p SOR N3/2 /p N1/2 N/p • SOR es más lento en todo • Flops para el MG y FFT dependen de la precisión del MG • MG comunica menos data (ancho de banda) • El total de mensajes (latencia) depende … • Este análisis simplista no nos dice si MG o FFT es mejor cuando α >> β 29
  • 30. Consideraciones prácticas • En la práctica, no tenemos que iterar hasta P(1) • En programa secuencial, las grillas más burdas son rápidas, pero en un prog.paralelo no. • Considere 1000 puntos por procesador • En 2D, las vars. a comunicar es 4xsqrt(1000) ~= 128, o 13% • En 3D, sería 1000-83 ~= 500, o 50% • Ver Tuminaro y Womble, SIAM J. Sci. Comp., v14, n5, 1993 para el análisis de MG en nCUBE2 de 1024 procs. • En grilla 64x64 vars., solo 4 por procesador • eficiencia de 1 ciclo V fue 0.02, y en FMG 0.008 • En grilla 1024x1024 • eficiencias fueron 0.7 (MG ciclo V) y 0.42 (FMG) • Aunque su eficiencia paralela es peor, FMG es 2.6 veces más rápido que sólo los ciclos V • nCUBE tenía comunicación rápida, procesadores lentos 30
  • 31. Multigrid en un Mesh adaptativo • Para problemas con un rango dinámico muy grande, se necesita otro nivel de refinamiento • Se construye un mesh adaptativo y se resuelve el multigrid (típicamente) en cada nivel • No se puede costear el uso de mesh fino en todo el problema 31
  • 32. Aplicaciones multibloque • Resolver el sistema de ecuaciones en una unión de rectángulos • subproblema de AMR • Ej: 32
  • 33. Refinando el Mesh Adaptativo (AMR) • Usar estructuras de datos en el AMR • El paralelismo usual es asignar grillas en cada nivel a los procesadores • Balance de carga es problemático 33
  • 34. Soporte para AMR • Dominios en ciertos sistemas (Titanium, etc.) diseñados para este problema • Librerías: Kelp, Boxlib, y AMR++ • Primitivas para ayudar con los updates en las fronteras entre procesadores, etc. 34
  • 35. Multigrid en un Mesh no estructurado • Otro enfoque para manejar trabajos variables es usar un mesh no estructurado que se refina más en las áreas de interes • Rectangular adaptivo o no estructurado? • Fórmulas más simples en el rectangular • Supuestamente más fácil de implementar (arrays) pero las fronteras tienden Hasta 39M variables en 960 procesadores, a dominar el código. Con 50% eficiencia (Fuente: M. Adams) 35
  • 36. Multigrid en una Mesh no estructurada • Se necesita particionar el gráfico para paralelizar • Recordar: Cuál es el propósito del Multigrid? • Debe poderse crear grillas burdas (problema “duro”) • No se puede “saltearse los puntos uno si otro no” como antes • Usar de nuevo “maximal independent sets” • Como hacer que un grafo burdo aproxime bien al fino??? • Se debe redefinir R<> y In<> • Cómo convertir de grilla burda a fina y viceversa? • Definir S<> • Cómo se computa la matriz? (fórmulas varían) • Procesar meshes burdas eficientemente • Sería mejor limitarse a usar pocos procesadores en meshes burdas? • Debería cambiarse el “solver” en meshes burdas? 36
  • 37. Fuente de Mesh no estructurada (elem.finito): Vertebra Fuente: M. Adams, H. Bayraktar, T. Keaveny, P. Papadopoulos, A. Gupta 37
  • 38. Multigrid para análisis elástico no lineal de hueso Test mecánico de Fuente: M. Adams et al propiedades del material Imagen 3d µFE mesh 2.5 mm3 elementos 44 µm Tomografía por Hasta computadora @ 537M variables resolución 22 µm 4088 Procesadores (ASCI White) 70% eficiencia en paralelo 38