Я пытаюсь запустить 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контейнер. Я в полном недоумении, какие шаги я могу пропустить.