UAntwerp Software instructions#
Searching for installed software#
After logging in, the calcua/all module will be loaded automatically.
This will let you search through all (centrally) installed software using the
module command’s search capabilities.
Recommended Once you have found the specific software module you would like
to use, load the corresponding version-specific calcua module.
This will also restrict your next searches and module loads to modules in the same
version of the software stack, which avoids compatibility errors.
- Example Loading a module
To load the GCC module, you can execute the following commands.
module purge module load calcua/2023a module load GCC/12.3.0
There are three commands to search for a module:
- Search in the list of activated modules
Activated modules are modules that can be loaded without first loading another
calcuamodule.module av Python
will search for an activated module whose name or version string contains
Python.
- Search in the list of all available modules
This search also includes modules that require loading other modules first.
module spider Python
If you need more information about the module, including which modules you might need to load, you can also use
module spiderusing a specific module version.The explanation given about the module(s) that need to be loaded, can be a bit confusing. You have to take only one line from the output and load all modules on that line.
- Example Using
module spiderwith a version If you want more specific information on
Python/3.11.3-GCCcore-12.3.0, you can use$ module spider Python 3.11.3-GCCcore-12.3.0 ----------------------------------------------------------------- Python: Python/3.11.3-GCCcore-12.3.0 ----------------------------------------------------------------- Description: Python is a programming language that lets you work more quickly and integrate your systems more effectively. You will need to load all module(s) on any one of the lines below before the "Python/3.11.3-GCCcore-12.3.0" module is available to load. calcua/2023a calcua/all
In this case, it suffices to first load either
calcua/2023a, orcalcua/all: it is not required to load both.
- Example Using
- Search through the whatis-information
Each module also contains a limited amount of additional information that can be shown with the
module whatiscommand, e.g.module whatis Python/3.11.3-GCCcore-12.3.0
You can search through this ‘whatis’-information of installed modules using
module keywordmodule keyword CMake
If you did not find the software you want to use, please do not hesitate to contact the UAntwerp support team at hpc@uantwerpen.be.
Installing your own software#
Installation directories#
Additional packages or software distributions should be installed on VSC_DATA or VSC_SCRATCH, depending on the circumstances.
UAntwerp Users with a vsc2xxxx account
When working on the UAntwerp clusters, VSC_DATA is a local file system for you. We expect that for Python packages (and similarly for R and Perl), VSC_DATA will give better performance than VSC_SCRATCH due to the amount of file metadata accesses that occur when running Python.
Example To install the
sphinxPython package, you can use the following commandpip install --prefix=${VSC_DATA}/python_lib sphinx
VUB UGent KU Leuven Users with a different home institution
VSC_DATA is a file system at your local institution. Due to the distance between our clusters and your home institution, file access to VSC_DATA will have a high latency.
Installing the packages that you need locally on VSC_SCRATCH will give much better performance.
EasyBuild#
If the package you like to install is supported by EasyBuild, you can modify (if needed) and use an existing build script or easyconfig. We offer a helper script to setup an Easybuild environment.
$ source init-easybuild-user.sh
This script loads the easybuild module and sets some of the respective environment variables. It also makes the personal modules available to the current session by adding them to the module path.
By default, your personal installation directory is ${VSC_DATA}/easybuild unless you specify otherwise by
setting EASYBUILD_PREFIX before running the script. The installation directories will be further organized in
subdirectories of the form cluster-arch-os: ${VSC_INSTITUTE_CLUSTER}-${VSC_ARCH_LOCAL}-${VSC_OS_LOCAL}.
See also
How to use EasyBuild to install supported software: EasyBuild documentation
Python packages#
The preferred method of installing additional Python packages on the UAntwerp cluster is using pip, easy_install
or python setup, depending on what the package supports. This does require that all non-Python and in
some cases Python dependencies are already installed (and loaded). However, it makes maximum use of what is already
installed on the systems, with a minimal number of additional files.
See also
For more detailed instructions on how to install additional python packages using pip, see Python package management.
Warning
Like with Conda, when you install from binaries available on PyPi, they will likely not be optimized for the specific CPUs on our system. Moreover, not all binary wheels are compatible with the Linux version that we use. The CalcUA support team always tries to compile packages from source using up-to-date compilers and only uses binary wheels when nothing else works in a reasonable time.
Conda#
We discourage the use of Conda-variants for various reasons. It should only be used if nothing else works.
Conda installations avoid using libraries already present on the system, effectively installing their own Linux distribution in the Conda directories. As such they consume a lot of disk space and can put a high load on the file system. Expect slower performance just because of that already.
As Conda effectively installs its own upper layers of a Linux/GNU-system and doesn’t use security-sensitive libraries from our system, it is up to you to keep it secure by frequently updating. This is particularly important for those packages that make connections of the internet. If you’re not using any of these, this does not need to be a big concern.
The Conda repositories contain a mix of very well optimized binary packages and packages that are not optimized for modern CPUs. In some cases, multiple versions are available, but as a Conda user you need to be well aware of where to find these. As an example, the Intel Python distribution with properly optimized NumPy, SciPy and a few other performance-critical packages is also available via Conda.
The generic CPU that is used for binaries that should run on everything is usually an ancient Pentium 4 or Core CPU. For some code, e.g., dense linear algebra and FFT, using the newer instructions of more recent processors can give a big speed boost for those routines, up to a factor 4 on Leibniz and Vaughan and up to a factor of 7 or so on the Skylake partition of the previous Tier-1 cluster BrENIAC.
If you do need to use conda, you should wrap it in a container. This way we can at least mitigate the stress on the filesystem of a standard conda installation due to the creation of many small files. See hpc-container-wrapper to build one from an existing conda environment.yaml file, or Containers on the HPC systems to build the container yourself.
hpc-container-wrapper#
hpc_container_wrapper is a tool that helps you create an
Apptainer image and provides wrapper scripts to call executables within the container environment. To containerize
your conda environment with hpc_container_wrapper, you need your conda environment file environment.yaml.
This is a reproducible collection of packages, dependencies, and channels. Here is an example of such a file:
# environment.yaml
name: bsoup4
channels:
- conda-forge
dependencies:
- beautifulsoup4
- ...
To create the container in the directory $VSC_SCRATCH/containers/bsoup:
$ module load hpc-container-wrapper
$ conda-containerize new --prefix "$VSC_SCRATCH/containers/bsoup" environment.yaml
You can now use your containerized installation by prepending your path:
$ export PATH="$VSC_SCRATCH/containers/bsoup/bin:$PATH"
$ which python
$VSC_SCRATCH/containers/bsoup/bin/python
If you still miss packages, you can update the container with a post-install script:
$ echo 'conda install -c bioconda pyfaidx' > post.sh
$ conda-containerize update --post-install post.sh "$VSC_SCRATCH/containers/bsoup"
See also
For the general use of Apptainer (without hpc_container_wrapper), see Containers on the HPC systems.