Я пытаюсь получить базовую среду ipyparallel, используя mpi4py, как описано in the ipyparallel documentation. После запуска ipcluster я загружаю ipython и пытаюсь создать клиент, но у него нет идентификаторов, и доступ к directview возвращает исключение NoEnginesRegistered
.ipyparallel с mpi не может найти движки
шаги предпринять, чтобы добраться до этой точки:
- Создать новую среду:
conda create --name=ipyparallel
иsource activate ipyparallel
- Установка ipyparallel и mpi4py:
conda install ipyparallel mpi4py
- Создать новый профиль IPython:
ipython profile create --parallel --profile=mpi
- Редактировать ~/.ipython/profile_mpi/ipcluster_config.py и добавьте
c.IPClusterEngines.engine_launcher_class = 'MPIEngineSetLauncher'
- Запуск кластера с
ipcluster start --profile=mpi
Затем я запускаю IPython и выполните следующее:
import ipyparallel as ipp
c = ipp.client(profile="mpi")
c[:] # <-- NoEnginesRegistered exception
Шаг 5 сообщает, что «Двигатели по-видимому, начали успешно», и я вижу, что процесс, называемый «Mpiexec» работает. Как ни странно, я пробовал эти же шаги на другой машине с той же ОС, и там она работала без проблем. Что мне не хватает?