diff --git a/toolchain/bootstrap/modules.sh b/toolchain/bootstrap/modules.sh index 2185309ada..4573e2f2dc 100644 --- a/toolchain/bootstrap/modules.sh +++ b/toolchain/bootstrap/modules.sh @@ -43,7 +43,8 @@ if [ -v $u_c ]; then log "$C""ACCESS$W: Bridges2 (b) | Expanse (e) | Delta (d) | DeltaAI (dai)" log "$Y""Gatech$W: Phoenix (p)" log "$R""Caltech$W: Richardson (r)" - log "$BR""Brown$W: Oscar (o)" + log "$BR""Brown$W: Oscar (o)" + log "$BR""Purdue$W: Anvil (pa)" log "$B""DoD$W: Carpenter Cray (cc) | Carpenter GNU (c) | Nautilus (n)" log "$OR""Florida$W: HiPerGator (h)" log_n "($G""a$W/$G""f$W/$G""s$W/$G""w$W/$B""tuo$W/$C""b$W/$C""e$CR/$C""d/$C""dai$CR/$Y""p$CR/$R""r$CR/$B""cc$CR/$B""c$CR/$B""n$CR/$BR""o"$CR"/$OR""h"$CR"): " diff --git a/toolchain/modules b/toolchain/modules index d2169ad865..1885e54306 100644 --- a/toolchain/modules +++ b/toolchain/modules @@ -65,10 +65,18 @@ d-gpu MFC_CUDA_CC=80,86 o Brown Oscar o-all python -o-cpu hpcx-mpi python/3.13.10s +o-cpu hpcx-mpi python/3.13.5 o-gpu nvhpc cuda/12.3.0 cmake/3.26.3 o-gpu CC=nvc CXX=nvc++ FC=nvfortran +pa Purdue Anvil +pa-cpu gcc/11.2.0 +pa-cpu openmpi/4.1.6 +pa-cpu python/3.9.5 +pa-cpu fftw/3.3.8 +pa-cpu cmake/3.20.0 +pa-all PYTHONPATH="" + dai NCSA DeltaAI dai-all python cmake nvidia/25.5 dai-all CC=nvc CXX=nvc++ FC=nvfortran diff --git a/toolchain/templates/anvil.mako b/toolchain/templates/anvil.mako new file mode 100644 index 0000000000..3a9d7a4605 --- /dev/null +++ b/toolchain/templates/anvil.mako @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +<%namespace name="helpers" file="helpers.mako"/> + +% if engine == 'batch': +#SBATCH --nodes=${nodes} +#SBATCH --ntasks-per-node=${tasks_per_node} +#SBATCH --cpus-per-task=1 +#SBATCH --job-name="${name}" +#SBATCH --time=${walltime} +% if partition: +##SBATCH --partition=${partition} +% endif +% if account: +#SBATCH --account="${account}" +% endif +#SBATCH --output="${name}.out" +#SBATCH --error="${name}.err" +#SBATCH --export=ALL +% if email: +#SBATCH --mail-user=${email} +#SBATCH --mail-type="BEGIN, END, FAIL" +% endif +% endif + +${helpers.template_prologue()} + +ok ":) Loading modules:\n" +cd "${MFC_ROOT_DIR}" +. ./mfc.sh load -c pa -m ${'g' if gpu_enabled else 'c'} +cd - > /dev/null +echo + +% for target in targets: + ${helpers.run_prologue(target)} + + % if not mpi: + (set -x; ${profiler} "${target.get_install_binpath(case)}") + % else: + (set -x; ${profiler} \ + mpirun -np ${nodes*tasks_per_node} \ + "${target.get_install_binpath(case)}") + % endif + + ${helpers.run_epilogue(target)} + + echo +% endfor + +${helpers.template_epilogue()} diff --git a/toolchain/templates/oscar.mako b/toolchain/templates/oscar.mako index 223c0e6ae2..9fdc6831fa 100644 --- a/toolchain/templates/oscar.mako +++ b/toolchain/templates/oscar.mako @@ -6,6 +6,7 @@ #SBATCH --nodes=${nodes} #SBATCH --tasks-per-node=${tasks_per_node} #SBATCH --cpus-per-task=1 +#SBATCH --mem-per-cpu=4g #SBATCH --job-name="${name}" #SBATCH --time=${walltime} % if partition: @@ -42,7 +43,7 @@ echo (set -x; ${profiler} "${target.get_install_binpath(case)}") % else: (set -x; ${profiler} \ - mpirun -np ${nodes*tasks_per_node} \ + srun \ "${target.get_install_binpath(case)}") % endif