mindspore.ops.communication.get_group_rank

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

获取与world通信组中的rank ID对应的指定用户通信组中的rank ID。

说明

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

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

  • global_rank (int) - world通信组中的rank ID。

返回:

int,用户通信组中的rank ID。

异常:
  • TypeError - 如果 global_rank 不是整数或 group 不是字符串。

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

支持平台:

Ascend

样例:

说明

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

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

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

>>> import mindspore as ms
>>> from mindspore.ops.communication import init_process_group, new_group, get_group_rank, 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)
...     group_rank_id = get_group_rank(group, 4)
...     print("group_rank_id is: ", group_rank_id)
#rank 0 and 4:
group_rank_id is: 1