stringtranslate.com

Parareal

Parareal es un algoritmo paralelo de análisis numérico y utilizado para la solución de problemas de valores iniciales . [1] Fue introducido en 2001 por Lions , Maday y Turinici. Desde entonces, se ha convertido en uno de los métodos de integración en tiempo paralelo más estudiados. [ cita necesaria ]

Ilustración de la primera iteración en Parareal (adaptada de la versión original [2] ).

Métodos de integración en tiempo paralelo

A diferencia de, por ejemplo, Runge-Kutta o los métodos de múltiples pasos , algunos de los cálculos en Parareal se pueden realizar en paralelo y, por lo tanto, Parareal es un ejemplo de un método de integración en paralelo en el tiempo. Si bien históricamente la mayoría de los esfuerzos para paralelizar la solución numérica de ecuaciones diferenciales parciales se centraron en la discretización espacial, en vista de los desafíos de la computación a exaescala , los métodos paralelos para la discretización temporal se han identificado como una posible forma de aumentar la concurrencia en el software numérico . [3] Debido a que Parareal calcula la solución numérica para múltiples pasos de tiempo en paralelo, se clasifica como un método paralelo entre pasos . [4] Esto contrasta con los enfoques que utilizan el paralelismo en todo el método , como Runge-Kutta paralelo o métodos de extrapolación, donde las etapas independientes se pueden calcular en paralelo o en paralelo a través de los métodos del sistema, como la relajación de forma de onda. [5] [6]

Historia

Parareal se puede derivar como un método multicuadrícula en el tiempo o como disparos múltiples a lo largo del eje del tiempo. [7] Ambas ideas, la multicuadrícula en el tiempo y la adopción de disparos múltiples para la integración temporal, se remontan a las décadas de 1980 y 1990. [8] [9] Parareal es un método ampliamente estudiado y se ha utilizado y modificado para una variedad de aplicaciones diferentes. [10] Las ideas para paralelizar la solución de problemas de valores iniciales se remontan aún más atrás: el primer artículo que propone un método de integración paralelo en el tiempo apareció en 1964. [11]

Algoritmo

El problema

El objetivo es resolver un problema de valor inicial de la forma

Se supone que el lado derecho es una función suave (posiblemente no lineal). También puede corresponder a la discretización espacial de una ecuación diferencial parcial en un método de aproximación de líneas. Deseamos resolver este problema en una malla temporal de puntos igualmente espaciados , donde y . Realizando esta discretización obtenemos un intervalo de tiempo particionado formado por intervalos de tiempo para .

El objetivo es calcular aproximaciones numéricas a la solución exacta utilizando un método de pasos de tiempo en serie (por ejemplo, Runge-Kutta) que tiene una alta precisión numérica (y por lo tanto un alto costo computacional). Nos referimos a este método como el solucionador fino , que propaga un valor inicial en un momento a un valor terminal en un momento . El objetivo es calcular la solución (con alta precisión numérica) utilizando tal que obtengamos

El problema con esta solución (y la razón para intentar resolverla en paralelo en primer lugar) es que es computacionalmente inviable calcular en tiempo real.

Cómo funciona

En lugar de utilizar un único procesador para resolver el problema del valor inicial (como se hace con los métodos clásicos de paso de tiempo), Parareal utiliza procesadores. El objetivo es utilizar procesadores para resolver problemas de valor inicial más pequeños (uno en cada segmento de tiempo) en paralelo. Por ejemplo, en un código basado en MPI , sería el número de procesos, mientras que en un código basado en OpenMP , sería igual al número de subprocesos .

Parareal utiliza un segundo método de pasos de tiempo para resolver este problema de valor inicial en paralelo, denominado solucionador aproximado . El solucionador aproximado funciona de la misma manera que el solucionador fino, propagando un valor inicial durante un intervalo de tiempo de longitud , sin embargo, lo hace con una precisión numérica mucho menor que (y por lo tanto con un costo computacional mucho menor). Tener un solucionador aproximado que sea mucho menos costoso computacionalmente que el solucionador fino es la clave para lograr una aceleración paralela con Parareal.

De ahora en adelante, denotaremos la solución de Parareal en el tiempo y la iteración como .

Iteración cero

En primer lugar, ejecute el solucionador aproximado en serie durante todo el intervalo de tiempo para calcular una estimación inicial aproximada de la solución:

Iteraciones posteriores

A continuación, ejecute el solucionador preciso en cada uno de los intervalos de tiempo, en paralelo, a partir de los valores de solución más actualizados:

Ahora actualice los valores de la solución parareal secuencialmente usando el predictor-corrector:

En esta etapa, se puede utilizar un criterio de parada para determinar si los valores de la solución ya no cambian en cada iteración. Por ejemplo, se puede probar esto comprobando si

y algo de tolerancia . Si este criterio no se cumple, se pueden ejecutar iteraciones posteriores aplicando el solucionador fino en paralelo y luego el predictor-corrector. Sin embargo, una vez que se satisface el criterio, se dice que el algoritmo ha convergido en iteraciones. Tenga en cuenta que existen otros criterios de parada que se han probado con éxito en Parareal.

Observaciones

Parareal debería reproducir la solución que se obtiene mediante la aplicación en serie del solucionador fino y convergerá en un máximo de iteraciones. [7] Sin embargo, para que Parareal proporcione aceleración, tiene que converger en un número de iteraciones significativamente más pequeñas que el número de intervalos de tiempo, es decir .

En la iteración de Parareal, la evaluación computacionalmente costosa se puede realizar en paralelo en unidades de procesamiento. Por el contrario, la dependencia de significa que la corrección aproximada debe calcularse en orden serial.

Normalmente, se elige alguna forma de método de Runge-Kutta para el integrador grueso y fino, donde podría ser de orden inferior y utilizar un paso de tiempo mayor que . Si el problema del valor inicial surge de la discretización de una PDE, también se puede utilizar una discretización espacial más gruesa, pero esto puede afectar negativamente a la convergencia a menos que se utilice una interpolación de alto orden. [12]


Visualización del algoritmo de Parareal. El propagador grueso aquí está etiquetado mientras que el propagador fino está etiquetado .

Acelerar

Bajo algunos supuestos, se puede derivar un modelo teórico simple para la aceleración de Parareal. [13] Aunque en las aplicaciones estos supuestos pueden ser demasiado restrictivos, el modelo sigue siendo útil para ilustrar las ventajas y desventajas que implica obtener aceleración con Parareal.

Primero, supongamos que cada segmento de tiempo consta exactamente de pasos del integrador fino y pasos del integrador grueso. Esto incluye en particular la suposición de que todos los intervalos de tiempo tienen una longitud idéntica y que tanto el integrador grueso como el fino utilizan un tamaño de paso constante durante toda la simulación. En segundo lugar, denote por y el tiempo de cálculo requerido para un solo paso de los métodos fino y grueso, respectivamente, y suponga que ambos son constantes. Por lo general, esto no es exactamente cierto cuando se utiliza un método implícito , porque los tiempos de ejecución varían dependiendo del número de iteraciones requeridas por el solucionador iterativo .

Bajo estos dos supuestos, el tiempo de ejecución del método fino que se integra en intervalos de tiempo se puede modelar como

El tiempo de ejecución de Parareal usando unidades de procesamiento y realizando iteraciones es

La aceleración de Parareal entonces es

Estos dos límites ilustran la compensación que se debe hacer al elegir el método aproximado: por un lado, tiene que ser barato y/o utilizar un paso de tiempo mucho mayor para que el primer límite sea lo más grande posible; Por otro lado, el número de iteraciones debe mantenerse bajo para mantener grande el segundo límite. En particular, la eficiencia paralela de Parareal está limitada por

es decir, por la inversa del número de iteraciones requeridas.

Inestabilidad para valores propios imaginarios.

La versión básica de Parareal tiene problemas con valores propios imaginarios . [7] Por lo general, solo converge hacia las últimas iteraciones, es decir, a medida que se aproxima , y ​​la aceleración siempre será menor que uno. Entonces, o el número de iteraciones es pequeño y Parareal es inestable o, si es lo suficientemente grande como para que Parareal sea estable, no es posible acelerar. Esto también significa que Parareal suele ser inestable para ecuaciones hiperbólicas . [14] Aunque el análisis formal de Gander y Vandewalle cubre solo problemas lineales con coeficientes constantes, el problema también surge cuando Parareal se aplica a las ecuaciones no lineales de Navier-Stokes cuando el coeficiente de viscosidad se vuelve demasiado pequeño y el número de Reynolds demasiado grande. [15] Existen diferentes enfoques para estabilizar Parareal, [16] [17] [18] uno de los cuales es Parareal mejorado en el subespacio de Krylov.

Variantes

Existen múltiples algoritmos que se basan directamente o al menos están inspirados en el algoritmo original de Parareal.

El subespacio de Krylov mejoró Parareal

Desde el principio se reconoció que para problemas lineales la información generada por el método fino se puede utilizar para mejorar la precisión del método grueso . [17] Originalmente, la idea se formuló para el integrador de tiempo implícito paralelo PITA, [19] un método estrechamente relacionado con Parareal pero con pequeñas diferencias en cómo se realiza la corrección. En cada iteración, el resultado se calcula para los valores de . Con base en esta información, el subespacio

se define y actualiza después de cada iteración de Parareal. [20] Denotemos como la proyección ortogonal de a . Luego, reemplace el método aproximado con el integrador mejorado .

A medida que aumenta el número de iteraciones, el espacio crecerá y el propagador modificado será más preciso. Esto conducirá a una convergencia más rápida. Esta versión de Parareal también puede integrar de manera estable ecuaciones diferenciales parciales hiperbólicas lineales. [21] También existe una extensión a los problemas no lineales basados ​​en el método de base reducida. [18]

Correcciones espectrales diferidas híbridas de Parareal

M. Minion ha propuesto un método con eficiencia paralela mejorada basado en una combinación de Parareal con correcciones espectrales diferidas (SDC) [22] . [23] Limita la elección de integrador grueso y fino a SDC, sacrificando flexibilidad para mejorar la eficiencia paralela. En lugar del límite de , el límite de eficiencia paralela en el método híbrido se convierte en

siendo el número de iteraciones del método base SDC en serie y el número típicamente mayor de iteraciones del método híbrido paralelo. El híbrido Parareal-SDC se ha mejorado aún más mediante la adición de un esquema de aproximación completa como el que se utiliza en redes múltiples no lineales . Esto llevó al desarrollo del esquema paralelo de aproximación total en el espacio y el tiempo (PFASST). [24] El rendimiento de PFASST se ha estudiado para PEPC, un solucionador de partículas basado en código de árbol Barnes-Hut desarrollado en el Centro de Supercomputación Juelich . Las simulaciones que utilizaron los 262.144 núcleos del sistema JUGENE de IBM BlueGene /P mostraron que PFASST podría producir una aceleración adicional más allá de la saturación de la paralelización del árbol espacial. [25]

Reducción de tiempo multirred (MGRIT)

El método de reducción en el tiempo de múltiples redes (MGRIT) generaliza la interpretación de Parareal como un algoritmo de múltiples redes en el tiempo a múltiples niveles utilizando diferentes suavizadores. [26] Es un enfoque más general pero para una elección específica de parámetros es equivalente a Parareal. La biblioteca XBraid que implementa MGRIT está siendo desarrollada por el Laboratorio Nacional Lawrence Livermore .

ParaExp

ParaExp utiliza integradores exponenciales dentro de Parareal. [27] Si bien se limita a problemas lineales, puede producir una aceleración paralela casi óptima.

Referencias

  1. ^ Leones, Jacques-Louis; Señora, Yvon; Turinici, Gabriel (2015). [Leones maday "Una discretización" parareal "en el tiempo de las PDE"]. Cuentas Rendus de la Academia de Ciencias, Serie I. 332 (7): 661–668. Código Bib : 2001CRASM.332..661L. doi :10.1016/S0764-4442(00)01793-6. {{cite journal}}: Comprobar |url=valor ( ayuda )
  2. ^ Pentland, Kamran; Tamborrino, Massimiliano; Samaddar, Debasmita; Appel, Lynton (2022). "Estocástico parareal: una aplicación de métodos probabilísticos a la paralelización temporal" (PDF) . Revista SIAM de Computación Científica . 45 (3): S82-S102. doi :10.1137/21M1414231. S2CID  235485544.
  3. ^ Jack Dongarra; Jeffrey Hittinger; Juan Bell; Luis Chacón; Robert Falgout; Michael Heroux; Paul Hovland; Esmond Ng; Clayton Webster; Stefan Wild (marzo de 2014). Investigación en matemáticas aplicadas para computación a exaescala (PDF) (Reporte). Departamento de Energía de EE. UU . Consultado el 29 de agosto de 2015 .
  4. ^ Burrage, Kevin (1997). "Métodos paralelos para EDO". Avances en Matemática Computacional . 7 (1–2): 1–31. doi :10.1023/A:1018997130884. S2CID  15778447.
  5. ^ Iserles, A.; NøRSETT, SP (1 de octubre de 1990). "Sobre la teoría de Runge paralelo: métodos de Kutta". Revista IMA de Análisis Numérico . 10 (4): 463–488. doi :10.1093/imanum/10.4.463. ISSN  0272-4979.
  6. ^ Ketcheson, David; Waheed, Umair bin (13 de junio de 2014). "Una comparación de métodos explícitos de Runge-Kutta, extrapolación y corrección diferida de alto orden en serie y en paralelo". Comunicaciones en Matemática Aplicada y Ciencias Computacionales . 9 (2): 175-200. arXiv : 1305.6165 . doi :10.2140/camcos.2014.9.175. ISSN  2157-5452. S2CID  15242644.
  7. ^ abc Gander, Martín J.; Vandewalle, Stefan (2007). "Análisis del método de integración de tiempo paralelo-tiempo paralelo". Revista SIAM de Computación Científica . 29 (2): 556–578. CiteSeerX 10.1.1.154.6042 . doi :10.1137/05064607X. 
  8. ^ Hackbusch, Wolfgang (1985). Métodos parabólicos multi-red. págs. 189-197. ISBN 9780444875976. Consultado el 29 de agosto de 2015 . {{cite book}}: |journal=ignorado ( ayuda )
  9. ^ Kiehl, Martín (1994). "Disparos múltiples paralelos para la solución de problemas de valor inicial". Computación paralela . 20 (3): 275–295. doi :10.1016/S0167-8191(06)80013-X.
  10. ^ Gander, Martín J. (2015). 50 años de Integración del Tiempo Paralelo . Aportes en Ciencias Matemáticas y Computacionales. vol. 9 (1 ed.). Publicaciones internacionales Springer. doi : 10.1007/978-3-319-23321-5 . ISBN 978-3-319-23321-5.
  11. ^ Nievergelt, Jürg (1964). "Métodos paralelos para integrar ecuaciones diferenciales ordinarias". Comunicaciones de la ACM . 7 (12): 731–733. doi : 10.1145/355588.365137 . S2CID  6361754.
  12. ^ Ruprecht, Daniel (1 de diciembre de 2014). "Convergencia de Parareal con engrosamiento espacial" (PDF) . Actas en Matemática y Mecánica Aplicadas . 14 (1): 1031–1034. doi :10.1002/pamm.201410490. ISSN  1617-7061. S2CID  26356904.
  13. ^ Minion, Michael L. (2010). "Un método híbrido de correcciones diferidas espectrales pararales". Comunicaciones en Matemática Aplicada y Ciencias Computacionales . 5 (2): 265–301. doi : 10.2140/camcos.2010.5.265 .
  14. ^ Personal, Gunnar Andreas; Rønquist, Einar M. (1 de enero de 2005). Barth, Timothy J.; Griebel, Michael; Keyes, David E.; Nieminen, Risto M.; Roose, Dirk; Schlick, Tamar; Kornhuber, Ralf; Hoppe, Ronald; Périaux, Jacques (eds.). Estabilidad del Algoritmo Parareal . Apuntes de conferencias sobre ingeniería y ciencias computacionales. Springer Berlín Heidelberg. págs. 449–456. doi :10.1007/3-540-26825-1_46. ISBN 9783540225232.
  15. ^ Steiner, Johannes; Ruprecht, Daniel; Mota, Robert; Krause, Rolf (1 de enero de 2015). "Convergencia de Parareal para las ecuaciones de Navier-Stokes en función del número de Reynolds". En Abdulle, Asir; Deparis, Simone; Kressner, Daniel; Noble, Fabio; Picasso, Marco (eds.). Matemática Numérica y Aplicaciones Avanzadas - ENUMATH 2013 . Apuntes de conferencias sobre ingeniería y ciencias computacionales. vol. 103. Publicaciones internacionales Springer. págs. 195-202. CiteSeerX 10.1.1.764.6242 . doi :10.1007/978-3-319-10705-9_19. ISBN  9783319107042.
  16. ^ Dai, X.; Maday, Y. (1 de enero de 2013). "Método parareal estable en el tiempo para sistemas hiperbólicos de primer y segundo orden". Revista SIAM de Computación Científica . 35 (1): A52-A78. arXiv : 1201.1064 . Código Bib : 2013SJSC...35A..52D. doi :10.1137/110861002. ISSN  1064-8275. S2CID  32336370.
  17. ^ ab Farhat, Charbel; Cortial, Julien; Dastillung, Climène; Bavestrello, Henri (30 de julio de 2006). "Integradores implícitos en tiempo paralelo para la predicción casi en tiempo real de respuestas dinámicas estructurales lineales". Revista internacional de métodos numéricos en ingeniería . 67 (5): 697–724. Código Bib : 2006IJNME..67..697F. doi :10.1002/nme.1653. ISSN  1097-0207. S2CID  121254646.
  18. ^ ab Chen, Feng; Hesthaven, enero S.; Zhu, Xueyu (1 de enero de 2014). "Sobre el uso de métodos de base reducida para acelerar y estabilizar el método parareal". En Quarteroni, Alfio ; Rozza, Gianluigi (eds.). Métodos de orden reducido para modelado y reducción computacional. MS&A - Modelado, Simulación y Aplicaciones. Publicaciones internacionales Springer. págs. 187-214. doi :10.1007/978-3-319-02090-7_7. ISBN 9783319020891.
  19. ^ Farhat, Charbel; Chandesris, Marion (7 de noviembre de 2003). "Integradores de tiempo paralelos descompuestos en el tiempo: teoría y estudios de viabilidad para aplicaciones de fluidos, estructuras y fluido-estructura". Revista internacional de métodos numéricos en ingeniería . 58 (9): 1397-1434. Código bibliográfico : 2003IJNME..58.1397F. doi :10.1002/nme.860. ISSN  1097-0207. S2CID  61667246.
  20. ^ Gander, M.; Petcu, M. (2008). "Análisis de un algoritmo parareal mejorado en el subespacio de Krylov para problemas lineales". ESAIM: Actas . 25 : 114-129. doi : 10.1051/proc:082508 .
  21. ^ Ruprecht, D.; Krause, R. (30 de abril de 2012). "Integración explícita en paralelo en el tiempo de un sistema lineal de advección acústica". Computadoras y fluidos . 59 : 72–83. arXiv : 1510.02237 . doi :10.1016/j.compfluid.2012.02.015. S2CID  15703896.
  22. ^ Dutt, Alok; Greengard, Leslie; Rokhlin, Vladimir (1 de junio de 2000). "Métodos de corrección espectral diferida para ecuaciones diferenciales ordinarias". BIT Matemáticas Numéricas . 40 (2): 241–266. doi :10.1023/A:1022338906936. ISSN  0006-3835. S2CID  43449672.
  23. ^ Minion, Michael (5 de enero de 2011). "Un método híbrido de correcciones diferidas espectrales parareales". Comunicaciones en Matemática Aplicada y Ciencias Computacionales . 5 (2): 265–301. doi : 10.2140/camcos.2010.5.265 . ISSN  2157-5452.
  24. ^ Emmett, Mateo; Minion, Michael (28 de marzo de 2012). "Hacia un método eficiente de paralelo en el tiempo para ecuaciones diferenciales parciales". Comunicaciones en Matemática Aplicada y Ciencias Computacionales . 7 (1): 105-132. doi : 10.2140/camcos.2012.7.105 . ISSN  2157-5452.
  25. ^ Mota, R.; Ruprecht, D.; Krause, R.; Emmet, M.; Minion, M.; Winkel, M.; Gibbon, P. (1 de noviembre de 2012). "Un solucionador masivo de N cuerpos paralelos en el espacio-tiempo". Conferencia internacional de 2012 sobre informática, redes, almacenamiento y análisis de alto rendimiento . págs. 1–11. doi :10.1109/SC.2012.6. ISBN 978-1-4673-0805-2. S2CID  1620219.
  26. ^ Falgout, R.; Friedhoff, S.; Kolev, T.; MacLachlan, S.; Schroder, J. (1 de enero de 2014). "Integración en tiempo paralelo con Multigrid". Revista SIAM de Computación Científica . 36 (6): C635-C661. Código Bib : 2014SJSC...36C.635F. CiteSeerX 10.1.1.701.2603 . doi :10.1137/130944230. ISSN  1064-8275. 
  27. ^ Gander, M.; Güttel, S. (1 de enero de 2013). "PARAEXP: un integrador paralelo para problemas lineales de valores iniciales". Revista SIAM de Computación Científica . 35 (2): C123-C142. Código Bib : 2013SJSC...35C.123G. CiteSeerX 10.1.1.800.5938 . doi :10.1137/110856137. ISSN  1064-8275. 

enlaces externos