Infrastructure/software/easybuild

From Nordic Language Processing Laboratory
Revision as of 07:48, 8 July 2021 by Oe (talk | contribs) (Community Maintenance)
Jump to: navigation, search

Background

With support from the EOSC-Nordic project, the NLPL use case has created a blueprint for fully automated installation of the (software core of the) NLPL virtual laboratory using the EasyBuild framework. Full automation means that the exact same software environment, using the exact same versions and dependencies, will be locally compiled on each target system, with relevant hardware-specific local optimizations. This approach guarantees maximum reproducibility and replicability across different systems, including the Finnish Puhti and the Norwegian Saga (and soon Betzy) superclusters.

Usage Instructions

module use -a /projappl/nlpl/software/eb/modules/all
module avail
module use -a /cluster/shared/nlpl/software/eb/modules/all
module avail

Installation Instructions

git clone https://source.coderefinery.org/nlpl/easybuild.git
cd easybuild
./setup.sh
sbatch build.slurm easyconfigs/{system,mkl}/*.eb

Community Maintenance

The NLPL virtual laboratory is maintained collectively by a team of dedicated and enthusiastic experts from the NLPL partner sites, with Andrey Kutuzov (Oslo) as the chief cat herder. Once installed, a module never changes or is removed; instead, new modules are added to the collection.

To add a module to the virtual laboratory, it must be possible to install it using EasyBuild. This presupposes what is called an easyconfig, essentially the recipe for fetching sources, compilation, and installation using EasyBuild. The NLPL collection of easyconfigs is maintained on the Nordic GitLab instance at https://source.coderefinery.org/nlpl/easybuild. To contribute, please make contact with the NLPL infrastructure team at infrastructure@nlpl.eu.

To become a contributor, in addition to the above GitLab instance, users must have access to at least Puhti and Saga, where the infrastructure task force must grant them write privileges to the NLPL community directory.

Interactive Installations

While developing and testing a new easyconfig, it will often be more convenient to work interactively at the command line (rather than submit EasyBuild jobs through the queue system).

The configuration from the initial fully automated build of the NLPL virtual laboratory is preserved on each system, inside the .../software/eb/build/ directory, where the ... prefix is the root of the NLPL community directory, e.g. /projapp/nlpl/ on Puhti and /cluster/shared/nlpl/ on Saga.

module purge
source .../software/eb/build/config.sh
eb --show-config
eb --robot --dry-run new-module.eb