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

Функция init_process_group

Функция distributed.init_process_group инициализирует распределенную среду PyTorch для обучения моделей на нескольких устройствах или узлах. Первым параметром передается бэкенд ('gloo', 'nccl' или 'mpi'), вторым параметром можно указать URL мастер-узла через init_method. Обязательными параметрами являются rank (номер текущего процесса) и world_size (общее количество процессов).

Синтаксис

import torch.distributed as dist dist.init_process_group( backend, init_method='env://', rank=-1, world_size=-1, timeout=datetime.timedelta(minutes=30), group_name='' )

Пример

Базовая инициализация группы с использованием переменных окружения:

import torch.distributed as dist # Инициализация с бэкендом 'gloo' dist.init_process_group( backend='gloo', init_method='env://', rank=0, world_size=2 ) print(f"Rank: {dist.get_rank()}") print(f"World size: {dist.get_world_size()}") print(f"Backend: {dist.get_backend()}")

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

"Rank: 0" "World size: 2" "Backend: gloo"

Пример

Инициализация группы с использованием TCP-адреса мастер-узла:

import torch.distributed as dist # Инициализация через TCP dist.init_process_group( backend='nccl', init_method='tcp://127.0.0.1:23456', rank=1, world_size=4 ) res = f"Process {dist.get_rank()} of {dist.get_world_size()}" print(res)

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

"Process 1 of 4"

Пример

Использование функции вместе с проверкой инициализации:

import torch.distributed as dist # Проверка перед инициализацией if not dist.is_initialized(): dist.init_process_group( backend='gloo', init_method='env://', rank=0, world_size=1 ) print(f"Is initialized: {dist.is_initialized()}")

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

"Is initialized: True"

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

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