Skip to content
job_marconi100_test_case_B.slurm 2.16 KiB
Newer Older
#!/bin/bash
#SBATCH -J Test_case_B
#SBATCH -A Ppp4x_5850
#SBATCH -p m100_usr_prod
#SBATCH --time 01:59:00
#SBATCH --nodes=384
#SBATCH --ntasks-per-node=4
#SBATCH --cpus-per-task=8
#SBATCH --output=specfem3D_%x_marconi100-xl-spectrumpi-GPU-%j.output
#SBATCH --gres=gpu:4
#SBATCH --gpus-per-node=4
#SBATCH --hint=nomultithread
#SBATCH --exclusive

source ../env/env_marconi100
echo "Environment used:"
echo "================="
grep -E -v '^(#|$)' ../env/env_marconi100
cat job_marconi100_test_case_B.slurm
cd $install_dir/TestCaseB/specfem3d_globe
grep GPU DATA/Par_file
export CUDA_VISIBLE_DEVICES=0,1,2,3

ulimit -s unlimited
MESHER_EXE=./bin/xmeshfem3D
SOLVER_EXE=./bin/xspecfem3D

echo "=========="
echo "config.log"
echo "=========="
cat $install_dir/TestCaseB/specfem3d_globe/config.log
echo "========"
echo "make.log"
echo "========"
cat $install_dir/TestCaseB/specfem3d_globe/make.log

# backup files used for this simulation
cp DATA/Par_file OUTPUT_FILES/
cp DATA/STATIONS OUTPUT_FILES/
cp DATA/CMTSOLUTION OUTPUT_FILES/

##
## mesh generation
##
sleep 2

echo
echo `date`
echo "starting MPI mesher"
echo

MPI_PROCESS=` echo "$SLURM_NNODES*$SLURM_NTASKS_PER_NODE" | bc -l`
echo "SLURM_NTASKS= " $SLURM_NTASKS
echo "SLURM_NTASKS_PER_NODE = " $SLURM_NTASKS_PER_NODE
echo "SLURM_CPUS_PER_TASKS = " $SLURM_CPUS_PER_TASK
echo "SLURM_NNODES=" $SLURM_NNODES
echo "MPI_PROCESS $MPI_PROCESS"

time mpirun -gpu -np ${MPI_PROCESS} ${MESHER_EXE}
# set the value of --ntasks-per-node to the number of MPI processes you want to run per node, and --cpus-per-task = OMP_NUM_THREADS (if you want to exploit the SMT in terms of number of OMP threads) or to 128 / (ntasks-per-node) (if you want to exploit the SMT in terms of number of MPI processes).
echo "  mesher done: `date`"
echo

##
## forward simulation
##
sleep 2

echo
echo `date`
echo starting run in current directory $PWD
echo
time mpirun -gpu -np ${MPI_PROCESS}  ${SOLVER_EXE}

ls -lrth  $install_dir/TestCaseB/specfem3d_globe/OUTPUT_FILES/output_*.txt
cat $install_dir/TestCaseB/specfem3d_globe/OUTPUT_FILES/output_solver.txt
echo "========"
cat $install_dir/TestCaseB/specfem3d_globe/OUTPUT_FILES/output_mesher.txt

echo "finished successfully"
echo `date`