Dask.distributed использует только одно ядро ​​на узел - PullRequest
0 голосов
/ 18 мая 2018

У меня есть программа, в которой каждая задача - это вызов внешней программы C ++ через subprocess.Popen.Задачи расположены в виде графика, и все выполняется командой dask get.

У меня есть версия этой программы для одного узла, которая прекрасно работает с dask.threaded, и я пытаюсь расширить эту версиюк распределенной настройке.Моя цель - запустить его на кластере Slurm, но у меня проблемы с развертыванием рабочих.Когда я запускаю следующее:

screen -d -m dask-scheduler --scheduler-file scheduler.json
screen -d -m srun dask-worker --scheduler-file scheduler.json
python3 myscript.py

на каждом узле используется только одно ядро ​​(из двадцати ядер на узел).

Я подозревал некоторые проблемы с GIL, но скриптс dask.threaded прекрасно работает, поэтому я не совсем уверен, что происходит, и некоторая помощь будет признательна.

1 Ответ

0 голосов
/ 18 мая 2018

Я рекомендую взглянуть на панель инструментов, чтобы увидеть, сколько задач Dask выполняется одновременно на каждом работнике:

Документация здесь: http://dask.pydata.org/en/latest/diagnostics-distributed.html

Если вы видите, что Dask работает толькоодна задача на работника, тогда, вероятно, проблема в том, как вы настроили своих работников (вы можете посмотреть на страницу работника, чтобы понять, о чем думает Даск, о котором вы просили)

Если выобратите внимание, что Dask выполняет одновременно много задач для каждого работника, тогда это, вероятно, проблема с вашей функцией.

...