Понимание того, является ли текущий процесс частью многопроцессорного пула с помощью --multiprocessing-forkPython

Программы на Python
Ответить
Anonymous
 Понимание того, является ли текущий процесс частью многопроцессорного пула с помощью --multiprocessing-fork

Сообщение Anonymous »

Мне нужно найти способ, позволяющий процессу Python выяснить, был ли он запущен как часть многопроцессорного пула.
Я использую dask для распараллеливания вычислений, используя dask.distributed.LocalCluster. По причинам UX (это используется как часть библиотеки для специализированной научной задачи) я хочу, чтобы настройка кластера dask происходила в модуле, который пользователь может импортировать.
Это означает, что я нельзя использовать обычную защиту:

Код: Выделить всё

import dask.distributed as dd

if __name__=='__main__':
dd.LocalCluster()
чтобы запретить дочернему процессу запускать собственный кластер, поскольку мне нужно запустить кластер из импортированного модуля.
Покопавшись Используя метод psutil, я смог узнать, что дочерние процессы вызываются с помощью параметра командной строки --multiprocessing-fork и запускают multiprocessing.spawn.spawn_main метод. Думаю проверить наличие флага --multiprocessing-fork, чтобы понять, является ли текущий процесс частью пула или нет.
Правильный ли это подход ? есть ли лучший способ? Мне не удалось найти никакой очевидной документации по методу multiprocessing.spawn.spawn_main.
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-multip
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»