试验1:搞清torch.distributed.launch相关的环境变量
试验用到的code:train.py
import torch
import torch.distributed as dist
import os
import time
print(os.environ)
dist.init_process_group('nccl')
time.sleep(30)
dist.destroy_process_group()
试验过程
- 在A机器上调用如下命令
python -m torch.distributed.launch --nproc_per_node 4 --nnodes 2 --node_rank 0 --master_addr='10.100.37.21' --master_port='29500' train.py
, 在B机器上调用如下命令python -m torch.distributed.launch --nproc_per_node 4 --nnodes 2 --node_rank 1 --master_addr='10.100.37.21', --master_port='29500' train.py
机器A的显示信息如下:
python -m torch.distributed.launch --nproc_per_node 4 --nnodes 2 --node_rank 0 --master_addr='10.100.37.21' --master_port='29500' train1.py
*****************************************
Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
*****************************************
environ({'XDG_SESSION_ID': '40164', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51550 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'OLDPWD': '/home/zhangwd', 'SSH_TTY': '/dev/pts/80', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/usr/local/cuda/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd/code/demo/self-supervised/pytorch_dist', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51550 10.100.37.21 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1013', 'DISPLAY': 'localhost:11.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '0', 'LOCAL_RANK': '0'})
environ({'XDG_SESSION_ID': '40164', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51550 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'OLDPWD': '/home/zhangwd', 'SSH_TTY': '/dev/pts/80', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/usr/local/cuda/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd/code/demo/self-supervised/pytorch_dist', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51550 10.100.37.21 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1013', 'DISPLAY': 'localhost:11.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '2', 'LOCAL_RANK': '2'})
environ({'XDG_SESSION_ID': '40164', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51550 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'OLDPWD': '/home/zhangwd', 'SSH_TTY': '/dev/pts/80', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/usr/local/cuda/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd/code/demo/self-supervised/pytorch_dist', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51550 10.100.37.21 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1013', 'DISPLAY': 'localhost:11.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '1', 'LOCAL_RANK': '1'})
environ({'XDG_SESSION_ID': '40164', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51550 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'OLDPWD': '/home/zhangwd', 'SSH_TTY': '/dev/pts/80', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/usr/local/cuda/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd/code/demo/self-supervised/pytorch_dist', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51550 10.100.37.21 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1013', 'DISPLAY': 'localhost:11.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '3', 'LOCAL_RANK': '3'})
机器B的显示信息如下:
python -m torch.distributed.launch --nproc_per_node 4 --nnodes 2 --node_rank 1 --master_addr='10.100.37.21' --master_port='29500' train1.py
*****************************************
Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
*****************************************
environ({'XDG_SESSION_ID': '4475', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51380 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'SSH_TTY': '/dev/pts/4', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51380 10.100.37.100 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1005', 'DISPLAY': 'localhost:12.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '4', 'LOCAL_RANK': '0'})
environ({'XDG_SESSION_ID': '4475', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51380 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'SSH_TTY': '/dev/pts/4', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51380 10.100.37.100 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1005', 'DISPLAY': 'localhost:12.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '7', 'LOCAL_RANK': '3'})
environ({'XDG_SESSION_ID': '4475', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51380 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'SSH_TTY': '/dev/pts/4', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51380 10.100.37.100 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1005', 'DISPLAY': 'localhost:12.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '5', 'LOCAL_RANK': '1'})
environ({'XDG_SESSION_ID': '4475', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SSH_CLIENT': '172.16.104.139 51380 22', 'CONDA_SHLVL': '2', 'CONDA_PROMPT_MODIFIER': '(pytorch1.8) ', 'SSH_TTY': '/dev/pts/4', 'http_proxy': 'http://172.16.17.164:3128', 'USER': 'zhangwd', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_EXE': '/home/zhangwd/anaconda3/bin/conda', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_CE_CONDA': '', 'CONDA_PREFIX_1': '/home/zhangwd/anaconda3', 'MAIL': '/var/mail/zhangwd', 'PATH': '/home/zhangwd/bin:/home/zhangwd/.local/bin:/home/zhangwd/anaconda3/envs/pytorch1.8/bin:/home/zhangwd/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_PREFIX': '/home/zhangwd/anaconda3/envs/pytorch1.8', 'PWD': '/home/zhangwd', 'LANG': 'en_US.UTF-8', 'https_proxy': 'http://172.16.17.164:3128', '_CE_M': '', 'SHLVL': '1', 'HOME': '/home/zhangwd', 'LANGUAGE': 'en_US:en', 'CONDA_PYTHON_EXE': '/home/zhangwd/anaconda3/bin/python', 'LOGNAME': 'zhangwd', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'SSH_CONNECTION': '172.16.104.139 51380 10.100.37.100 22', 'CONDA_DEFAULT_ENV': 'pytorch1.8', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_RUNTIME_DIR': '/run/user/1005', 'DISPLAY': 'localhost:12.0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', '_': '/home/zhangwd/anaconda3/envs/pytorch1.8/bin/python', 'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '6', 'LOCAL_RANK': '2'})
环境变量中'MASTER_ADDR': '10.100.37.21', 'MASTER_PORT': '29500', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '6', 'LOCAL_RANK': '2'
,是跟我们的分布式训练相关的几个变量,解释如下:
torch.ditributed.launch参数解析:
- –nnodes: 表示有多少个节点,可以通俗的理解为有多少台机器,比如在我们的例子中,–nnodes=2,是指有两个节点(即两台机器)参与训练;
- –nproc_per_node: 表示每个节点上有多少个进程,每个进程一般独占一块GPU,但是这并不绝对,要看具体的实现;
- –node_rank: 指节点的编号,比如上例中在机器A上启动时,–node_rank=0, 指A机器的节点编号是0;在机器B上启动时,–node_rank=1,指B机器上的节点编号是1
- –master_addr:master节点的ip地址
- –master_port:master节点的port号,在不同的节点上master_addr和master_port的设置是一样的,用来进行通信
torch.ditributed.launch相关环境变量解析:
- WORLD_SIZE: 通俗的解释下,就是一共有多少个进程参与训练,WORLD_SIZE = nproc_per_node*nnodes,不同的进程中,WORLD_SIZE是唯一的;
- RANK:进程的唯一表示符,不同的进程中,这个值是不同的,上述在AB两台机器上共启动了8个进程,则不同进程的RANK号是不同的
- LOCAL_RANK: 同一节点下,LOCAL_RANK是不同的,常根据LOCAL_RANK来指定GPU,但GPU跟LOCAL_RANK不一定一一对应,因为进程不一定被限制在同一块GPU上。