Não estou ciente de nenhum artigo recente sobre a visão geral, mas estou envolvido ativamente no desenvolvimento do algoritmo PFASST, para poder compartilhar algumas idéias.
Existem três classes amplas de técnicas paralelas ao tempo que eu conheço:
- através do método - estágios independentes de RK ou integradores de extrapolação podem ser avaliados em paralelo; veja também o RIDC (algoritmo de correção diferida integral revisionista)
- através do problema - relaxamento da forma de onda
- no domínio do tempo - Parareal; PITA (algoritmo paralelo no tempo); e PFASST (esquema paralelo de aproximação total no espaço e no tempo).
Os métodos paralelos ao método geralmente executam muito perto das especificações, mas não são dimensionados além de um punhado de processadores (de tempo). Normalmente, eles são relativamente mais fáceis de implementar do que outros métodos e são bons se você tiver alguns núcleos extras por aí e estiver procurando acelerações previsíveis e modestas.
Os métodos que se paralelizam no domínio do tempo incluem Parareal, PITA, PFASST. Esses métodos são todos iterativos e compreendem propagadores "grossos" baratos (mas imprecisos) e propagadores "finos" caros (mas precisos). Eles alcançam eficiência paralela avaliando iterativamente o propagador fino em paralelo para melhorar uma solução serial obtida usando o propagador grosso.
EE< 1 / KK
Muitos jogos podem ser jogados com todos esses métodos para tentar acelerá-los, e parece que o desempenho dessas técnicas em todo o domínio depende de qual problema você está resolvendo e de quais técnicas estão disponíveis para acelerar o uso grosseiro. propagador (grades grosseiras, operadores grosseiros, física grosseira etc.).
Algumas referências (veja também as referências listadas nos documentos):
Escrevi duas implementações do PFASST disponíveis na net: PyPFASST e libpfasst .