实验背景: 在 2 台机器上,进行了小规模分布式训练的验证实验。主要是为了验证代码能够在分布式环境下运行。实验配置如下:
HOST | IP | GPU Num |
---|---|---|
hw21 | 10.30.0.21 | 2 |
hw22 | 10.30.0.22 | 1 |
1. 自定义容器
1.1 Dockerfile
1 | FROM horovod/horovod:0.16.3-tf1.12.0-torch1.1.0-mxnet1.4.1-py3.5 |
1.2 生成容器镜像
1 | $ docker build -t climo:v2 -t |
2. 配置多主机容器网络
1 | [manager]$ docker swarm init |
3. 启动容器
1 | # 后台启动容器 |
1 | # 进入容器命令行 |
4. 配置SSH免密登录
4.1 在每个容器中单独操作
1 | # 把生成的公钥发到 `${SERVER}:22` 的机器上 |
4.2 分发 authorized_keys 文件
1 | cat /root/.ssh/authorized_keys # Ouput for debug |
5. 分布式训练
1 | horovodrun -np 3 -H hw21:2,hw22:1 python train.py \ |
未完结,期末考试结束再补充!