【问题标题】:Launching OpenMPI/pthread apps with slurm使用 slurm 启动 OpenMPI/pthread 应用程序
【发布时间】:2013-11-29 04:25:14
【问题描述】:

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

aprun -N2 -n12 -d5

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

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

【问题讨论】:

    标签: mpi openmpi


    【解决方案1】:

    这是我用来启动混合 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
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-03-11
        • 2011-11-20
        • 2014-06-03
        • 2015-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-13
        相关资源
        最近更新 更多