Esempi di calcoli PDE che utilizzano il parallelismo sia nello spazio che nel tempo


14

Nella soluzione numerica del PDE iniziale al valore limite, è molto comune impiegare il parallelismo nello spazio . È molto meno comune impiegare una qualche forma di parallelismo nella discretizzazione temporale e che il parallelismo è di solito molto più limitato. Sono a conoscenza di un numero crescente di codici e lavori pubblicati che dimostrano il parallelismo temporale, ma nessuno di questi include il parallelismo spaziale.

Esistono esempi di implementazioni che includono il parallelismo sia nello spazio che nel tempo? Sono interessato sia alle pubblicazioni che ai codici disponibili.


Ho appena trovato questa prestampa, che combina Parareal con la decomposizione del dominio spaziale per Navier-Stokes incomprimibile su processori 2048: icsweb.inf.unisi.ch/preprints/preprints/file201203.pdf
David Ketcheson

Risposte:


8

Gli algoritmi PFASST (Parallel Full Approximation Scheme in Space and Time) e PEPC (Pretty Efficient Parallel Coulomb) sono stati recentemente usati insieme per ottenere parallelismo sia nello spazio che nel tempo.

PFASST fa il parallelismo temporale, PEPC fa il parallelismo spaziale. I risultati sono stati recentemente presentati alla conferenza DD21 e abbiamo preparato una presentazione per SC12 che descrive la combinazione di PFASST + PEPC.

È stato mostrato che un "piccolo" problema costituito da 4 milioni di particelle (PEPC è un risolutore di corpi N parallelo) si è ridimensionato fino a 8192 core su JUGENE usando solo PEPC (cioè solo parallelo nello spazio). Oltre a ciò, i costi di comunicazione sono diventati significativi e l'efficienza parallela ha iniziato a ridursi. L'aggiunta di PFASST consente di eseguire questo problema di dimensioni fisse su 262.144 core (ovvero, abbiamo riempito JUGENE) utilizzando 32 processori "time" (ognuno dei quali consiste di 8192 core "spaziali").

Sebbene l'efficienza parallela degli algoritmi time-parallel non sia del 100%, siamo stati in grado di ottenere accelerazioni di circa 6,5x utilizzando 32 processori PFASST con questa configurazione PFASST + PEPC.

Ecco un collegamento a una prestampa: un risolutore di N-body parallelo spazio-tempo enormemente


Matt sembra abbastanza pulito, ti preghiamo di aggiornare con un link alla bozza quando sei pronto.
Aron Ahmadia,

Fantastico, proprio quello che stavo cercando. E bel lavoro, comunque.
David Ketcheson,

Grazie! Proverò a pubblicare un link al più presto. A proposito, ho anche usato con successo un DA PETSc per distribuire il dominio spaziale di un solutore per acque poco profonde all'interno di PyPFASST.
Matthew Emmett,

1
@AronAhmadia, aggiunto il link alla prestampa!
Matthew Emmett,

4

Esistono anche DG spazio-tempo e metodi Galerkin continui. Dopo aver scelto la quadratura, il DG spazio-tempo con una griglia strutturata nella direzione del tempo equivale a un metodo implicito di Runge-Kutta. Il metodo DG spazio-tempo, tuttavia, consente diverse dimensioni di gradino in diverse parti del dominio, un caso che è difficile da analizzare per i metodi RK impliciti. In questo contesto possono essere applicati anche metodi multigrid spazio-temporale.


Non capisco come sia parallelo al tempo. Puoi indicare un esempio o spiegare di più?
David Ketcheson,

Quando ingrandisci il dominio, puoi scomporre in più domini di una determinata dimensione. I metodi spazio-tempo aggiungono la dimensione temporale al dominio, aumentando così il parallelismo. Si noti che ci sono enormi vantaggi computazionali nel fare più cose correlate in una sola volta, quindi per ottenere le massime prestazioni con lastre temporali di dimensioni modeste, è possibile decomporre solo nello spazio e vettorializzare localmente nella dimensione temporale.
Jed Brown,

2

Dopo aver considerato il parallelo spazio-tempo, il sottodominio è spazio-tempo su più livelli temporali. Un metodo chiamato rilassamento della forma d'onda sfrutta i sottodomini spazio-tempo ma parallelizza solo nello spazio (nessuna partizione nella dimensione temporale). Quindi un cartesiano della partizione spaziale e della partizione temporale dà una sorta di parallelismo spazio-temporale. Puoi trovare un documento su tale metodo cartesiano qui . Come menzionato da Jed Brown nella sua risposta, il metodo spazio-temporale non solo fornisce un parallelismo più flessibile, ma anche adattamento alla discretizzazione. Su quest'ultimo argomento, puoi google works di Schwab, vedi anche il loro progetto . Per il lavoro che sfrutta sia il parallelismo che l'adattabilità, puoi guardare sulla homepage di R. Haynes .


1

Dai un'occhiata all'algoritmo Parareal e al suo lavoro correlato come correzione spettrale differita (una semplice ricerca su Google rivela un sacco di materiale). L'idea di base è quella di utilizzare una "mesh" grossolana nel tempo e fare un passo indietro nel tempo, ma poi ripassare su di essa ed eseguire correzioni su una scala temporale più fine. Sembra essere utilizzato principalmente nelle simulazioni di fluidi, ma sono nell'area dell'elettromagnetismo, quindi non posso davvero dire molto di più al riguardo. L'unica ragione che conosco è perché ho partecipato a un seminario sull'approccio di correzione differita e mi è sembrato molto interessante che qualsiasi tipo di parallelizzazione potesse essere fatto in tempo.


Conosco quelli, ma puoi indicare un caso in cui sono usati insieme al parallelismo spaziale?
David Ketcheson,

Per essere chiari, gli schemi di correzione differiti o differiti da soli non hanno nulla a che fare con gli schemi Parareal e / o Time-parallel.
Matthew Emmett,

1

Il metodo di scatto multiplo utilizzato nel controllo ottimale è progettato in modo tale che i sotto-problemi di ciascun intervallo di scatto possano essere risolti in parallelo. Non conosco documenti che associno questo al parallelismo spaziale (non ci sono molti problemi di controllo ottimale che sono stati risolti in passato in cui l'equazione è un PDE spaziale dipendente dal tempo) ma sarebbe ovvio come fare il parallelismo in sia spazio che tempo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.