我想实现 在两台不同服务器(gpu环境)的两个容器下进行mindspore分布式训练,并且已经做好了两个容器间的免密ssh通信,但是不知道如何用mpirun操作

【操作步骤&问题现象】

1、看了一下mindspore官网上的分布式训练教程,有一个疑问,我该如何指定 某个主机的某个端口号(因为我想进入某个机器中的某个容器环境进行训练),mpirun 没有指定端口号的参数吧?

难道是在host_file中指定吗?麻烦大佬解答一下,谢谢!

2.如果只指定 机器的ip地址的话,相当于只是在机器默认端口下执行,并没有进入到容器,

3.另外如果我还想进入到容器中并且在进入一个conda环境中呢,应该如何操作?

【截图信息】

 

解答:

发现mpirun 可以通过 -mca 参数中传入容器的端口号 port,具体如下图所示

注意:容器的端口号必须和主机共用端口号,即在docker run 后面加上--network host参数,

然后将 /etc/.ssh/sshd_config中的port修改为自己想设置的端口号(必须修改,不能是默认的22,不然和会和主机端口号冲突)

进入conda环境的话可以通过修改 容器中的~/.bashrc中加入 conda  activate  ***

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐