Apakah PETSc pernah menggunakan perpustakaan LAPACK untuk matematika matriks jarang?

10

Apakah kompilasi PETSc dengan perpustakaan BLAS / LAPACK eksternal secara signifikan mempengaruhi kinerja pada matriks jarang, atau apakah hanya menggunakan perpustakaan tersebut untuk matematika matriks padat?

Dan
sumber
Anda dapat menggunakan LU untuk prekondisi.
stali

Jawaban:

10

PETSc menggunakan BLAS untuk beberapa vektor primitif, tetapi ini umumnya dibatasi oleh bandwidth memori dan tidak ada banyak perbedaan dalam "optimasi", sehingga cenderung tidak membuat banyak perbedaan kinerja.

Ini juga menggunakan Lapack untuk beberapa analisis seperti Lanczos atau Arnoldi perkiraan nilai eigen dan nilai singular, tetapi ini umumnya tidak sensitif terhadap kinerja.

Operasi "level 3" yang padat umumnya hanya muncul dalam konteks yang peka terhadap kinerja ketika menggunakan solver langsung yang jarang dari perpustakaan pihak ketiga (mis. MUMPS, SuperLU, UMFPACK), di mana pengisian pada akhirnya mengarah ke masalah padat yang cukup besar untuk mendapat manfaat dari menelepon BLAS.

Jika Anda mengandalkan pemecah langsung yang jarang ini yang diterapkan pada masalah besar, maka ada baiknya membangun dengan implementasi BLAS yang disetel, jika tidak maka akan membuat perbedaan yang sangat kecil.

Jed Brown
sumber
Jed, bagaimana PETSc menggunakan LAPACK untuk estimasi nilai eigen / singular dalam kasus matriks terdistribusi? Apakah itu rutin rutin atau ScaLAPACK?
Alexander
Iterasi Arnoldi menghasilkan matriks Hessenberg dengan dimensi yang sama dengan jumlah iterasi (katakanlah 30 atau 100). Nilai eigen- atau singular dari matriks Hessenberg dihitung secara berlebihan pada setiap proses menggunakan LAPACK. Ini jauh lebih cepat daripada mencoba melakukannya secara paralel karena ukurannya kecil dan data sudah didistribusikan secara berlebihan. Mirip dengan Lanczos.
Jed Brown