openmpi 跑多机器版本nccl_tests

nccl_tests是用来测试nccl性能的,代码地址:https://github.com/NVIDIA/nccl-tests

因为研究需要,设置了一下跨机的nccl_tests.记录一下踩到的坑。

首先openmpi要设置好跨机器的配置。我的环境是ubuntu18.02.

第一个坑:

使用sudo apt install 安装的openmpi版本是2.x的,跨机运行nccl的时候会报错。

Warning: There was an error initializing an OpenFabrics device.

最后发现是因为版本太低了,所以换成4.x的,在官网build from source:
https://www.open-mpi.org/software/ompi/v4.0/

接下来要设置ssh 免密码登录。

还要设置ssh远程执行的环境变量问题:

方案一

需要在被登录的机器的~/.ssh/enviroment里写好PATH. LD_LIBRARY_PATH的值,否则远程直接执行的时候,很可能访问的不是你想要的环境变量,导致一些库无法访问,比如刚刚安装的openmpi.

写好之后,在/etc/ssh/sshd_config里加入

PermitUserEnvironment yes

然后重启sshd服务:

service sshd restart

方案二

运行mpirun的时候,自己加上环境变量。例如:

mpirun -np 2 -H server1:1,server2:1 -x LD_LIBRARY_PATH -x PATH which python

然后可以通过远程ssh看环境变量是否符合预期:

ssh xxx@xxxx env |grep PATH

接下来就是编译nccl_tests,因为要跨机,编译的时候要指定MPI

MPI=1 MPI_HOME=/path to mpi make

然后就运行吧

 mpirun -np 4 --host "xxxx,xxxx,xxxx,xxxx" -x NCCL_DEBUG=WARN ./build/all_reduce_perf -b 8 -e 128M -f 2

你可能感兴趣的:(openmpi 跑多机器版本nccl_tests)