У меня 3 машины Ubuntu (CPU). мой планировщик dask и клиент находятся на одном компьютере, тогда как два рабочих процесса dask работают на двух других машинах. когда я запускаю первую задачу, она назначается для первого воркера, но затем при запуске второго воркера, пока первый все еще выполняется, он не расписывается для второго воркера. вот пример кода клиента, который я пробовал.
### client.py
from dask.distributed import Client
import time, sys, os, random
def my_task(arg):
print("doing something in my_task")
time.sleep(2)
print("inside my task..", arg)
print("again doing something in my_task")
time.sleep(2)
print("return some random value")
value = random.randint(1,100)
print("value::", value)
return value
client = Client("172.25.49.226:8786")
print("client::", client)
future = client.submit(my_task, "hi")
print("future result::", future.result())
print("closing the client..")
client.close()
Я запускаю "python client.py" два раза почти одновременно с двух разных терминалов / машин. кажется, что оба клиента выполняются, но это приводит к точно такому же результату, которого не должно быть, потому что тип возврата my_task () является случайным значением. Я тестировал это на машинах с Ubuntu.
Однако месяц назад мне удалось запустить те же задачи параллельно на машинах CentOs. И теперь, если вернуться и запустить те же две задачи с этих машин CentOs, проблема не исчезнет. Это странно. он не работал параллельно. Не удалось выяснить это поведение с помощью dask. Мне не хватает настроек уровня ОС или чего-то еще?
Запустите нижеприведенное почти одновременно,
python client.py # from one machine/terminal
python client.py # from another machine/terminal
эти две задачи должны выполняться параллельно, каждая задача должна выполняться на разных воркерах (у нас есть два свободных воркера), но этого не происходит. Я не вижу никаких журналов ни на второй рабочей консоли, ни в планировщике, в то время как первая задача продолжает выполняться. В конце концов, я заметил, что обе задачи завершаются в одно и то же время с одинаковым результатом.
Однако приведенный выше клиентский код хорошо работает «параллельно» в ОС Windows, каждая задача выполняется через несколько терминалов. но я бы хотел запустить его на машинах с Ubuntu.