Paralleler Algorithmus für das Eigensystem einer tridiagonalen Matrix

11

Ich mache eine Lanczos-Diagonalisierung einer großen Matrix mit geringer Dichte (~ 2 Millionen Elemente). Fast alle Schritte im Lanzcos-Algorithmus werden parallel auf der GPU ausgeführt, mit Ausnahme der Diagonalisierung der Lanczos-Matrix, um die Konvergenz zu überprüfen. Dafür habe ich den TQLI-Algorithmus von Numerical Recipes verwendet. Gibt es Methoden, um das Eigensystem einer tridiagonalen Matrix zu finden, die parallel oder leicht parallelisierbar sind? Gibt es eine parallele Version von TQLI?

Zitronen
quelle

Antworten:

4

Ich schlage vor, eine Bibliothek wie SLEPc zu verwenden , die Schnittstellen zu vielen verschiedenen Methoden zum seriellen oder parallelen Lösen von Eigensystemen enthält. Das Benutzerhandbuch enthält Verweise auf verschiedene Methoden zur Lösung von Eigenwertproblemen.

Geoff Oxberry
quelle
Tatsächlich verwenden keine vorhandenen spärlichen Eigensolver eine parallele lineare Algebra für den Rayleigh-Quotienten. Ich habe diesen Sommer einen solchen Eigensolver geschrieben, aber er ist leider eine geschlossene Quelle.
Jack Poulson
9

TQL kann nicht parallelisiert werden.

Der Standard-Parallelalgorithmus ist der von Cuppen:

JJM Cuppen, Eine Divide and Conquer-Methode für das symmetrische tridiagonale Eigenproblem, 1980.
http://www.springerlink.com/content/t21365q2gh702714/

siehe auch:

F. Tisseur, Ein paralleler Divide and Conquer-Algorithmus für das symmetrische Eigenwertproblem auf verteilten Speicherarchitekturen, 1999
http://eprints.ma.man.ac.uk/981/01/covered/MIMS_ep2007_225.pdf

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.4109&rep=rep1&type=pdf

http://www14.in.tum.de/konferenzen/Jass09/courses/2/Kleine_Albers_paper.pdf

Arnold Neumaier
quelle
Die Arvo-Verbindung ist jetzt sehr traurig unterbrochen. :(
Geoffrey Irving
@GeoffreyIrving: Ich habe es durch ein funktionierendes ersetzt, obwohl es möglicherweise nicht für alle kostenlos ist. Und ich habe einen neuen Verweis auf ein Papier von Tisseur hinzugefügt.
Arnold Neumaier
3

Ich empfehle die Verwendung von Parallel Multiple Relativ Robust Representations (PMRRR) für die parallele tridiagonale Eigenlösung. Es kann alle Eigenpaare der tridiagonalen Matrix in parallel berechnen . Eine Übersicht über die Methode finden Sie hier . Es besteht auch die Umsetzung in Scalapack, die diskutiert wird hier .O(n2)

Jack Poulson
quelle