#!/bin/bash # Template SLURM job for ML-KEM benchmarking. # Variables filled in by slurm/submit.sh: # PARAM — 512 | 768 | 1024 # VARIANT — ref | refnv | avx2 | ... # NTESTS — iterations per operation (default 10000) # BINARY — path to compiled benchmark binary #SBATCH -J bench_mlkem${PARAM}_${VARIANT} #SBATCH -p batch #SBATCH -n 1 #SBATCH --mem=2G #SBATCH -t 02:00:00 #SBATCH --constraint=intel #SBATCH -o %j_mlkem${PARAM}_${VARIANT}.out # Pin to a single core, disable frequency scaling for deterministic measurements. # Requires appropriate OSCAR allocation; skip if unavailable. export GOMP_CPU_AFFINITY="0" NTESTS=${NTESTS:-10000} BINARY=${BINARY:-./bench_mlkem${PARAM}_${VARIANT}} if [[ ! -x "$BINARY" ]]; then echo "ERROR: binary not found or not executable: $BINARY" >&2 exit 1 fi echo "=== bench_mlkem${PARAM}_${VARIANT} ===" echo "SLURM_JOB_ID: $SLURM_JOB_ID" echo "SLURM_NODELIST: $SLURM_NODELIST" echo "NTESTS: $NTESTS" echo "DATE: $(date -Iseconds)" echo "UNAME: $(uname -a)" echo "CPU: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2 | xargs)" echo "---" "$BINARY" "$NTESTS"