Невозможно запустить dask-mpi с Python 3.7 - время ожидания при подключении клиента к планировщику dask-mpi - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь запустить Dask-MPI «Getting Started» (пример http://mpi.dask.org/en/latest/) в новой среде Anaconda.

Я настраивал среду, используя

conda create -n dask-mpi -c conda-forge python=3.7 dask-mpi
conda activate dask-mpi

Внутри среды я запускаю

mpirun -np 4 dask-mpi --scheduler-file ./scheduler.json

Затем из интерпретатора python на той же машине (и в той же папке) я запускаю

from dask.distributed import Client
client = Client(scheduler_file='/path/to/scheduler.json')

Это приводит кследующая ошибка:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/distributed/client.py", line 712, in __init__
    self.start(timeout=timeout)
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/distributed/client.py", line 858, in start
    sync(self.loop, self._start, **kwargs)
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/distributed/utils.py", line 331, in sync
    six.reraise(*error[0])
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/six.py", line 693, in reraise
    raise value
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/distributed/utils.py", line 316, in f
    result[0] = yield future
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/tornado/gen.py", line 729, in run
    value = future.result()
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/tornado/gen.py", line 736, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/distributed/client.py", line 954, in _start
    yield self._ensure_connected(timeout=timeout)
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/tornado/gen.py", line 729, in run
    value = future.result()
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/tornado/gen.py", line 736, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/distributed/client.py", line 1015, in _ensure_connected
    timedelta(seconds=timeout), self._update_scheduler_info()
  File "/home/nleaf/anaconda3/envs/dask-mpi/lib/python3.7/site-packages/tornado/gen.py", line 729, in run
    value = future.result()
tornado.util.TimeoutError: Timeout

Терминал, с которого я запускал dask-mpi, не имеет вывода, который указывал бы на то, что что-то пытается подключиться. Я убедился, что рассматриваемый порт, 8786, открыт.Я также проверил с помощью отладчика, что клиент получает правильный адрес из файла планировщика.

Я пробовал это в самых разных средах и на нескольких разных машинах, включая свежий докер Ubuntu 18.04контейнер. Я в полном недоумении, какие шаги я могу пропустить.

1 Ответ

0 голосов
/ 20 июня 2019

Оказывается, это произошло из-за ошибки в более новых версиях dask.distributed (1.25.3), которая нарушала поведение dask-mpi. Похоже, это исправлено в dask-mpi 1.0.3 (https://github.com/dask/dask-mpi/releases/tag/1.0.3).

...