Spack provides prebuild modules for all users on HPCFS. Specific module builds are listed below. We restric our builds to RHEL8.4 provided compiler GCC@8.5.0 in order to provide haswell
and rome
CPU compatibility (arch=zen) for system provided layer (SLURM, UCX, knem).
Higher version GCC compilers are used on ROME with zen2 (avx2) compatibility across rome
and haswell
partitions, while AOCC compilers are intended just for AMD rome
partition.
It is also possible to use modules locally for your own use by setting up the following configurations for local build and deployment.
Run source in active bash or add source line in your .bashrc profile file
source /opt/spack/share/spack/setup-env.sh
Hardware locality detects CUDA with the latest version since it is not used for computing but rather detection. Cuda provides OpenCL devices. NVML is provided by NVIDIA drivers and can't be part of hwloc since only few gpu nodes provides drivers and corresponding libnvidia-ml.so.1
library.
The rest of locality info are provided through ubus and pci.
Process managment interface is used by SLURM and OpenMPI.
To provide a chained compilation with input specification propagated by hash of the build (e.g. /gg2gaiz)
Slurm includes PMIX module with hwloc and PMI2 provided internally.
OpenMPI is build on top of SLURM, PMIX.
UCX fabrics with knem is provided externally as part of Mellanox OFED HPC build. To sumarize these .spack/packages.yml
For various compilers slurm concretization is applied with the above defaults.
Compiling and running OpenMPI with srun requires PMIX
Wrapper mpirun
is not built by default anymore with OpenMPI.
You should use srun --mpi=pmix
instead. See http://hpc.fs.uni-lj.si/slurm examples.
There are also AOCC compiled OpenFOAM modules but it seems that not all utilities are compiled due to incompatibility or compiler detection.
Sample OpenFOAM batch script can be
or
Built for Intel and gcc compiler
spack spec -I amdscalapack%aocc ^openmpi/43vdsd3
spack spec -I mumps%aocc ^amdscalapack/g4eckyd
spack spec -I petsc%intel ^amdscalapack/g4eckyd
spack spec -I petsc%intel +mkl-pardiso+scalapack+valgrind ^openmpi/hovu6pi
According to AMD developer instructions the benchmark should be:
spack spec -I stream%aocc+openmp cflags="-mcmodel=large -DSTREAM_TYPE=double -mavx2 -DSTREAM_ARRAY_SIZE=260000000 -DNTIMES=10 -ffp-contract=fast -fnt-store"
spack install paraview+mpi+qt ^openmpi/nezrdtx ^mesa@21.3.8
ha7jdza
spack install paraview+mpi+qt+python3 ^openmpi/nezrdtx ^mesa@21.3.8
vtzd4lz
spack spec fenics-dolfinx ^openmpi/ip5xqcx
spack install gmsh%gcc ^openmpi/nezrdtx
HPCFS
spack