如何在slurm中设置MASTER_PORT和MASTER_ADDR

问题描述 投票:0回答:1

在torch官方文档中谈到DDP时,说要设置如下:

def setup(rank, world_size):
    os.environ['MASTER_ADDR'] = 'localhost'
    os.environ['MASTER_PORT'] = '12355'

现在我正在使用 slurm 提交 sbatch 作业,在普林斯顿大学提供的本教程中: https://github.com/PrincetonUniversity/multi_gpu_training/tree/main/02_pytorch_ddp 它具有以下设置:

export MASTER_PORT=$(expr 10000 + $(echo -n $SLURM_JOBID | tail -c 4))
master_addr=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1)
export MASTER_ADDR=$master_addr
echo "MASTER_ADDR="$MASTER_ADDR

但是似乎即使我只是将master_addr保留为localhost,将master_port保留为12355,然后将其提交到slurm,它仍然可以运行。

有人可以解释一下吗?比如“12355”从哪里来,可以是随机的吗?

谢谢!

distributed torch slurm
1个回答
0
投票

是的,端口号是您计算机上可用的任何超过 1024 的随机端口(这些端口是保留的)。

© www.soinside.com 2019 - 2024. All rights reserved.