Easybuild
TrinityX 15.2+ comes bundled with Easybuild. This means that TrinityX prepares the environment for Easybuild to build applications and libraries. The defaults are to use a dedicated user, typically user 'easybuild' which is being used for the actual building and compilation. Using root for building is not recommended and therefor not supported. The 'easybuild' user serves that purpose.
Search and build apps
Become the easybuild user:
# su - easybuild
Load the easybuild module:
$ module load EasyBuild
Search for specific app:
$ eb -S Pytorch
# Get output similar to this:
* $CFGS1/p/PyTorch/PyTorch-1.12.1-foss-2021a-CUDA-11.3.1.eb
* $CFGS1/p/PyTorch/PyTorch-1.12.1-foss-2021a.eb
* $CFGS1/p/PyTorch/PyTorch-1.12.1-foss-2021b-CUDA-11.5.2.eb
* $CFGS1/p/PyTorch/PyTorch-1.12.1-foss-2021b.eb
* $CFGS1/p/PyTorch/PyTorch-1.12.1-foss-2022a-CUDA-11.7.0.eb
* $CFGS1/p/PyTorch/PyTorch-1.12.1-foss-2022a.eb
* $CFGS1/p/PyTorch/PyTorch-2.6.0-foss-2024a.eb
Start compiling PyTorch-1.12.1-foss-2022a-CUDA-11.7.0.eb with a --robot flag to also install all required dependencies:
$ eb PyTorch-2.6.0-foss-2024a.eb --robot
Before installation, simulate a dry run to see all dependencies status:
$ eb PyTorch-2.6.0-foss-2024a.eb --robot --dry-run
For more flags and options, please refer to the Easybuild documentation.
Additional information
The Easybuild config templates can be found at either location:
- /opt/easybuild/easybuild.d/easybuild.cfg.example
- $EASYBUILD_PREFIX/easybuild.d/easybuild.cfg.example
Renaming this file to easybuild.cfg allows for further customization. After modification of the config, e.g. adding cuda capabilities, the modifications can be observed:
$ eb --show-config
Example output:
#
# Current EasyBuild configuration
# (C: command line argument, D: default value, E: environment variable, F: configuration file)
#
buildpath (E) = /opt/easybuild/build
containerpath (E) = /opt/easybuild/containers
cuda-compute-capabilities (F) = 9.0
installpath (E) = /opt/easybuild
packagepath (E) = /opt/easybuild/packages
prefix (E) = /opt/easybuild
repositorypath (E) = /opt/easybuild/ebfiles_repo
robot-paths (D) = /opt/easybuild/software/EasyBuild/5.1.2/easybuild/easyconfigs
rpath (D) = True
sourcepath (E) = /opt/easybuild/sources
sourcepath-data (E) = /opt/easybuild/sources