Ich weiß, dass es viele Informationen zu diesem Thema gibt, aber ich habe Mühe, die beste Lösung für mein spezifisches Problem zu finden.Benötigen Sie Hilfe zum Lösen spärlicher Axe = b
Für mein Problem ist A extrem groß (~ 145k x 145k) und extrem spärlich (maximal 9 von Null verschiedene Werte pro Zeile). Es ist nicht positiv definit, noch symmetrisch und ist komplex bewertet (einfache Genauigkeit). Das Sparsity-Muster kann visualisiert werden, indem man sich eine tridiagonale Matrix vorstellt und dann zwei "Tridiagonale" über und unter dem N-Abstand von der Haupttridiagonale hinzufügt. Dies ergibt 3 Sätze von 3 Nicht-Nullen in jeder Reihe mit Mengen von 3, getrennt durch N (N ist für eine gegebene Matrix A konstant) und zentriert auf der Hauptdiagonalen. ~ 5% der Zeilen füllen aufgrund von Randbedingungen nicht alle 9 Nicht-Null-Positionen, daher haben diese Zeilen eine Untermenge des Hauptmusters ungleich Null.
Ich muss für mehrere rechte Seiten (~ 1024) lösen. Ich muss auch das gleiche System mit verschiedenen numerischen Werten in A lösen, aber das gleiche Sparsity-Muster. Zur Zeit verwende ich SuperLU (single threaded), um A zu LU zu faktorisieren und dann mit cusparse zu lösen (speziell cusparseCcsrsm_solve).
Ist ein spärlicher direkter Löser mit LU-Faktorisierung der beste Ansatz für mein Problem? Welche Bibliothek wäre die schnellste für die LU-Faktorisierung? Welches wäre am schnellsten für die Lösung mit Rückersatz?
Versuchen Sie, die Frage weiter zu kondensieren; Es ist unklar, was du eigentlich fragst. – AlBlue