結果は、プロセッサの数を 2 から 4、10 に増やすたびにランタイムが減少することを示していますが、プロセッサが 20 になるとランタイムが大幅に増加します。各ノードには 2 つの 8 コア プロセッサがあるため、各ノードを 16 mpi プロセスに制限したいと考えています。私はこれを正しくやっていますか?問題は私のスバッチファイルに関係していると思います。特に、使用するノードが 1 つから 2 つになると、ランタイムが大幅に増加するためです。ここに私のスバッチファイルがあります:
#!/bin/bash -x
#SBATCH -J scalingstudy
#SBATCH --output=scalingstudy.%j.out
#SBATCH --error=scaling-err.%j.err
#SBATCH --time=03:00:00
#SBATCH --partition=partition_name
#SBATCH --mail-type=end
#SBATCH --mail-user=email@school.edu
#SBATCH -N 2
#SBATCH --ntasks-per-node=16
module load gcc/4.9.1_1
module load openmpi/1.8.1_1
mpic++ enhanced_version.cpp
mpirun -np 2 ./a.out 10000
mpirun -np 4 ./a.out 10000
mpirun -np 10 ./a.out 10000
mpirun -np 20 --bind-to core ./a.out 10000
mpirun -np 2 ./a.out 50000
mpirun -np 4 ./a.out 50000
mpirun -np 10 ./a.out 50000
mpirun -np 20 --bind-to core ./a.out 50000
mpirun -np 2 ./a.out 100000
mpirun -np 4 ./a.out 100000
mpirun -np 10 ./a.out 100000
mpirun -np 20 --bind-to core ./a.out 100000
mpirun -np 2 ./a.out 500000
mpirun -np 4 ./a.out 500000
mpirun -np 10 ./a.out 500000
mpirun -np 20 --bind-to core ./a.out 500000
mpirun -np 2 ./a.out 1000000
mpirun -np 4 ./a.out 1000000
mpirun -np 10 ./a.out 1000000
mpirun -np 20 --bind-to core ./a.out 1000000