J'essaie d'obtenir un environnement ipyparallel de base fonctionnant en utilisant mpi4py comme décrit in the ipyparallel documentation. Après le démarrage de l'ipcluster, je charge ipython et essaie de créer un client mais il n'a pas d'ID et l'accès directview renvoie une exception NoEnginesRegistered
.ipyparallel avec mpi ne peut pas trouver les moteurs
mesures que je prends pour arriver à ce point:
- Créer un nouvel environnement:
conda create --name=ipyparallel
etsource activate ipyparallel
- Installer ipyparallel et mpi4py:
conda install ipyparallel mpi4py
- Créer un nouveau profil de ipython:
ipython profile create --parallel --profile=mpi
- Modifier ~/.ipython/profile_mpi/ipcluster_config.py et ajoutez
c.IPClusterEngines.engine_launcher_class = 'MPIEngineSetLauncher'
- Lancer le cluster avec
ipcluster start --profile=mpi
Puis-je lancer ipython et exécutez ce qui suit:
import ipyparallel as ipp
c = ipp.client(profile="mpi")
c[:] # <-- NoEnginesRegistered exception
Étape 5 rapports que « moteurs semblent avoir commencé avec succès » et je peux voir qu'un processus nommé « mpiexec » est en cours d'exécution. Bizarrement, j'ai essayé ces mêmes étapes sur une autre machine avec le même système d'exploitation et là ça a marché sans problème. Qu'est-ce que je rate?