Come si può parallelizzare un metodo multigrid per risolvere un sistema lineare di equazioni?


11

A quanto ho capito, il metodo multigrid risolve un sistema lineare risolvendo una versione più grossolana dello stesso problema (eliminando l'errore di bassa frequenza) e quindi proiettando di nuovo sulla griglia fine per appianare gli errori di alta frequenza. Per i sistemi di grandi dimensioni, posso vedere come un metodo iterativo può essere implementato in parallelo ad ogni livello di griglia. Questo approccio si adatta bene in parallelo? C'è qualche altra fonte di concorrenza nell'algoritmo che si può sfruttare in parallelo?

Risposte:


14

Il multigrid geometrico parallelo è semplice da implementare su griglie strutturate. Il multigrid algebrico e non strutturato è più tecnico, vedi questa risposta per i collegamenti alle implementazioni.

VlogcNNc2d3ddlog2logcN. Devo ancora vedere una dimostrazione sull'hardware reale in cui la maggiore concorrenza giustifica le costanti più povere e riduce la solidità dei metodi additivi.

O(N/P)

In pratica, le griglie grossolane raggiungono rapidamente il forte limite di scalabilità (oltre il quale l'aggiunta di più processi aumenta il tempo di esecuzione), quindi dovrebbero risiedere su comunicatori MPI sempre più piccoli. Ciò aggiunge una leggera complessità all'implementazione. Per i problemi in cui i livelli grossolani hanno troppa struttura per continuare a ingrossare, la risoluzione dei livelli grossolani può diventare un collo di bottiglia.

Per testare vari metodi multigrid paralleli, consiglio di utilizzare una libreria come PETSc che consente di eseguire molti algoritmi diversi con pochissimo codice utente.


Il collegamento Adams (2001) non funziona più. Credo che l'articolo che intendevi sia questo: ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1592790&tag=1 . "Un algoritmo Gauss-Seidel non strutturato a memoria distribuita per levigatrici multigrid" Fammi sapere se sbaglio.
nukeguy,
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.