Pat*_*rik 10 parallel-processing linear-algebra lapack
我正在开发一个需要进行重线性代数计算的程序.
现在我正在使用LAPACK/BLAS例程,但我需要利用我的机器(24核Xeon X5690).
我发现像pblas和scalapack这样的项目,但它们似乎都专注于分布式计算和使用MPI.
我没有可用的集群,所有计算都将在一台服务器上完成,并且使用MPI看起来像是一种过度杀伤力.
有人对此有任何建议吗?
Jon*_*rsi 10
正如@larsmans(比如说MKL)所提到的,你仍然使用LAPACK + BLAS接口,但你只是为你的平台找到一个经过调整的多线程版本.MKL很棒但价格昂贵.其他开源选项包括:
我也同意马克的评论; 根据您正在使用的LAPACK例程,MPI的分布式内存实际上可能比多线程更快.这不太可能是BLAS例程的情况,但对于更复杂的事情(比如LAPACK中的特征值/向量例程),值得测试.虽然MPI函数调用确实是开销,但在分布式内存模式下执行操作意味着您不必担心错误共享,同步对共享变量的访问等.