如果我使用 infiniband 进行两个节点之间的通信(使用 MVAPICH2 作为 MPI 实现),我的应用程序会产生错误的结果。
OpenMPI 提供了指定网络的可能性
$ mpirun --mca btl tcp,self ...
MVAPICH2 有什么类似的吗?
MVAPICH2 文档对此有直接的介绍。从他们的页面引用:
4.9 为 TCP/IP-Nemesis 配置构建
使用带有 Nemesis 通道的 TCP/IP 需要以下配置:
$ ./configure --with-device=ch3:nemesis
静态库和共享库都是默认构建的。为了仅使用静态库构建,配置如下:
$ ./configure --with-device=ch3:nemesis --disable-shared
要启用 TotalView 调试器,需要按以下方式配置库:
$ ./configure --with-device=ch3:nemesis --enable-g=dbg --enable-debuginfo
可以在 MPICH 文档中找到使用 TCP/IP-Nemesis 进行配置的其他说明: http ://www.mcs.anl.gov/research/projects/mpich2/documentation/index.php?s=docs