首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将MPI与slurm群集上的emcee一起使用时出错

尝试将MPI与slurm群集上的emcee一起使用时出错
EN

Stack Overflow用户
提问于 2019-06-22 01:24:20
回答 1查看 386关注 0票数 0

嗨,谢谢你的帮助!

我正在尝试让emcee在Slurm集群上使用mpi运行,但当我启动我的代码时,它在几分钟后返回一个错误,下面描述了一个大错误,似乎是围绕着“Invalid communicator”错误。

你知道我可能做错了什么吗?

我使用的是anaconda,所以我尝试重新安装环境,更改使用的包,并删除所有不必要的东西,但错误总是相同的。

下面是我通过sbatch提交的脚本:

代码语言:javascript
复制
#!/bin/bash
#SBATCH --partition=largemem
#SBATCH --ntasks=40
#SBATCH --ntasks-per-node=40
#SBATCH --mem-per-cpu=4000
#SBATCH --mail-user=(my email)
#SBATCH --mail-type=ALL
#SBATCH --output=results/LastOpti.out
#SBATCH --error=results/LastOpti.err
#SBATCH --job-name=gal

source ~/anaconda3/etc/profile.d/conda.sh
conda activate EmceeMPI

cd ~/GalarioFitting

srun -n $SLURM_NTASKS python3 OptimizationGalarioMPI.py --nwalkers 560 --iterations 3000 --suffix _lasttest

conda deactivate

在我的python代码中,我使用了schwimmbad的MPIPool。

错误是这样一大块:

代码语言:javascript
复制
Traceback (most recent call last):
  File "OptimizationGalarioMPI.py", line 303, in <module>
    pos, prob, state = sampler.run_mcmc(pos, iterations, progress=True)
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/emcee-3.0rc2-py3.7.egg/emcee/ensemble.py", line 346, in run_mcmc
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/emcee-3.0rc2-py3.7.egg/emcee/ensemble.py", line 305, in sample
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/emcee-3.0rc2-py3.7.egg/emcee/moves/red_blue.py", line 92, in propose
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/emcee-3.0rc2-py3.7.egg/emcee/ensemble.py", line 389, in compute_log_prob
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/schwimmbad/mpi.py", line 168, in map
    status=status)
  File "mpi4py/MPI/Comm.pyx", line 1173, in mpi4py.MPI.Comm.recv
  File "mpi4py/MPI/msgpickle.pxi", line 302, in mpi4py.MPI.PyMPI_recv
  File "mpi4py/MPI/msgpickle.pxi", line 261, in mpi4py.MPI.PyMPI_recv_match
mpi4py.MPI.Exception: Invalid communicator, error stack:
PMPI_Mprobe(120):  MPI_Mprobe(source=-2, tag=-1, comm=MPI_COMM_WORLD, message=0x7ffed877b790, status=0x7ffed877b7a0)
PMPI_Mprobe(85).: Invalid communicator

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "OptimizationGalarioMPI.py", line 303, in <module>
    pos, prob, state = sampler.run_mcmc(pos, iterations, progress=True)
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/schwimmbad/pool.py", line 46, in __exit__
    self.close()
  File "/home/mbenisty/anaconda3/envs/EmceeMPI/lib/python3.7/site-packages/schwimmbad/mpi.py", line 188, in close
    self.comm.send(None, worker, 0)
  File "mpi4py/MPI/Comm.pyx", line 1156, in mpi4py.MPI.Comm.send
  File "mpi4py/MPI/msgpickle.pxi", line 174, in mpi4py.MPI.PyMPI_send
EN

回答 1

Stack Overflow用户

发布于 2019-06-24 19:48:27

可能是Conda附带的MPI实现不包含Slurm支持。如果是这样的话,您应该尝试使用mpirun而不是srun启动您的程序。但该错误通常表明MPI的多个实现同时处于活动状态。确保在提交作业时未加载任何环境模块,并且未安装与MPI相关的操作系统包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56707988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档