1

在 XE6 等 Cray 计算机上,当通过 aprun 启动混合 MPI/pthreads 应用程序时,有一个深度参数表示每个进程可以生成的线程数。例如,

aprun -N2 -n12 -d5

每个进程可以产生 5 个操作系统将分发的线程。

使用 Slurm 的 srun 启动 OpenMPI/pthread 应用程序时是否有类似的选项?该机器是具有 nehalem 处理器和 IB 互连的通用 HP 集群。线程支持级别是否只有 MPI_THREAD_FUNNELED 是否重要?

4

2 回答 2

4

这是我用来启动混合 MPI-OpenMP 作业的脚本。这n是节点数和t线程数。

sbatch <<EOF
#!/bin/bash
#SBATCH --job-name=whatever
#SBATCH --threads-per-core=1
#SBATCH --nodes=$n
#SBATCH --cpus-per-task=$t
#SBATCH --time=48:00:00
#SBATCH --mail-type=END
#SBATCH --mail-user=blabla@bibi.zz
#SBATCH --output=whatever.o%j

. /etc/profile.d/modules.sh
module load gcc
module unload openmpi
module load mvapich2

export OMP_NUM_THREADS=$t 
export LD_LIBRARY_PATH=/apps/eiger/Intel-CPP-11.1/mkl/lib/em64t:${LD_LIBRARY_PATH}

mpiexec -np $n myexe

EOF

希望能帮助到你

于 2011-11-28T16:27:22.287 回答
0

您通常使用 选择 MPI 进程--ntasks数和每个进程的线程数--cpu-per-task。如果您请求--ntasks=2and --ncpus-per-task=4,则 slurm 将在一个节点或两个节点上分配 8 个 cpu,每个节点四个核心,具体取决于资源可用性和集群配置。

如果您指定--nodes而不是--ntasks,Slurm 将为每个节点分配一个进程,就像您选择 一样--ntask-per-node=1

于 2013-11-28T20:25:14.123 回答