precondizionare un metodo krylov con un altro metodo krylov


13

In metodi come gmres o bicgstab potrebbe essere attraente usare un altro metodo krylov come precondizionatore. Dopotutto sono facili da implementare in modo privo di matrice e in un ambiente parallelo. Ad esempio, un coul usa alcune (diciamo ~ 5) iterazioni di bigcstab non condizionate come precondizionatore per gmres, o qualsiasi altra combinazione di metodi krylov. Non trovo molto riferimento a tale approccio nella letteratura, quindi mi aspetto che ciò sia dovuto al fatto che non è molto efficace. Vorrei capire perché non è efficiente. Ci sono casi in cui è una buona scelta?

Nella mia ricerca sono interessato alla soluzione di problemi ellittici 3d in un ambiente parallelo (mpi).


3
I metodi dello spazio di Krylov non sono lineari. Pertanto, non possono essere utilizzati come precondizionatori in un metodo che prevede un operatore lineare. Potresti usarlo in FGMRES. Ma non vedo perché dovrebbero migliorare lo spettro
Guido Kanschat,

Risposte:


14

Interessante che questa domanda sia arrivata ieri, dal momento che ieri ho appena completato un'implementazione che lo fa.

Il mio background

Solo per iniziare, fammi sapere che mentre il mio background formativo è di informatica scientifica, tutto il lavoro che ho svolto dopo la laurea, incluso il mio attuale dottorato di ricerca. lavoro, è stato in elettromagnetismo computazionale. Quindi, immagino che i nostri background siano in qualche modo simili, dal momento che sembra che tu stia guardando la fisica (in base al tuo profilo).

FGMRES

Prima di tutto, quello che stai cercando, come ha già menzionato Guido Kanschat in un commento, si chiama Flexible GMRES o FGMRES. Il riferimento, incluso lo pseudocodice, è in [1]. Mentre a volte trovo che i documenti numerici SIAM siano un po 'difficili da leggere, [1] (e la maggior parte degli altri lavori di Saad, incluso il brillante [B1], apparentemente legalmente disponibile gratuitamente online) è diverso; l'articolo è una lettura affascinante, scritta in modo molto chiaro e con alcuni esempi e suggerimenti utili per le applicazioni.

FGMRES è facile da implementare, in particolare se si dispone già di un GMRES funzionante DESTRA funzionante. Nota qui la parola chiave DESTRA - se hai un GMRES precondizionato SINISTRA, ovvero sei abituato a risolvere MAx = Mb, devi apportare alcune modifiche. Confronta [B1, algoritmo 9.4 a pag. 282] a [B1, algoritmo 9.5, pag. 284]. È inoltre possibile trovare le FGMRES in [B1, algoritmo 9.6, pag. 287], ma ti incoraggio davvero a leggere [1] in quanto è breve, ben scritto e ha ancora molti dettagli interessanti.

Che cosa fa

FGMRES ti consente sostanzialmente di cambiare i precondizionatori per ogni iterazione, se lo desideri. Una delle applicazioni per questo è che puoi usare alcuni precondizionatori che funzionano molto bene quando sei lontano dalla soluzione, e poi passare a un altro quando ti avvicini. [2], che non ho letto in dettaglio, sembra discutere qualcosa di simile a questo.

Tuttavia, l'applicazione più interessante nel mio caso è stata che potresti usare un GMRES (precondizionato) come precondizionatore per le tue FGMRES. Questo è il motivo dietro il nome tipico di FGMRES, "GMRES interno-esterno". Qui, "esterno" si riferisce al solutore FGMRES, che (come precondizionatore) utilizza un solutore "interno".

Quindi, quanto è buono in pratica?

Nel mio caso, questo ha funzionato assolutamente brillante. Nel ciclo interno, "risolvo" una formulazione a complessità ridotta del mio problema. Di per sé, questa soluzione è troppo imprecisa per il nostro uso, ma funziona perfettamente come precondizionatore. Nota il "" intorno "risolvere" - non è necessario eseguire il risolutore interno alla convergenza, poiché stai cercando solo approssimazioni approssimative. Nel mio caso, sono passato dall'utilizzo di 151 iterazioni, ciascuna del costo di 64 secondi, a 72 iterazioni, ciascuna del costo di 79 secondi (ho usato 5 iterazioni fisse nel GMRES interno). Si tratta di un risparmio totale di un'ora, senza perdita di precisione e pochissimo lavoro di codifica poiché avevamo già un GMRES funzionante che abbiamo appena reso ricorsivo.

Per alcune applicazioni di questo materiale, a dimostrazione delle prestazioni potenziali, vedi [3] (che attualmente utilizza un FGMRES a tre livelli, quindi FGMRES, con FGMRES come interno, con GMRES come interno-interno) e [4], che potrebbe anche essere applicazione specifica per l'uso, ma contiene diversi casi di test interessanti.

Riferimenti

[1] Y. Saad, "Un algoritmo GMRES precondizionato flessibile interno-esterno", SIAM J. Sci. Comp., Vol. 14, n. 2, pagg. 461–469, marzo 1993. http://www-users.cs.umn.edu/~saad/PDF/umsi-91-279.pdf

[2] D.-Z. Ding, R.-S. Chen e Z. Fan, "Metodo GMRES flessibile interno-esterno precondizionato per analisi MLFMM di scattering di oggetti aperti", Progress In Electromagnetics Research, vol. 89, pagg. 339–357, 2009. http://www.jpier.org/PIER/pier89/22.08112601.pdf

[3] TF Eibert, "Alcuni risultati di scattering calcolati con tecniche di equazione integrale superficiale e ibrida agli elementi finiti limite-integrale, accelerati dal metodo multipolare veloce multipolo", IEEE Antennas and Propagation Magazine, vol. 49, n. 2, pagg. 61–69, 2007.

[4] Ö. Ergül, T. Malas e L. Gürel, "Soluzioni di problemi elettromagnetici su larga scala che utilizzano uno schema interno-esterno iterativo con algoritmi multipolari rapidi ordinari e approssimativi multilivello", Progress in Research Electromagnetics, vol. 106, pagg. 203–223, 2010. http://www.jpier.org/PIER/pier106/13.10061711.pdf

[B1] Y. Saad, Metodi iterativi per sistemi lineari sparsi. SIAM, 2003. http://www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf


8

Tale metodo subspaziale di Krylov nidificato può funzionare abbastanza bene in pratica. Può essere interessante per i sistemi lineari non simmetrici per i quali ristagni GMRES riavviati e GMRES non riavviati sono troppo costosi o usano troppa memoria. Qualche letteratura:

  1. GMRESR: una famiglia di metodi GMRES nidificati , van der Vorst, Vuik
  2. Metodi di subspazio Krylov interno-esterno flessibili , Simoncini, Szyld
  3. Un algoritmo GMRES precondizionato interno-esterno flessibile , Saad
  4. Altre esperienze con GMRESR , Vuik
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.