使用 MPI 和 Armadillo 在 C++ 中进行并行化

Posted

技术标签:

【中文标题】使用 MPI 和 Armadillo 在 C++ 中进行并行化【英文标题】:Parallelization in C++ using MPI and Armadillo 【发布时间】:2016-01-15 04:52:45 【问题描述】:

这是我的问题:openBLAS/LAPACK 库(在 Armadillo 库下)是否能够利用 MPI 框架下的并行性?

我担心的是,在使用mpirun -np 1 executable 运行程序时,由于我特别要求操作系统仅使用一个处理器运行我的程序,我认为 openBLAS/LAPACK 将仅使用一个处理器而不是其他处理器来相乘/相加向量/矩阵闲坐。我是否限制 openBlas/LAPACK 通过-np 1 在不同处理器上执行多个线程?在通过-np 1?选择的一个处理器上使用不同的内核怎么样?

【问题讨论】:

【参考方案1】:

没有。 OpenBLAS 仅支持线程。 LAPACK 也一样。

ScaLAPACK 支持利用 MPI 的类似 LAPACK 的功能。

您可以在此站点上找到有关并行线性代数软件的其他问题以获取更多详细信息。

【讨论】:

以上是关于使用 MPI 和 Armadillo 在 C++ 中进行并行化的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X 上安装 C++ Armadillo 库

使用 Armadillo C++ 加载稀疏矩阵

在 Linux 中快速制作 Armadillo C++ 库 - Ubuntu

C# 中的 C++ Armadillo 代码 [关闭]

尝试使用 Armadillo 库运行示例时出现 Xcode C++ 链接器错误

如何在 C++ 中使用 MPI 同步和排序打印(任务)