PETSc seyrek matris matematiği için LAPACK kütüphanelerini kullanıyor mu?


10

PETSc'yi harici bir BLAS / LAPACK kütüphanesi ile derlemek seyrek matrislerdeki performansı önemli ölçüde etkiler mi, yoksa sadece bu kütüphaneleri yoğun matris matematiği için mi kullanır?


Ön koşullandırma için LU kullanabilirsiniz.
stali

Yanıtlar:


10

PETSc, birkaç vektör ilkesi için BLAS kullanır, ancak bunlar genellikle bellek bant genişliği ile sınırlıdır ve "optimizasyon" da çok fazla farklılık yoktur, bu nedenle çok fazla performans farkı yaratmaz.

Ayrıca Lapack'i Lanczos veya Arnoldi özdeğer ve tekil değer tahminleri gibi bazı analizler için kullanır, ancak bunlar genellikle performansa duyarlı değildir.

Yoğun "seviye 3" işlemleri genellikle yalnızca üçüncü taraf kitaplıklarından (örneğin, MUMPS, SuperLU, UMFPACK) seyrek doğrudan çözücüler kullanıldığında performansa duyarlı bir bağlamda görünür; bu durumda dolgu sonuçta yararlanabilecek kadar büyük sorunlara yol açar BLAS çağırıyor.

Büyük sorunlara uygulanan bu seyrek doğrudan çözücülere güveniyorsanız, ayarlanmış bir BLAS uygulaması ile oluşturmaya değer, aksi takdirde çok az fark yaratır.


Jed, PETSc dağıtılmış matrisler durumunda öz / tekil değerler tahmini için LAPACK'i nasıl kullanır? O zaman blok halinde rutin mi yoksa ScaLAPACK mi?
Alexander

Arnoldi yinelemesi, yineleme sayısına (30 veya 100 diyelim) eşit bir Hessenberg matrisi oluşturur. Hessenberg matrisinin öz veya tekil değerleri, LAPACK kullanılarak her işlemde fazladan hesaplanır. Bu, boyutlar küçük olduğundan ve veriler zaten yedekli olarak dağıtıldığından paralel olarak yapmaya çalışmaktan çok daha hızlıdır. Lanczos için benzer.
Jed Brown
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.