PETSc có bao giờ sử dụng các thư viện LAPACK cho toán học ma trận thưa thớt không?


10

Việc biên dịch PETSc với thư viện BLAS / LAPACK bên ngoài có ảnh hưởng đáng kể đến hiệu suất trên các ma trận thưa thớt không, hay nó chỉ sử dụng các thư viện đó cho toán học ma trận dày đặc?


Bạn có thể sử dụng LU cho điều kiện tiên quyết.
stali

Câu trả lời:


10

PETSc sử dụng BLAS cho một vài nguyên hàm vector, nhưng chúng thường bị giới hạn bởi băng thông bộ nhớ và không có nhiều sự khác biệt trong "tối ưu hóa", do đó nó có xu hướng không tạo ra nhiều khác biệt về hiệu năng.

Nó cũng sử dụng Lapack cho một số phân tích như ước tính của Lanczos hoặc Arnoldi về giá trị bản địa và giá trị số ít, nhưng chúng thường không nhạy cảm với hiệu suất.

Các hoạt động "cấp 3" dày đặc thường chỉ xuất hiện trong bối cảnh nhạy cảm về hiệu năng khi sử dụng các bộ giải trực tiếp thưa thớt từ các thư viện của bên thứ ba (ví dụ: MUMPS, SuperLU, UMFPACK), trong trường hợp đó, việc lấp đầy cuối cùng dẫn đến các vấn đề dày đặc đủ lớn để hưởng lợi từ gọi BLAS.

Nếu bạn dựa vào các bộ giải trực tiếp thưa thớt này được áp dụng cho các vấn đề lớn, thì đáng để xây dựng với triển khai BLAS được điều chỉnh, nếu không, nó sẽ tạo ra rất ít sự khác biệt.


Jed, làm thế nào để PETSc sử dụng LAPACK cho ước tính giá trị riêng / số ít trong trường hợp ma trận phân tán? Có phải sau đó là thói quen chặn thông minh hoặc ScaLAPACK?
Alexander

Lặp lại Arnoldi tạo ra ma trận Hessenberg có kích thước bằng số lần lặp (giả sử 30 hoặc 100). Các giá trị riêng hoặc số ít của ma trận Hessenberg được tính toán dự phòng trên mỗi quy trình bằng LAPACK. Điều này nhanh hơn nhiều so với việc cố gắng thực hiện song song vì kích thước nhỏ và dữ liệu đã được phân phối dự phòng. Tương tự đối với Lanczos.
Jed Brown
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.