Функция is_initialized
Функция distributed.is_initialized проверяет состояние распределенной
среды в текущем процессе. Она возвращает логическое значение True,
если процесс был успешно инициализирован с помощью функции
distributed.init_process_group, и False в противном случае.
Эта функция не принимает никаких параметров и полезна для условной
инициализации или безопасного завершения распределенных операций.
Синтаксис
torch.distributed.is_initialized()
Пример
Проверим состояние распределенной среды до и после инициализации:
import torch
import torch.distributed as dist
print(dist.is_initialized())
dist.init_process_group(backend='gloo', init_method='env://')
print(dist.is_initialized())
dist.destroy_process_group()
print(dist.is_initialized())
Результат выполнения кода:
False
True
False
Пример
Используем проверку инициализации для безопасного выполнения распределенных операций:
import torch
import torch.distributed as dist
if not dist.is_initialized():
dist.init_process_group(backend='gloo', init_method='env://')
if dist.is_initialized():
print("Distributed environment is ready")
print(f"World size: {dist.get_world_size()}")
print(f"Rank: {dist.get_rank()}")
dist.destroy_process_group()
Результат выполнения кода:
"Distributed environment is ready"
"World size: 1"
"Rank: 0"
Пример
Используем проверку инициализации в условной логике с коллективными операциями:
import torch
import torch.distributed as dist
dist.init_process_group(backend='gloo', init_method='env://')
if dist.is_initialized():
t = torch.tensor([1, 2, 3, 4, 5])
if dist.get_rank() == 0:
print(f"Original tensor: {t}")
dist.destroy_process_group()
Результат выполнения кода:
"Original tensor: tensor([1, 2, 3, 4, 5])"
Смотрите также
-
функцию
init_process_group,
которая инициализирует распределенную среду -
функцию
destroy_process_group,
которая уничтожает распределенную группу -
функцию
get_rank,
которая возвращает ранг текущего процесса -
функцию
is_available,
которая проверяет доступность распределенного бэкенда