关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
我正在开发一个需要进行大量线性代数计算的程序。
现在我使用 LAPACK/BLAS 例程,但我需要利用我的机器(24 核 Xeon X5690)。
我找到了像 这样的项目pblas 和 斯卡拉包 ,但他们似乎都专注于分布式计算和使用 MPI。
我没有可用的集群,所有计算都将在单个服务器上完成,使用 MPI 看起来有点矫枉过正。
有人对此有什么建议吗?
最佳答案
正如@larsmans (例如,MKL)所提到的,您仍然使用 LAPACK + BLAS 接口(interface),但您只需为您的平台找到一个经过调整的多线程版本。 MKL 很好,但是很贵。其他开源选项包括:
我也同意马克的评论;根据您使用的 LAPACK 例程,使用 MPI 的分布式内存实际上可能比多线程更快。 BLAS 例程不太可能出现这种情况,但是对于更复杂的事情(比如 LAPACK 中的特征值/向量例程),值得测试。虽然 MPI 函数调用确实是一种开销,但在分布式内存模式下执行操作意味着您不必担心错误共享、同步访问共享变量等。
关于parallel-processing - 多核系统的并行线性代数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10025866/