问题标签 [mvapich2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
405 浏览

c - MVAPICH2-GDR 有分段错误错误

我正在尝试将 MVAPICH2-GDR 用于简单的 hello world 程序。虽然它可以成功编译代码,但它在运行时出现分段错误错误。我的平台有 Redhat 6.5 和 CUDA 7.5。于是我下载了rpm文件mvapich2-gdr-cuda7.5-intel-2.2-0.3.rc1.el6.x86_64.rpm。

MPI 代码是简单的 hello world 程序:

为了编译程序,我使用了以下命令:

运行程序:

错误信息如下:

因为MVAPICH2-GDR没有公开它的源代码,我真的不知道错误是从哪里来的。有人成功使用过 MVAPICH2-GDR 吗?

0 投票
0 回答
59 浏览

pthreads - “MPI_THREAD_SERIALIZED”的精确定义

由于MPI_THREAD_MULTIPLE不如 性能和稳定MPI_THREAD_SERIALIZED,我正在尝试将我的 MPI 应用程序转换为序列化。MPI_THREAD_SERIALIZED但是,我并不清楚确切的定义。是否意味着:

  1. 任何 MPI 调用的开始结束不应与其他调用重叠?

或 2.任何 MPI 调用的开始不应与其他调用重叠。(但是两个调用还是可以重叠的)

如果是前者,如何实现具有长效阻塞 API 的多线程应用程序,MPI_Comm_accept例如MPI_Win_fence

一个示例是等待客户端服务的 DPM 应用程序。

0 投票
1 回答
119 浏览

mpi - 在 MPICH3.2 中禁用注册缓存

使用 MVAPICH2 时,我导出此变量:

MV2_USE_LAZY_MEM_UNREGISTER=0

用户指南中,此变量定义为:

“设置此参数使 mvapich2 能够使用内存注册缓存。”

如果我需要在 MPICH 中使用此功能,它可能是等效的?

0 投票
1 回答
589 浏览

mpi - 检查我的 MVAPICH 是否启用了多线程

我想知道是否有任何命令可以显示 MVAPICH 安装的启用功能,类似于我们可以为 OpenMPI 找到的那个:

ompi_info

特别是,我很想知道是否启用了多线程支持。

0 投票
1 回答
71 浏览

tcp - MVAPICH 2.3 为多个设备配置

虽然 2.3 版中的 mvapich 弃用了 Nemesis 接口,但现在有什么方法可以立即配置它以支持 Infiniband,并在失败时回退到 TCP?还是我必须为我的网格中的不同网络设置进行两次编译?

0 投票
1 回答
177 浏览

mpi - MVAPICH2 基于 RDMA 的通信没有明确的 PUT/GET 使用?

我的集群在 Infiniband FDR 上使用 MVAPICH2,并且我正在考虑使用 RDMA 进行模拟。我知道 MPI_Put 和 MPI_Get 调用显式调用 RDMA 操作,但是我想知道这是否是在 MPI 中使用 RDMA 的唯一方法。

我当前的实现涉及用于通信的通道语义(发送/接收)MPI_Reduce以及MPI_Gatherv. 我知道 MVAPICH2 具有可用于启用 RDMA 的配置参数。如果使用 MPI 的程序具有发送/接收调用并且启用了 RDMA,MPI 是否会自动从通道语义转换为内存语义(put/get),还是在 MVAPICH2 中显式使用MPI_PutMPI_Get唯一实现 RDMA 的方法?

MPI_Send需要相应的MPI_Receive,无论它们是阻塞还是非阻塞都无关紧要,因为发送必须满足接收。RDMA 没有此要求,而是仅实现MPI_Put(写入远程内存)或MPI_Get(从远程内存读取)。我试图找出在仍然使用发送和接收的同时启用 rdma 是否允许 MVAPICH2 以某种方式自动将发送/接收转换为适当的 rdma 调用。

0 投票
1 回答
61 浏览

mpi - Mvapich2(带IB)计算后的奇怪信息

我正在使用 mvapich2 2.2 运行示例程序(hello-world & pi)。计算后,我看到看起来像调试的信息(在错误线程中)。

输出线程

错误线程

环境:

  • CentOS 7;
  • Mellanox MT25204;
  • mvapich2-2.2(从 yum 安装)。

截屏

我怎样才能禁用它?

0 投票
1 回答
153 浏览

mpi - 使用 MVAPICH2.2 在第二个 CPU 插槽上绑定 MPI 进程

我正在使用 NUMA 计算节点,其中网络(Mellanox InfiniBand HCA)连接到第二个 CPU 插槽(和 NUMA 节点)。是否有任何环境变量可以使用MVAPICH2.2将所有 MPI 进程简单地绑定到第二个 CPU 套接字?

MV2_CPU_BINDING_LEVEL=socket MV2_CPU_BINDING_POLICY=bunch组合不起作用,因为它开始在第一个 CPU 插槽上重新组合进程。

我通常最终使用类似的东西:( -genv MV2_CPU_MAPPING 10:11:12:13:14:15:16:17:18:19:30:31:32:33:34:35:36:37:38:39 使用第二个 10 核 CPU 插槽的所有 SMT)但这很丑陋并且取决于内核的数量。

0 投票
1 回答
104 浏览

parallel-processing - # bytes > 128: IMB-EXT 时英特尔 MPI 基准测试失败

我刚刚在两台机器上安装了 Linux 和 Intel MPI:

(1) 相当老的(约 8 年)SuperMicro 服务器,有 24 个内核(Intel Xeon X7542 X 4)。32 GB 内存。操作系统:CentOS 7.5

(2) 新的 HP ProLiant DL380 服务器,具有 32 个内核(Intel Xeon Gold 6130 X 2)。64 GB 内存。操作系统:OpenSUSE Leap 15

安装操作系统和英特尔 MPI 后,我编译了英特尔 MPI 基准并运行它:

令人惊讶的是,我在运行 IMB-EXT 和 IMB-RMA 时发现了相同的错误,尽管我有不同的操作系统和一切(甚至用于编译英特尔 MPI 基准测试的 GCC 版本也不同——在 CentOS 中,我使用了 GCC 6.5。 0,在 OpenSUSE 中,我使用了 GCC 7.3.1)。

在 CentOS 机器上,我得到:

在 OpenSUSE 机器上,我得到

当我不使用 mpirun 时(这意味着只有一个进程可以运行 IMB-EXT),基准运行通过,但 Unidir_Put 需要> = 2 个进程,所以没有太大帮助,我也发现函数使用 MPI_Put 和 MPI_Get 比我预期的要慢得多(根据我的经验)。此外,在 OpenSUSE 机器上使用 MVAPICH 也无济于事。输出是:

更新:我测试了OpenMPI,它顺利通过(虽然我的应用程序不推荐使用openmpi,我仍然不明白为什么Intel MPI或MVAPICH不起作用......)

在安装 MPI 或在这些服务器中安装操作系统时,我是否有可能遗漏一些东西?实际上,我认为操作系统是问题所在,但不知道从哪里开始......

非常感谢提前,

0 投票
1 回答
47 浏览

fortran - 用 MVAPICH2 编译 Fortran 2003 程序

你能用 MVAPICH2 编译一个 fortran 2003 程序吗?

MVAPICH2声明a) 它提供了自己的编译器和 b) 它提供了mpif77mpif90包装器(它们都指向 eg /opt/mvapich2-2.3.1/bin/mpifort)。我找不到任何对此有帮助的文档。