mindspore.ops.communication.get_global_rank

查看源文件
mindspore.ops.communication.get_global_rank(group, group_rank)[源代码]

返回与用户组中id为 group_rank 的rank对应的world组中的rank id。

说明

此方法应在 mindspore.ops.communication.init_process_group() 之后使用。

参数:
  • group (str) - 要工作的通信组。通常,组应由 mindspore.ops.communication.new_group() 创建。如果为 None,在Ascend中表示 "hccl_world_group"

  • group_rank (int) - 要查询的组rank。

返回:

一个整数标量,表示world组中的rank id。

异常:
  • TypeError - 如果 group 不是str。

  • TypeError - 如果 group_rank 不是整数。

  • RuntimeError - 如果设备目标无效,或后端无效,或分布式初始化失败。

支持平台:

Ascend

样例:

说明

运行以下样例之前,需要配置好通信环境变量。

针对Ascend设备,推荐使用msrun启动方式,无第三方以及配置文件依赖。详见 msrun启动

该样例需要在8卡环境下运行。

>>> import mindspore as ms
>>> from mindspore.ops.communication import init_process_group, get_global_rank, new_group, get_rank
>>> ms.set_device(device_target="Ascend")
>>> # Launch 8 processes.
>>> init_process_group()
>>> rank_ids = [0,4]
>>> if get_rank() in rank_ids:
...     group = new_group(rank_ids)
...     world_rank_id = get_global_rank(group, 1)
...     print("world_rank_id is: ", world_rank_id)
#rank 0 and 4:
world_rank_id is: 4