学习代码阶段,看到了local_rank
的概念,学习了此链接,受益匪浅。
node
:物理节点,就是一台机器,节点内部可以有多个GPU(一台机器有多卡)rank & local_rank
:用于表示进程的序号,用于进程之间的通讯。- 每一个进程对用了一个rank,rank是指整个分布式任务中进程的序号
- rank=0的进程就是master进程
- local_rank是指在一台机器(node)上进程的相对序号,例如机器一上有0,1,2,3,4,5,6,7.机器二上也有0,1,2,3,4,5,6,7。local_rank在node之间相互独立。
- 单机多卡时,rank就等于loacl_rank
nnodes
物理节点数量node_rank
物理节点的序号nproc_per_node
每个物理节点上面进程的数量group
进程组,默认只有一个组world_size
全局的并行数,全局(一个分布式任务)中,rank的数量- 每个node包括16个GPU,且nproc_per_node= 8,nnodes=3,机器的node_rank=5,请问world_size是多少,world_size=3*8 = 24
- 展示图如下: