如何使用SLURM中的srun运行多个mpi程序

时间:2017-09-23 23:56:44

标签: mpi hpc slurm

我尝试使用多个程序实例运行此命令,如下所示:

mpirun -oversubscribe -tag-output -np 1 /home/rd636/Posdoc_Posner/BioNetFit2_pull1/bin/BioNetFit2 -a load -c /home/rd636/Posdoc_Posner/BioNetFit2_pull1/parabolaA_1681692777.sconf : -oversubscribe -tag-output -np 24 /home/rd636/Posdoc_Posner/BioNetFit2_pull1/bin/BioNetFit2 -t particle -p 0 -a run -c /home/rd636/Posdoc_Posner/BioNetFit2_pull1/parabolaA_1681692777.sconf

在一个节点中,这个mpirun命令有效,但是当我在我的sbatch scriipt中请求多个节点时,24个slave进程(来自另一个节点)接收的消息是空的。 我向HPC经理询问了这件事,他说我应该使用" srun"跑我的工作。 但是如何将mpirun命令转换为srun命令?

这是我的工作提交脚本:

#SBATCH --job-name=parabola2_cluster_2x10                                   # the name of your job
#SBATCH --output=/home/rd636/Posdoc_Posner/BioNetFit2_pull1/parabola_log.txt        # this is the file your output and errors go to
#SBATCH --time=1:30:00                                  # 1 hour and 30 min
#SBATCH --workdir=/home/rd636/Posdoc_Posner/BioNetFit2_pull1/bin            # your work directory
#SBATCH --mem=2000                                                  # 2GB of memory
abbreviated by -N
#SBATCH --ntasks=25                                 # number of MPI tasts (total number of cores), or (Swarm_Size*nModels)+1
module purge
module load gcc/5.4.0
module load openmpi/1.10.2
module load glibc/2.23
module load boost/1.65.0-gcc-5.4.0

time mpirun -oversubscribe -tag-output -np 1 /home/rd636/Posdoc_Posner/BioNetFit2_pull1/bin/BioNetFit2 -a load -c /home/rd636/Posdoc_Posner/BioNetFit2_pull1/parabolaA_1681692777.sconf : -oversubscribe -tag-output -np 24 /home/rd636/Posdoc_Posner/BioNetFit2_pull1/bin/BioNetFit2 -t particle -p 0 -a run -c /home/rd636/Posdoc_Posner/BioNetFit2_pull1/parabolaA_1681692777.sconf
echo "Synchronous GA, 24 subparticles, 12 particles, 2 models, 100 generations"

我无法使用多程序文件方法,因为我的命令太长了,不幸的是,不能选择更改为相对路径。

0 个答案:

没有答案