布拉斯特区+多个精度+ MPI

BLAS+Multiple Precision+MPI

本文关键字:精度 MPI 特区 布拉斯      更新时间:2023-10-16

我正在用c++为我的数学博士学位写一个科学应用程序,它是基于一些繁重的线性代数,主要是BLAS 3级例程。所用矩阵的大小变化很大,理想情况下,我希望能够处理10000阶或更高阶的非常大的矩阵。到目前为止,我已经使用了英特尔MKL,多线程,很好地扩展到8核。我的算法产生正确的结果,但是在双精度算法中,由于采用高功率导致的累积误差,因此非常不稳定。此外,由于我可以访问大型超级计算机集群,并且我的算法可以轻松地跨多个节点扩展,因此我希望使用MPI来跨数百个节点扩展应用程序。

我的目标是找到一个模板化的BLAS库:

支持多精度算术,支持多线程,支持MPI

我到目前为止的发现:MTL4 -矩阵模板库4似乎完成了上述所有功能,但是开放源代码版只能在一个核心上运行,而且超级计算版相当昂贵。

Eigen -似乎不支持多核?如果与MKL连接,它是否支持多核和MPI ?

犰狳-做以上所有?

我将非常感谢任何见解和建议

亲切的问候,玛丽亚

根据您的矩阵问题,Trilinos的Tpetra包可能值得一看。它是在标量类型上模板化的,因此可以使用多个精度类型。它的目标是超级计算机上的大规模应用,因此人们可以期待良好的并行性能。

希望有帮助!

编辑:而且是免费的!