我正在用C++为我的数学PhD编写一个科学应用程序,它基于一些重线性代数,主要是BLAS level 3例程。所使用的矩阵的大小差别很大,理想情况下,我希望能够处理10000阶和更高阶的非常大的矩阵。到目前为止,我已经使用了Intel MKL,多线程,可以很好地扩展到8个内核。我的算法产生了正确的结果,但是在双精度算术中,由于高幂导致的累积误差,结果非常不稳定。此外,由于我可以访问大型超级计算机集群,并且我的算法可以轻松地跨多个节点进行扩展,因此我希望使用MPI来跨数百个节点扩展应用程序。
我的目标是找到一个模板化的BLAS库:
支持多精度运算,支持多线程,支持MPI
到目前为止,我的发现是: MTL4 - Matrix模板库4似乎做了以上所有的事情,然而开源版本将只在一个内核上运行,并且超级计算版本相当昂贵。
Eigen -似乎不支持多核?如果与MKL链接,它是否支持多核和MPI?
您的位置:我也知道>教育/科学>蚂蚁>做到以上所有事情了吗?
我将非常感谢您的见解和建议
致以亲切的问候,
玛丽亚
发布于 2013-01-21 22:52:54
根据您的矩阵问题,Tpetra package of Trilinos可能值得一看。它是在标量类型上模板化的,所以你可以使用多个精度类型。它的目标是超级计算机上的大规模应用程序,因此可以期待良好的并行性能。
希望它能帮上忙!
编辑:而且是免费的!
https://stackoverflow.com/questions/14440729
复制相似问题