在CPU上进行MPI+OpenMP混合编程时如何控制使用哪些节点,每个节点用多少个进程,每个进程上启用多少个线程?
在cpu节点上进行MPI和openMP混合并行计算时可以通过slurm提交脚本来控制使用集群的哪些节点,每个节点起多少个进程;可以通过openMP的编译指导语句num_threads等方式来控制线程数。以下代码和提交脚本组合意味着用4个结点,每个结点1进程,每个进程4个线程。
(1)slurm提交脚本run.sh:
#!/bin/bash
#SBATCH -J PROCS_c7
#SBATCH -o ./job.%j.out
#SBATCH -e ./job.%j.err
#SBATCH -p compute
#SBATCH -N 4
#SBATCH --ntasks-per-node=1
#SBATCH --nodelist=computer[11,12,13,14]
#ulimit -s unlimited
mpirun -np 4 -ppn 1 ./hello-hyper
(2)hel