Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

Introduction

EasyBuild is a framework for building and managing software on HPC systems. It automates compiling, installing, and configuring scientific applications while handling dependencies, toolchains, and environment modules.

A key feature is easyconfig files — text-based receipts that define build parameters, dependencies, versions, and toolchains. By using these receipts, EasyBuild installs software along with all its dependencies, ensuring a consistent, reproducible, and optimized HPC software environment.

How it works? The dependency resolution mechanism constructs a full dependency graph for the software package(s) being installed, after which a list of dependencies is composed for which no module is available yet. Each of the retained dependencies will then be built and installed, in the required order as indicated by the dependency graph.

This page shows how to install IMAS ecosystem using EasyBuild. The installation will be performed on the Gateway cluster but it can be done anywhere.

...

Code Block
languagetext
titleclone repo
export ROBOT_PATHS=`pwd`/all_iter


Info

 --robot/-r command line option enables dependency resolution

Prepending or appending to the default robot search path is supported via the --robot-paths configuration option.

To prepend one or more paths, a list of paths followed by a ‘:’ should be specified.

Analogously, to append one or more paths, a list of paths preceded by a ‘:’ should be specified.

See EasyBuild documentation for details


To enable dependency resolution, use the --robot command line option (or -r for short):


https://mdc-easybuild.readthedocs.io/en/latest/Using_the_EasyBuild_command_line.html#enabling-dependency-resolution-robot-r-and-robot-pathsRemember to change the --robot and pass paths to your  and TBD  directories. 


Searching for receipts

EasyBuild needs a receipt to install any software component. The following command can be used to look for receipts:

Code Block
eb --search <software_name> --robot-paths=$ROBOT_PATHS


A <software_name>  could be only part of the name being searched. Additionally EasyBuild search is case insensitive. E.g. "dox"  string can be provided while looking for "Doxygen" 

Code Block
shell> eb --search dox --robot=$ROBOT_PATHS

== found valid index for /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs, so using it...
 * /afs/eufus.eu/user/g/g2bpalak/work/easybuild/all_iter/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
 * /afs/eufus.eu/user/g/g2bpalak/work/easybuild/all_iter/Doxygen/Doxygen-1.13.2-GCCcore-13.2.0.eb
...
 * /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
 * /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb  

Usually receipt consist of name uses following syntax:

Code Block
<software name>-<software version>-<toolchain>-<toolchain version>

e.g.:
Doxygen-1.9.8-GCCcore-13.2.0.eb


Installation of software components

Code Block
languagebash
titleIMAS
eb IMAS-AL-Cpp/ <receipt name>.eb --allow-modules-tool-mismatch --robot=$ROBOT_PATHS

e.g.:
eb IMAS-AL-Cpp-5.2.0dev-foss-2020b-DD-3.40.1.eb --allow-modules-tool-mismatch --robot=$ROBOT_PATHS 

...

  • Clone repo with easyconfigs: TBD
  • Run installation: 
    Code Block
    eb ./ebfiles_repo/IMAS/IMAS-3.42.0-2024.08.1-foss-2023b.eb --allow-modules-tool-mismatch --robot=<path_to_ebfiles_repo>  --accept-eula-for=Intel-oneAPI
    eb ./ebfiles_repo/IMAS/IMAS-3.42.0-2024.08.1-intel-2023b.eb --allow-modules-tool-mismatch --robot=<path_to_ebfiles_repo> --accept-eula-for=Intel-oneAPI

How to use IMAS

After installation you can load IMAS  modules i.e:

...

--installpath-modules=/gw/swimas/easybuild/etc --use-existing-modules --ignore-checksums

Installation of the 'production'

...

software

To install the 'production' version of IMAS ecosystem, a few extra options have to be added to point out EB to the dedicated public directory /gw/swimas/easybuild  

...