注意点

  • 由于我安装OpenMpi之前已经实现了集群节点间SSH无密码登录,且也挂载了共享文件夹。假如你没有这些环境的话,你需要事先准备,网上有相关教程。

在官网下载OpenMpi下载

1
Linux上可以用如wget + 安装包地址的放置下载OpenMpi的安装包

Linux上安装OpenMpi

  • 首先是解压OpenMpi的安装包,接下来这三步就比较重要。在解压后的文件夹下运行:

    1
    2
    3
    (sudo) ./configure --prefix=路径(我的选择是/usr/local/openmpi) (在这一步可以使用--diable-mpi-***的方式取消配置时候对一些编译器的绑定)
    (sudo) make(在这一步可能会报错,如cannot find -***,意思是缺少lib***.so的库,可以从网上下载或从其他节点复制)
    (sudo) make install(卸载的话就是make uninstall)

    其中第一步中的路径可以自己选定,不过有一次安装过程我报了一个库文件缺失的问题,是通过重新安装并选定如上的路径解决的。

Linux上运行OpenMpi

  • 在安装结束后,我们还需要配置一下环境变量。
    亲测在/etc/profile或者是$HOME/.bashrc上配置,都能在本机上mpirun成功。
    但是假如你需要两台机子之间的通讯,那么最好还是在.bashrc文件的上面写下:

    1
    2
    export PATH=(./configure时选择得路径)/bin:$PATH
    export LD_LIBRARY_PATH=(./configure时选择得路径)/lib:$PATH

    选择.bashrc文件配置环境变量的原因,好像是交互式非登录通信的时候,文件的启动顺序问题?
    假如是/etc/profile文件的话,会报出orte的错误。

在集群上配置OpenMpi

  • 之前看网上其他教程有人说过假如环境没问题,可以直接复制已经安装好的OpenMpi文件夹到其他节点上完成OpenMpi的安装,可是亲测单纯复制安装文件夹没用(就算你./configure的路径选择的也是安装文件夹)。而且就算mpirun测试成功,后面在运行用例的时候说不定会出现库文件缺失的问题。所以最好还是传安装包,然后再安装以上的安装路径重复一下。

Linux上使用Intel Mpi Benchmark(IMB)测试集群MPI的带宽和延迟

  • 既然已经完成了OpenMpi的集群配置,那不妨使用IMB工具测试集群MPI通讯的带宽和延迟。首先我们需要从官网下载IMB。

    1
    解压后在解压文件夹内的src_c文件夹内使用make命令,接着我们就会看到IMB-MPI1文件
  • 记住,如OpenMpi一样,我们的IMB最好在集群的所有节点中都有着相同的路径。而这样用两个节点测试用例讲一下如何使用PingPong测试

    1
    2
    3
    mpirun -np 2 -host node1,node2 ***/IMB-MPI1 PingPong
    其中由于OpenMpi的特殊你可以用--mca + 一些命令来添加测试参数,比如--mca btl_openib_if_inculde(exclude) + 网卡名称,代表选定某个网卡或者排除某个网卡。
    而IMB官网也有一个英文的指导PDF文件,里面详细讲了更多的测试用法,和参数选择