РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
768 of 769 menu

Функция distributed.get_global_rank

Функция distributed.get_global_rank возвращает глобальный ранг процесса в группе по его локальному рангу. Первым параметром функция принимает группу процессов group, вторым - локальный ранг local_rank внутри этой группы. Функция полезна когда нужно узнать соответствующий глобальный ранг для локального ранга в подгруппе.

Синтаксис

torch.distributed.get_global_rank(group, local_rank)

Пример

Давайте создадим группу процессов и получим глобальные ранги для каждого локального ранга внутри группы:

import torch import torch.distributed as dist dist.init_process_group(backend="gloo") world_size = dist.get_world_size() local_group = dist.new_group([0, 1]) if dist.get_rank() in [0, 1]: global_rank = dist.get_global_rank(local_group, dist.get_rank()) print(f"Local rank: {dist.get_rank()}, Global rank: {global_rank}")

Результат выполнения кода для процесса с локальным рангом 0 внутри группы:

"Local rank: 0, Global rank: 0"

Пример

Используем функцию get_global_rank для определения глобального ранга при сборе данных из подгруппы процессов:

import torch import torch.distributed as dist dist.init_process_group(backend="gloo") subgroup = dist.new_group([1, 2, 3]) if dist.get_rank() in [1, 2, 3]: local_rank = dist.get_rank() global_rank = dist.get_global_rank(subgroup, local_rank) print(f"Process local rank {local_rank} has global rank {global_rank} in subgroup")

Результат выполнения кода для одного из процессов подгруппы:

"Process local rank 2 has global rank 2 in subgroup"

Пример

Используем get_global_rank для создания маппинга локальных рангов в глобальные:

import torch import torch.distributed as dist dist.init_process_group(backend="gloo") ranks = [0, 2, 4] subgroup = dist.new_group(ranks) if dist.get_rank() in ranks: local_rank = dist.get_rank() global_rank = dist.get_global_rank(subgroup, local_rank) print(f"Local rank mapping: {local_rank} -> {global_rank}")

Результат выполнения кода для процесса с локальным рангом 2 в подгруппе:

"Local rank mapping: 2 -> 2"

Смотрите также

  • функцию get_rank,
    которая возвращает ранг текущего процесса в группе
  • функцию get_world_size,
    которая возвращает количество процессов в группе
  • функцию new_group,
    которая создает новую группу процессов
  • функцию get_group_rank,
    которая возвращает локальный ранг в группе по глобальному
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить