Функция get_world_size
Функция get_world_size возвращает общее количество процессов,
участвующих в распределенной группе. Первым параметром функция принимает
группу процессов (необязательно). Вторым параметром можно передать
булево значение для получения размера текущей группы.
Синтаксис
torch.distributed.get_world_size([group])
Пример
Давайте инициализируем распределенную среду и получим общее количество процессов:
import torch
import torch.distributed as dist
dist.init_process_group(backend='gloo', init_method='tcp://localhost:23456', rank=0, world_size=2)
size = dist.get_world_size()
print(size)
Результат выполнения кода:
2
Пример
Давайте получим размер для конкретной группы процессов:
import torch
import torch.distributed as dist
dist.init_process_group(backend='gloo', init_method='tcp://localhost:23456', rank=0, world_size=4)
group = dist.new_group([0, 2])
group_size = dist.get_world_size(group)
print(group_size)
Результат выполнения кода:
2
Пример
Давайте используем функцию для проверки количества процессов в распределенном обучении:
import torch
import torch.distributed as dist
dist.init_process_group(backend='gloo', init_method='tcp://localhost:23456', rank=0, world_size=4)
world_size = dist.get_world_size()
if world_size > 1:
print('Distributed training with', world_size, 'processes')
else:
print('Single process training')
Результат выполнения кода:
"Distributed training with 4 processes"
Смотрите также
-
функцию
init_process_group,
которая инициализирует распределенную группу процессов -
функцию
get_rank,
которая возвращает ранг текущего процесса в группе -
функцию
is_initialized,
которая проверяет инициализацию распределенной среды -
функцию
new_group,
которая создает новую подгруппу процессов