feat: add README, slurm-run and HPL example

This commit is contained in:
Jonas Juselius
2025-09-22 10:04:29 +02:00
parent 2be57345f8
commit 7986625553
6 changed files with 118 additions and 35 deletions

37
HPL/HPL.dat Normal file
View File

@@ -0,0 +1,37 @@
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out output file name (if any)
6 device out (6=stdout,7=stderr,file)
1 # of problems sizes (N)
161664 Ns
1 # of NBs
192 NBs
0 PMAP process mapping (0=Row-,1=Column-major)
1 # of process grids (P x Q)
8 Ps
16 Qs
16.0 threshold
1 # of panel fact
2 PFACTs (0=left, 1=Crout, 2=Right)
1 # of recursive stopping criterium
4 NBMINs (>= 1)
1 # of panels in recursion
2 NDIVs
1 # of recursive panel fact.
1 RFACTs (0=left, 1=Crout, 2=Right)
1 # of broadcast
1 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 # of lookahead depth
1 DEPTHs (>=0)
2 SWAP (0=bin-exch,1=long,2=mix)
64 swapping threshold
0 L1 in (0=transposed,1=no-transposed) form
0 U in (0=transposed,1=no-transposed) form
1 Equilibration (0=no,1=yes)
8 memory alignment in double (> 0)
##### This line (no. 32) is ignored (it serves as a separator). ######
0 Number of additional problem sizes for PTRANS
1200 10000 30000 values of N
0 number of additional blocking sizes for PTRANS
40 9 8 13 13 20 16 32 64 values of NB

25
HPL/hpl.run Executable file
View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
#SBATCH --array=1-20 -N1 --ntasks-per-node=128 --cpus-per-task=2
#xBATCH --ntasks-per-node=128
# export OMPI_MCA_pml_ucx_opal_mem_hooks=1
. /opt/bin/slurm-run.sh
# export OMPI_MCA_smsc=${OMPI_MCA_smsc:-"^knem"}
# export OMPI_MCA_osc=${OMPI_MCA_osc:-"sm,self"}
# export OMPI_MCA_osc=${OMPI_MCA_osc:-"^ucx"}
# export OMPI_MCA_pml=${OMPI_MCA_pml:-"^ucx"}
# export OMPI_MCA_btl=${OMPI_MCA_btl:-"self"}
# export UCX_TLS=sm,self,tcp
# export UCX_TLS=rc,ud,sm,self
# export UCX_TLS="ud_mlx5"
# export UCX_TLS="ud_verbs"
export UCX_LOG_LEVEL=${UCX_LOG_LEVEL:-warn}
echo "node: `hostname`"
cd /work/$USERS/hpl
run hpl.sif
# vim:ft=sh

17
README.md Normal file
View File

@@ -0,0 +1,17 @@
# Notes on Intel OneAPI and MPI
MCA = Modular Component Architecture
PML = Point-to-Point Layer
OSC = One-Sided Communication
BTL = Bit-Transfer Layer
SMSC = Shared Memory Single Copy
DSO = Dynamic Share Object
For info on available components and configurations, run within
`intel-obxkit-sdk.sif`:
```
/opt/pmix/bin/pmix_info
/opt/openmpi/bin/ompi_info
/opt/ucx/bin/ucx_info -d
```

View File

@@ -1,35 +0,0 @@
Bootstrap: localimage
From: intel-obxkit-sdk.sif
Stage: build
%files
/home/jonas/src/hpl-2.3.tar.gz /build/hpl-2.3.tar.gz
%post
cd /build
tar vfxz hpl-2.3.tar.gz
cd hpl-2.3
CC=icx MPICC=mpiicx ./configure
make -j
Bootstrap: localimage
From: intel-obxkit-runtime.sif
Stage: runtime
%environment
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app
%files from build
/build/hpl-2.3/testing/xhpl /app/xhpl
%runscript
/app/xhpl
%labels
Author jonas@juselius.io
%help
High-Performance LinPACK
https://www.advancedclustering.com/act_kb/tune-hpl-dat-file/
# vim:ft=singularity

39
slurm-run.sh Normal file
View File

@@ -0,0 +1,39 @@
# vim:ft=sh
set -e
export SINGULARITY_BINDPATH="${SINGULARITY_BINDPATH:-/work/$USER}"
mpi=${mpi:-pmix}
# export PMIX_MCA_mca_component_show_load_errors=1
export OMPI_MCA_osc=${OMPI_MCA_osc:-"ucx"}
export OMPI_MCA_pml=${OMPI_MCA_pml:-"ucx"}
export OMPI_MCA_btl=${OMPI_MCA_btl:-"self"}
# export OMPI_MCA_smsc=${OMPI_MCA_smsc:-"^knem"}
# export OMPI_MCA_pml_ucx_opal_mem_hooks=1
export UCX_PROTO_ENABLE=n
export UCX_PROTO_INFO=y
# export UCX_HANDLE_ERRORS="bt"
# export UCX_UNIFIED_MODE="y"
# fatal, error, warn, info, debug, trace, req, data, async, func, poll
# export UCX_LOG_LEVEL=${UCX_LOG_LEVEL:-warn}
export UCX_TLS=${UCX_TLS:-"dc,sm,self"} # use rc for nodes <= 4
run () {
if [ -z "$SLURM_SRUN_COMM_HOST" ]; then
if [ "$mpi" = "intel" ]; then
echo "mpiexec -n $SLURM_NTASKS $@"
mpiexec -n $SLURM_NTASKS $@
else
srun $@
fi
else
$@
fi
echo "done: $?"
}