Я хочу запустить и подключиться к dask.distributed LocalCluster из скрипта Python. Однако я получаю разное поведение в зависимости от способа вызова одних и тех же строк кода. Следующее работает должным образом при запуске из ячейки в блокноте Jupyter:
Код: Выделить всё
from dask.distributed import Client, LocalCluster
cluster = LocalCluster()
client = Client(cluster)
from time import sleep
sleep(5)
Выходные данные соответствуют моим ожиданиям; есть одна строка с адресом планировщика и ~12 пар строк, соответствующих ~12 воркерам, которые он запускает. Как и ожидалось, он также завершает выполнение через несколько секунд после завершения записи вывода. Я также получаю такое же ожидаемое поведение при запуске всех этих команд, передавая строку исполняемому файлу Python, то есть в командной строке, запускающей python -c "from dask.distributed import Client, LocalCluster; Cluster = LocalCluster(); client = Client(cluster); from time import Sleep(5)". Однако когда я запускаю одни и те же строки кода, но помещая их в файл и вызывая python file_taining_above_code.py, я получаю десятки различных версий следующего кода, которые одновременно пытаются записать на стандартный вывод:< /p>
Код: Выделить всё
Scheduler at: tcp://127.0.0.1:44911
dashboard at: http://127.0.0.1:45103/status
Каждый из них имеет свой адрес планировщика и панели управления, что наводит меня на мысль, что по какой-то причине он запускает множество кластеров. На этом этапе он также висит на неопределенный срок. Я подозреваю, что сейчас могу обойти это, скопировав скрипт и передав его в python -c, но, надеюсь, по очевидным причинам я бы предпочел иметь возможность запускать скрипт без необходимости этого делать. Это известное поведение dask?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... -execution