Files
supercomputers/task2/scripts/run_mpi.slurm
2026-03-17 11:21:20 +03:00

55 lines
1.3 KiB
Bash

#!/usr/bin/env bash
#SBATCH --job-name=task2-mpi
#SBATCH --partition=tornado
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=56
#SBATCH --time=00:20:00
#SBATCH --output=results/%x-%j.out
#SBATCH --error=results/%x-%j.err
set -euo pipefail
cd "${SLURM_SUBMIT_DIR}"
module purge
module load compiler/gcc/11
module load mpi/openmpi
mkdir -p results bin
./scripts/build_mpi.sh
RANKS=${SLURM_JOB_NUM_NODES}
echo "===== account info ====="
whoami; hostname; date
echo
echo "===== slurm info ====="
echo "SLURM_JOB_ID=${SLURM_JOB_ID:-unknown}"
echo "SLURM_JOB_PARTITION=${SLURM_JOB_PARTITION:-unknown}"
echo "SLURM_JOB_NUM_NODES=${SLURM_JOB_NUM_NODES:-unknown}"
echo "SLURM_NODELIST=${SLURM_NODELIST:-unknown}"
echo "RANKS=${RANKS}"
scontrol show job "${SLURM_JOB_ID}" || true
echo
echo "===== node config ====="
lscpu | head -20
if [ -n "${SLURMD_NODENAME:-}" ]; then
scontrol show node "${SLURMD_NODENAME}" || true
fi
CSV="results/task2-mpi-${RANKS}n-${SLURM_JOB_ID}.csv"
echo "n,procs,time_ms,path_len,iterations" > "$CSV"
echo
echo "===== benchmark (${RANKS} nodes / ${RANKS} ranks) ====="
for N in 500 1000 2000 3000 5000; do
echo "--- n=$N ---"
mpirun -np "${RANKS}" --map-by ppr:1:node --bind-to none ./bin/wave_mpi "$N" "$CSV"
done
echo
echo "===== done ====="