0

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

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

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

到目前为止我的发现:MTL4 - Matrix Template library 4 似乎完成了上述所有工作,但是开源版只能在一个内核上运行,而超级计算版的成本相当高。

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

犰狳 - 以上所有吗?

我将不胜感激任何见解和建议

亲切的问候,

玛丽亚

4

1 回答 1

0

根据您的矩阵问题,Trilinos 的Tpetra 包可能值得一看。它以标量类型为模板,因此您可以使用多种精度类型。它针对超级计算机上的大规模应用程序,因此可以期待良好的并行性能。

希望能帮助到你!

编辑:它是免费的!

于 2013-01-21T14:52:53.740 回答