We distribute Clustering.yml runs with different backends.
Clustering_conda.yml. Conda semi-reproducible (no pinning, pip)Clustering_oras.yml. Singularity non- to semi-reproducible, prebuilt remote images.Clustering_envmodules.yml. Easybuilt with default optimization. Can be built extending EESSI.
clustbench.ymlfcps.yml
No need to ob software conda pin / prepare; let ob run benchmark -b Clustering_conda.yml --local do it.
clustbench_singularity.deffcps_singularity.def
build_singularity.sh
apptainer push --docker-username janedoe --docker-password glpat-uzh fcps.sif oras://registry.renkulab.io/izaskun.mallona/clustering_example/name:tag
No need to prepare/build anything; let ob run benchmark -b Clustering_oras.yml --local do it using pre-built images from https://gitlab.renkulab.io/izaskun.mallona/clustering_example/container_registry.
It will take time (even days).
eb --robot fcps.eb --job-cores=10
eb --robot clustbench.eb --job-cores=10Exteding EESSI 2025.06. cernvmfs has to be installed and EESSI configured.
Install CVMFS and mount EESSI: follow https://www.eessi.io/docs/getting_access/native_installation/ .
Extend EESSI with the extra packages needed to run clustbench via Easybuild. Docs.
These snippets are very verbose and tailored to omnibenchmark the machine (robinsonlab).
echo "Install cvmfs and mount EESSI; no instructions given here"
echo "Load latest EESSI"
source /cvmfs/software.eessi.io/versions/2025.06/init/lmod/bash
module load EESSI-extend/2025.06-easybuild
echo "Configure eb"
export EASYBUILD_PREFIX=path_to_your_installations_update_here
#export EASYBUILD_PREFIX=/data/imallona/.local/easybuild ## RAID-6 in my case
export EASYBUILD_INSTALLPATH=$EASYBUILD_PREFIX/software
export EASYBUILD_BUILDPATH=$EASYBUILD_PREFIX/build
# export EASYBUILD_BUILDPATH=/opt/cache/imallona/build ## SSD in my case
export EASYBUILD_REPOSITORYPATH=$EASYBUILD_PREFIX/ebfiles_repo
export EASYBUILD_SOURCEPATH=$EASYBUILD_PREFIX/sources
export EASYBUILD_PACKAGEPATH=$EASYBUILD_PREFIX/packages
echo "Configure temp path"
mkdir -p $HOME/tmp
export TMPDIR=$HOME/tmp
eb --robot fcps.eb --job-cores=10
eb --robot clustbench.eb --job-cores=10Running a benchmark assuming the modules were installed within the MODULE_BASEPATH/software/modules/all path (perhaps MODULE_BASEPATH equals $EASYBUILD_PREFIX):
# during a debugging session, this was `/home/mark/envmodules_debug/.local/easybuild/`
MODULE_BASEPATH='updateme'
source /cvmfs/software.eessi.io/versions/2025.06/init/lmod/bash ## if not loaded
module load EESSI-extend/2025.06-easybuild ## if not loaded
export MODULEPATH="$MODULE_BASEPATH"/software/modules/all:"$MODULEPATH"
module use $MODULEPATH
echo $MODULEPATH
# during a debugging session, the resulting $MODULEPATH contained both the MODULE_BASEPATH and EESSI's injections
# /home/mark/envmodules_debug/.local/easybuild/software/modules/all:/home/mark/eessi/versions/2025.06/software/linux/x86_64/amd/zen2/modules/all:/cvmfs/software.eessi.io/host_injections/2025.06/software/linux/x86_64/amd/zen2/modules/all:/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/modules/all:/cvmfs/software.eessi.io/versions/2025.06/init/modules
ob run benchmark -b Clustering_envmodules.yml --local-storage --cores 30