问题标签 [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.
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 吗?
pthreads - “MPI_THREAD_SERIALIZED”的精确定义
由于MPI_THREAD_MULTIPLE
不如 性能和稳定MPI_THREAD_SERIALIZED
,我正在尝试将我的 MPI 应用程序转换为序列化。MPI_THREAD_SERIALIZED
但是,我并不清楚确切的定义。是否意味着:
- 任何 MPI 调用的开始和结束不应与其他调用重叠?
或 2.任何 MPI 调用的开始不应与其他调用重叠。(但是两个调用还是可以重叠的)
如果是前者,如何实现具有长效阻塞 API 的多线程应用程序,MPI_Comm_accept
例如MPI_Win_fence
?
一个示例是等待客户端服务的 DPM 应用程序。
mpi - 在 MPICH3.2 中禁用注册缓存
使用 MVAPICH2 时,我导出此变量:
MV2_USE_LAZY_MEM_UNREGISTER=0
在用户指南中,此变量定义为:
“设置此参数使 mvapich2 能够使用内存注册缓存。”
如果我需要在 MPICH 中使用此功能,它可能是等效的?
mpi - 检查我的 MVAPICH 是否启用了多线程
我想知道是否有任何命令可以显示 MVAPICH 安装的启用功能,类似于我们可以为 OpenMPI 找到的那个:
ompi_info
特别是,我很想知道是否启用了多线程支持。
tcp - MVAPICH 2.3 为多个设备配置
虽然 2.3 版中的 mvapich 弃用了 Nemesis 接口,但现在有什么方法可以立即配置它以支持 Infiniband,并在失败时回退到 TCP?还是我必须为我的网格中的不同网络设置进行两次编译?
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_Put
和MPI_Get
唯一实现 RDMA 的方法?
MPI_Send
需要相应的MPI_Receive
,无论它们是阻塞还是非阻塞都无关紧要,因为发送必须满足接收。RDMA 没有此要求,而是仅实现MPI_Put
(写入远程内存)或MPI_Get
(从远程内存读取)。我试图找出在仍然使用发送和接收的同时启用 rdma 是否允许 MVAPICH2 以某种方式自动将发送/接收转换为适当的 rdma 调用。
mpi - Mvapich2(带IB)计算后的奇怪信息
我正在使用 mvapich2 2.2 运行示例程序(hello-world & pi)。计算后,我看到看起来像调试的信息(在错误线程中)。
输出线程
错误线程
环境:
- CentOS 7;
- Mellanox MT25204;
- mvapich2-2.2(从 yum 安装)。
我怎样才能禁用它?
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)但这很丑陋并且取决于内核的数量。
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 或在这些服务器中安装操作系统时,我是否有可能遗漏一些东西?实际上,我认为操作系统是问题所在,但不知道从哪里开始......
非常感谢提前,
宰
fortran - 用 MVAPICH2 编译 Fortran 2003 程序
你能用 MVAPICH2 编译一个 fortran 2003 程序吗?
MVAPICH2声明a) 它提供了自己的编译器和 b) 它提供了mpif77
和mpif90
包装器(它们都指向 eg /opt/mvapich2-2.3.1/bin/mpifort
)。我找不到任何对此有帮助的文档。