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

标签 c++ parallel-processing mpi armadillo openblas

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

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

最佳答案

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

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

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

关于c++ - 使用 MPI 和 Armadillo 在 C++ 中进行并行化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804610/

相关文章:

c++ - 在 Linux 上分发 C++ 二进制文件

ant - 更改Ant <exec>任务的输出中的[exec]标签

c++ - 我可以在 MPI 并行代码中抛出异常吗?

c - MPI 集体操作和进程生命周期 (C/C++)

c - MPI:rand() 在每次运行中为所有进程提供相同的常数

c++ - 使用来自函数的数据初始化 C++ const 成员 (MPI_comm_size/rank)

c++ - C++ 指针的新手;试图从指向父类的指针 vector 中检索子对象。帮助将不胜感激

c++ - 类中枚举的前向声明?

c# - Parallel.Foreach c# 暂停和停止功能?

mpi - 在 open-mpi/mpi-run 中加载共享库