fedml-2.Docker多容器配置
Docker安装
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
- 中间遇到输出,提示建议使用for windows
1 | WSL DETECTED: We recommend using Docker Desktop for Windows. |
创建容器并配置环境
验证是否可以使用gpu
1 | docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark |
pull fedml镜像
1 | docker pull fedml/fedml:cuda-11.4.0-devel-ubuntu20.04 |
编写运行脚本并运行
1 | FEDML_DOCKER_IMAGE=fedml/fedml:cuda-11.4.0-devel-ubuntu20.04 |
创建两个容器
1 | bash run_fedml_docker.sh 1 2 127.0.0.1 worker1 |
修改GPU MAPPING
1 | mapping_default: |
初始化fedml
- 分别在两个docker内运行
1 | sudo /home/code/setup_docker.sh |
- 更新fedml
- 自带的pytorch支持的gpu算力等级太低,需要更新
在主节点下启动server
1 | bash run_server.sh |
在容器中启动client
1 | bash run_client.sh 1 |
- 可以正常运行,也可以正常调用gpu
使用Dockerfile避免setup_docker.sh
- 节省空间
- 避免重复下载环境
新建一个空目录,在其中创建文件Dockerfile
1 | FROM fedml/fedml:cuda-11.4.0-devel-ubuntu20.04 |
- 对于算力较高的gpu,更新pytorch
1 | FROM fedml/fedml:cuda-11.4.0-devel-ubuntu20.04 |
在该目录下执行
1 | sudo docker build -t fedml:tt . |
使用fedml:tt
创建container
1 | FEDML_DOCKER_IMAGE=fedml:tt ### 这里 |
容器创建脚本
- 创建容器并开始观测gpu使用率
1 | sudo docker stop $(sudo docker ps -a | awk '{ print $1}' | tail -n +2) |
fedml-2.Docker多容器配置
https://jingtianer.github.io/home/2022/10/22/fedfab/fedml/2.Docker多容器配置/