关于变量名称 rank 的疑惑


为啥每次涉及到分布式,进程这块,就会遇到一个名为rank的变量
为啥要把这个变量名起名为rank,是有什么含义吗?

一般涉及到多进程,往往需要一个标识来确认“这个进程是谁”,从而确定对应的行为,例如:

  • allreduce 时 1号要传给 2 号,接受来自 0 号的数据
  • 用 hub.load 时,只有0号负责从网络上下载,而其他进程等待0号做完后 broadcast 即可

用 rank 是一种历史习俗,MPI 等多进程的方案都是用 rank / word_size 搭配使用的,详见这里:https://www.codingame.com/playgrounds/349/introduction-to-mpi/mpi_comm_world-size-and-ranks

1赞