No conozco ningún artículo de resumen reciente, pero participo activamente en el desarrollo del algoritmo PFASST, por lo que puedo compartir algunas ideas.
Hay tres clases amplias de técnicas paralelas en el tiempo que conozco:
- a través del método: se pueden evaluar en paralelo etapas independientes de RK o integradores de extrapolación; ver también el RIDC (algoritmo de corrección diferida integral revisionista)
- a través del problema: relajación de la forma de onda
- a través del dominio del tiempo - Parareal; PITA (algoritmo paralelo en el tiempo); y PFASST (esquema de aproximación completa paralela en espacio y tiempo).
Los métodos que se paralelizan a través del método generalmente funcionan muy cerca de las especificaciones pero no escalan más allá de un puñado de procesadores (de tiempo). Por lo general, son relativamente más fáciles de implementar que otros métodos y son buenos si tiene algunos núcleos adicionales y está buscando aceleraciones modestas y predecibles.
Los métodos que se paralelizan en el dominio del tiempo incluyen Parareal, PITA, PFASST. Todos estos métodos son iterativos y se componen de propagadores "gruesos" económicos (pero imprecisos) y propagadores "finos" caros (pero precisos). Alcanzan la eficiencia paralela evaluando iterativamente el propagador fino en paralelo para mejorar una solución en serie obtenida usando el propagador grueso.
Los algoritmos Parareal y PITA sufren de un límite superior bastante desafortunado en su eficiencia paralela : donde es el número de iteraciones requeridas para obtener la convergencia en todo el dominio. Por ejemplo, si su implementación de Parareal requirió 10 iteraciones para converger y está utilizando 100 procesadores (de tiempo), la mayor aceleración que podría esperar sería 10x. El algoritmo PFASST relaja este límite superior mediante la hibridación de las iteraciones paralelas en el tiempo con las iteraciones del método paso a paso Corrección espectral diferida e incorpora las correcciones del esquema de aproximación completa a una jerarquía de discretizaciones espacio / tiempo.E < 1 / K Kmimi< 1 / KK
Se pueden jugar muchos juegos con todos estos métodos para tratar de acelerarlos, y parece que el rendimiento de estas técnicas en todo el dominio depende de qué problema está resolviendo y qué técnicas están disponibles para acelerar lo burdo propagador (cuadrículas gruesas, operadores gruesos, física gruesa, etc.).
Algunas referencias (ver también referencias enumeradas en los documentos):
He escrito dos implementaciones de PFASST que están disponibles en la red: PyPFASST y libpfasst .