Có bất kỳ gói ma trận thưa số học bốn nhân đôi?


10

Tôi đang làm việc trên một số hệ phương trình tuyến tính thưa thớt lớn điều hòa. Tôi muốn sử dụng số học hai lần hoặc số học gấp đôi để giải quyết chúng. Tôi biết rằng có một gói có tên MPACK được phát triển bởi Nakata, Maho, có thể thực hiện các phép tính đại số tuyến tính theo số học bốn nhân đôi. Tuy nhiên, nó được thiết kế cho ma trận dày đặc, không phải ma trận thưa thớt. Bạn có biết liệu có bất kỳ gói ma trận thưa số học bốn nhân đôi nào không?


Bạn đang làm việc với loại ma trận nào? Là đối xứng, Hermiti, xác định tích cực? Bạn có muốn làm một LU thưa thớt, hoặc sử dụng các phương pháp lặp không?
Victor Liu

Câu trả lời:


3

Kể từ phiên bản 3.2 , PETSc hỗ trợ tính toán độ chính xác tứ giác thưa thớt trên gcc / gfortran 4.6 và mới hơn.

Bạn sẽ cần một BLAS và LAPACK bốn độ chính xác, mà PETSc có thể cung cấp cho bạn (cùng với hỗ trợ quad) với lệnh cấu hình (một phần) sau:

./configure --with-precision=__float128 --download-f2cblaslapack

Xem FAQ để biết thêm thông tin.

Ngoài ra, tôi đồng ý với nOOb , nếu có thể, hãy cố gắng thường xuyên hóa hệ thống trước khi chuyển sang độ chính xác bốn.


1
Đây là độ chính xác gấp bốn (thực 128 bit), không phải gấp bốn lần (thực 256 bit). Điều đó nói rằng, độ chính xác quad thường rất nhiều để hiểu các vấn đề ổn định gặp phải với độ chính xác gấp đôi và thông thường bạn muốn mở rộng hệ thống và rời rạc để độ chính xác kép là đủ cho sản xuất.
Jed Brown

2

Các hệ thống điều hòa không khí được giải quyết tốt hơn bằng cách chính quy hơn là tăng độ chính xác bằng số. Tìm kiếm "chính quy hóa sai" để biết chi tiết về tin đồn.


2

Tôi có thể thử thư viện Trilinos. Họ có các thư viện ma trận thưa thớt theo Tpetra (được cho là thay thế Epetra, thư viện ma trận thưa thớt ban đầu của họ). Bạn có thể tạo mẫu gấp đôi, phức tạp, quad, v.v. và chúng có thể có nhiều lựa chọn bộ giải nhất (cả trực tiếp và lặp) bên cạnh PETSc.

Chỉnh sửa: sau khi đọc các bình luận, tính hữu dụng ngay lập tức của Tpetra dường như là một chút nghi vấn chính xác ...


Phần lớn người giải quyết chưa làm việc với Tpetra, thật không may :-(
Wolfgang Bangerth

Thật không may. Tôi đã hy vọng nhưng không chắc chắn về sự phát triển của Tpetra đã đi được bao xa (do đó "được cho là sẽ thay thế Epetra": P). Tôi nghĩ rằng ít nhất thư viện Belos (tức là người giải Trilinos không dựa trên trình bao bọc xung quanh mã của bên thứ ba) đã hỗ trợ Tpetra?
Jesse Chan

Tôi nghĩ rằng có Belos2. Chắc chắn, dự án Trilinos đang đặt tài nguyên của họ đằng sau Tpetra và nó sẽ là gói tiêu chuẩn trong tương lai. Tôi nghĩ rằng họ chưa hoàn toàn ở đó.
Wolfgang Bangerth

Tôi không biết thậm chí còn __float128được Tpetra hỗ trợ, chứ đừng nói là gấp đôi. Tpetra không độc lập và không phải tất cả tiêu đề, và ngay cả khi nó là, những thứ như std::complexchỉ hoạt động với floatdouble.
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.