Я использую 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
Мобильная версия