1

XE6 などの Cray コンピューターでは、aprun を介してハイブリッド MPI/pthreads アプリケーションを起動するときに、各プロセスが生成できるスレッドの数を示す深さパラメーターがあります。例えば、

aprun -N2 -n12 -d5

各プロセスは、OS が配布する 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=2--ncpus-per-task=4、slurm は、リソースの可用性とクラスター構成に応じて、1 つのノードまたは 2 つのノードにそれぞれ 4 つのコアで 8 つの cpu を割り当てます。

--nodesの代わりに指定すると--ntasks、Slurm は を選択した場合と同様に、ノードごとに 1 つのプロセスを割り当てます--ntask-per-node=1

于 2013-11-28T20:25:14.123 に答える