Versions Compared

Key

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

...

In 2021, HPC staff commenced a major project to replace all existing software (including conda environments) with containerized versions of the same software and/or environments.  The container delivery platform being using is Apptainer (singularity) which mirrors the approach that all other HPC facilities are using or moving toward using.  The move to containerized HPC is being driven by a requirement for all research to be done in a reproducible way.

Expand
titleNon-reproducibility reproducibile? (examples)

For security reasons, all software installed as part of the OS must be kept up to date.

  • This has potential to impact your computational research results.
  • Most researchers would be unaware of the behind the scenes changes or what impacts they might have had.
  • It would be nigh on impossible for me to recreate the state of HPC cluster software operating systems at any nominated point in time.

Software installed using the traditional, compile from source, method comes with serious consequences to reproducible research.

  • Such installs usually result in a software environment with a potentially very large number of unknown dependencies.
  • Once again, this makes it nigh on impossible to reproduce at a later date.

Operating system vendor release operating systems and software will a defined lifecycle.

...

and software providers release software with a defined lifecycle.

  • When RedHat Enterprise Linux 6 (RHEL6) went end of life, we moved to RHEL7.  All software had to be recompiled/reinstalled.
  • Obtaining a copy of RHEL6 would be very difficult.  Being given security clearance to use it would be even more difficult.
  • After python 2 hit end of life a few environments that required python 2, indirectly, could not be reinstalled (dependency not available).

In many cases, the above points mostly relate to risk of work not being reproducible.  Moving to containerized delivery of software provides a guarantee of reproducibility, assuming that the container platform continues to be available and supported.

Environment Modules Cheat Sheet.

Information Requests

You will need to replace any occurrence of <software-name> and/or <version> below with an appropriate name/value.

...

Code Block
titleListing all available software

...

noformat
module avail

...


Code Block
titleListing all versions of a given piece of software
No Format
module avail <software-name>

...


# A partial match will be sufficient.


Code Block
titleDisplay a brief summary

...

about a given piece of software

...

noformat
module help <software-name>


Code Block
titleFind out how your environment will change after loading a module
module helpshow <software-name>

...

/<version>
# For apptainer based software, you will see aliases that have been created for ease of use.


Code Block
titleList environment modules that have been loaded already

...

No Format
module list

To load the default version of a piece of software

No Format
module load <software-name>

The default version of a piece of software will usually be a safe (rather than latest) version.

To load a specific version of a piece of software

...

Modification of your environment (paths & aliases)

You will need to replace any occurrence of <software-name> and/or <version> below with an appropriate name/value.

Code Block
titleTo enable your access to a specific software environment
module load <software-name>/<software-version>

...

<version>
# Omission of "/<version>" will result in the default version (changes over time) being loaded.
# Note that the default version may be the "safest", rather than the latest, version.


Code Block
titleTo switch to use of another version of the same piece of software
No Format
module switch <software-name>/<software-version>

To list changes that would be (or have been) made to your environment from loading a specific module

No Format
module show <software-name>/<software-version><version>


Code Block
titleTo unload a module you

...

previously loaded

...

noformat
module unload <software-name>

...


# The specification of a version shouldn't be required

...

.


Code Block
titleTo unload all

...

noformat
modules you previously loaded
module purge

Information

...

for researchers using conda environments

Environment module files for conda environments have been removed, since discovery of a few conda environments that couldn't be reinstalled.   After you issue the command

No Format
module load vcftools
echo $VCFTOOLS_HOME
ls -lR $VCFTOOLS_HOME

...

conda3

you will be able to use the conda command to list environments available.

Notes for future

Conda environments will not be available on future HPC platforms.

There is increasing pressure to move HPC workloads into the public cloud.  Reliance on in-house HPC infrastructure will decrease with time.

It's possible that HPC will be directed to implement a NOEXEC option on all user filesystems, which would mean software you have installed yourself will not be executable.  I would hope that there is a documented security vetting process prior to such a directive being given to us.  We have had a request for implementation of such an option in the past but chose not to take any action (there was no directive).