Tôi đang viết một phần mềm cho phương trình vi phân từng phần hyperbol trong C++. Hầu như tất cả các ký hiệu là vector và ma trận. Trên hết, tôi cần bộ giải thuật đại số tuyến tính. Và có, kích thước của vectơ và ma trận có thể thay đổi đáng kể (từ 1000 đến kích cỡ có thể được giải quyết chỉ bằng tính toán bộ nhớ phân tán, ví dụ như cụm hoặc kiến trúc tương tự). Nếu tôi đã sống trong không tưởng, tôi đã có bộ giải mã tuyến tính có quy mô lớn cho các cụm, GPU và đa lõi.ublas so với thư viện mẫu ma trận (MTL4)
Khi suy nghĩ về cấu trúc dữ liệu cần đại diện cho các biến, tôi đã truy cập boost.ublas và MTL4. Cả hai thư viện đều tương thích với cấp độ 3, MTL4 thực hiện giải quyết thưa thớt và nhanh hơn nhiều so với ublas. Cả hai đều không thực hiện hỗ trợ cho các bộ xử lý đa lõi, chưa kể đến sự song song cho các tính toán bộ nhớ phân tán. Mặt khác, sự phát triển của MTL4 phụ thuộc vào nỗ lực duy nhất của 2 nhà phát triển (ít nhất là tôi hiểu), và tôi chắc chắn rằng có một lý do mà ublas đang ở trong thư viện tăng cường. Hơn nữa, thư viện mkl của intel bao gồm ví dụ về ràng buộc cấu trúc của chúng với ublas. Tôi muốn kết hợp dữ liệu và phần mềm của mình với cấu trúc dữ liệu sẽ được đá vững chắc, được phát triển và duy trì trong một khoảng thời gian dài.
Cuối cùng, câu hỏi. Kinh nghiệm của bạn với việc sử dụng ublas và/hoặc mtl4 là gì và bạn sẽ đề xuất điều gì?
thanx, mightydodol
than lớn cho câu trả lời ... – dodol
@mightydodol: bạn được hoan nghênh. Tôi đã thêm một liên kết đến một bài báo mà tôi đang tìm kiếm cả ngày. Bạn có thể thấy nó hấp dẫn. Ngoài ra sửa chữa một lỗi thực tế liên quan đến ScaLAPACK. – stephan
thanx để chỉ ra eigen. @stephan Vâng, giấy thật sự thú vị. Hầu như cùng một vấn đề như tôi. – dodol