openmpi相关内容

什么时候需要使用 MPI_Barrier()?

我想知道什么时候需要使用屏障?例如,在分散/聚集之前/之后我是否需要它?或者 OMPI 是否应该在分散/聚集之前确保所有流程都已达到该点?同样,在广播之后,我可以期望所有进程都已经收到消息吗? 解决方案 在 MPI-3.0 之前 MPI 中的所有集合操作都是阻塞的,这意味着在它们返回后使用传递给它们的所有缓冲区是安全的.特别是,这意味着当这些函数之一返回时,所有数据都已收到.(但是,这并不 ..
发布时间:2022-01-22 20:08:33 其他开发

是否可以使用 MPI 将数据从 Fortran 程序发送到 Python?

我正在开发一种工具来模拟波浪能转换器,我需要将两个软件包相互耦合.一个程序是用 Fortran 编写的,另一个是用 C++ 编写的.我需要在每个时间步将信息从 Fortran 程序发送到 C++ 程序.但是,数据首先需要在 Python 中处理,然后才能发送到 C++ 程序.我收到了使用 MPI 在程序之间传输数据的提示. 我现在正尝试从 Fortran 代码向 Python 发送一个简单的 ..
发布时间:2022-01-14 10:02:58 Python

如何在 Infiniband 中使用 GPUDirect RDMA

我有两台机器.每台机器上有多张特斯拉卡.每台机器上还有一张 InfiniBand 卡.我想通过 InfiniBand 在不同机器上的 GPU 卡之间进行通信.只需点对点单播就可以了.我当然想使用 GPUDirect RDMA,这样我就可以省去额外的复制操作. 我知道 Mellanox 现在提供 驱动程序InfiniBand 卡.但它没有提供详细的开发指南.我也知道 OpenMPI 支持我要求 ..
发布时间:2022-01-10 15:55:59 其他开发

Openmpi mpmd 获取通信大小

我有两个 openmpi 程序,我是这样开始的 mpirun -n 4 ./prog1 : -n 2 ./prog2 现在我如何使用 MPI_Comm_size(MPI_COMM_WORLD, &size) 以便我获得大小值 prog1 size=4prog2 大小=2. 截至目前,我在两个程序中都获得了“6". 解决方案 这是可行的,虽然实现起来有点麻烦.其原理是根据argv[0 ..
发布时间:2021-12-30 21:15:03 C/C++开发

自定义数据类型(MPI_Datatype 数据类型)?

在 MPI 中是否有自定义数据类型之类的东西,或者您是否必须将所有内容展平为文本字符串并作为 MPI_CHAR 传递?如果您需要展平所有内容,是否有我忽略的内置功能? 解决方案 更好的答案是 MPI_Type_create_struct.它允许你复制你的结构数据类型并传递它,在 DeinoMPI 有一个很好的例子说明它的使用. ..
发布时间:2021-06-12 20:20:22 其他开发

OpenMPI:简单的 2 节点设置

我在仅使用两个节点运行 OpenMPI 程序时遇到问题(其中一个节点是执行 mpiexec 命令的同一台机器,另一个节点是单独的机器). 我将调用运行 mpiexec 的机器、ma​​ster 和另一个节点 slave. 在 ma​​ster 和 slave 上,我都在 ~/mpi 下的主目录中安装了 OpemMPI 我在 ma​​ster 上有一个名为 ~/machines.txt ..
发布时间:2021-06-12 20:20:15 其他开发

如何让 mpi4py 在 Windows 上工作

我正在尝试使用 mpi4py. 我从 Anaconda 包安装了 mpi4py,并且 pip install mpi4py 认识到这一点. 但是当我跑步时 from mpi4py import MPI 说 MPI 模块不存在. 我查看了 mpi4py 文件夹,确实找不到. 我认为问题在于我可能没有安装 OpenMPI,但我到处寻找,但找不到如何在 Windows 1 ..
发布时间:2021-06-12 20:20:13 其他开发

用 OpenMPI 替换 MPICH 安装

我目前在我的机器上安装了 MPICH(版本 3.1.4)(运行 Mac OS X 10.10.5).我想删除它并安装 OpenMPI,但在网上找不到有关如何卸载 MPICH 的说明. 简单地删除MPICH的目录就足够了吗?如果是这样,我在哪里可以找到它?我以为我已经将它安装在 usr/local 中,并且确实在那里找到了一些与 MPI 相关的文件(在名为 include 的文件夹中),但似乎 ..
发布时间:2021-06-04 18:36:33 C/C++开发

从 MPICH 切换到 OpenMPI

我的 Ubuntu 20.04 中有 mpich 和 openmpi. $ dpkg -l |grep mpi |库...ii libmpich-dev:amd64 3.3.2-2build1 amd64 MPICH 开发文件ii libmpich12:amd64 3.3.2-2build1 amd64 MPICH 共享库...ii libopenmpi-dev:amd64 4.0.3-0ubu ..
发布时间:2021-06-04 18:36:00 其他开发

通过MPI进程同步数组,如果每个线程改变了一部分?

我有一个要使用 MPI 并行化的程序.我之前没有与 MPI 合作过. 该程序计算大量对象随时间的行为.的数据这些对象存储在数组中,例如double precision :: body_x(10000) x 坐标. 要计算对象的行为,需要有关所有其他对象的信息,所以每个线程都需要保存所有数据,但只会更新其中的一部分.但在此之前每个线程需要从所有其他线程获取信息的新时间步. 据我所知 ..
发布时间:2021-06-04 18:35:08 其他开发

brew install open-mpi失败

尝试安装 openmpi ,请注意: 无法确定REAL * 16位是否匹配C类型 冉啤酒医生,它给了我 您的系统极有可能酝酿 完整输出 %brew install open-mpi==>下载http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.已下载:/Library/Caches/Homebrew/open ..
发布时间:2021-05-14 19:15:26 其他开发

openmpi忽略错误:无法识别mca接口

今天早上,我将gfortran(从4.7升级到6.1.0)和OpenMPI(从1.10到2.0.1)编译器进行了升级.我写了这个简单的程序: 程序主要使用mpi_f08隐式无整数:: ierror呼叫mpi_init(ierror)致电mpi_finalize(ierror)结束程序主要 直接编译时(没有mpirun,只有 ./a.out ),我收到以下消息(由于程序按预期运行,它们并不是真 ..
发布时间:2021-05-09 19:18:11 其他开发

英特尔Fortran到GNU Fortran的转换

我正在研究用Fortran 90和MPI编写的自定义CFD求解器.该代码包含15个以上的模块,最初设计为与Intel Fortran编译器一起使用.现在,由于我无权访问Intel编译器,因此需要使用GNU Fortran编译器使其工作. 我在Makefile中进行了更改,这些更改最初具有适用于ifort的标志.我在带有GNU Fortran和Openmpi的Ubuntu上使用它 很抱歉 ..
发布时间:2021-05-09 19:17:57 其他开发

为非交互式Shell正确获取.bashrc的方法

我一直在尝试解决问题,以便能够在多个节点上运行openmpi. 最初,我无法通过openmpi会话从 .bashrc 文件更新 $ PATH 和 $ LD_LIBRARY_PATH 变量时遇到问题,所以我手动进行了操作添加了-前缀/path/to/openmpi 来解决此问题. 结果是,即使anaconda路径变量也没有被加载.因此,最终我需要从我的主目录获取〜/.bashrc 文件. ..
发布时间:2021-04-14 19:40:55 其他开发

分段故障OpenMPI

我包括一个带有功能linspace的静态头文件utils.h.我的main.cpp文件如下: #include #include #include using namespace std; int main(int argc, const char * argv[]) { float start = 0., end = ..
发布时间:2020-05-21 01:34:22 C/C++开发

MPI Scatter仅发送第一个元素

我只是简单地尝试将一些字符串散布到节点上,然后以新数组的形式接收它们.当我打印新数组时,终端将输出 name1 (empty line) (empty line) (empty line) 这是我的分散信息: std::string files[4] = {"name1", "name2", "name3", "name4"}; s ..
发布时间:2020-05-21 01:34:19 C/C++开发

Openmpi和vargrind

我只是使用valgrind来测试openmpi-1.4/example中提供的示例: mpirun.openmpi --np 2 valgrind --log-file=output.dat --leak-check=full --tool=memcheck ./ring_c 然后我在以下output.dat中找到了 == 30450 ==系统调用参数writev(vector ..
发布时间:2020-05-21 01:34:14 其他开发

如何将动态数组从属节点发送到主节点

我正在完成一个简单的MPI程序,并且在项目的最后一部分上苦苦挣扎. 我将2个包含起点和终点的int发送到从属节点.使用这些,我需要创建一个数组并填充它.我需要将此发送回主节点.从属代码如下: printf("Client waiting for start point and endpoint array\n");fflush(stdout); int startEnd [2]; MPI ..
发布时间:2020-05-21 01:34:09 C/C++开发