Software
Operating System¶
The KTA Computer System runs on AlmaLinux 9, a Linux distribution that is binary compatible with Red Hat Enterprise Linux (RHEL) and is officially supported by CERN.
System-Wide Software¶
The AlmaLinux software repositories contain a wide variety of scientific software that is available on all machines without any additional setup. This includes, among others:
gccandclang— C/C++ compilerspython— Python interpreterROOT— CERN data analysis frameworkgit,make,cmake— build and version control tools
This list is not exhaustive. If a package you need is missing, you can request its installation by writing to ktas
Compiling Software from Source¶
If a package is not available through the system repositories, Spack, or conda, you can always compile it from source and install it into a directory you own. This gives you full control over the version and build configuration.
Below is a worked example using ROOT, the CERN data analysis framework. The same general pattern — clone, configure with CMake, build, install — applies to most other CMake-based projects.
Example: Building ROOT from source¶
1. Clone the source
git clone https://github.com/root-project/root.git --branch latest-stable --depth=1Using --depth=1 skips the full commit history and makes the clone much faster. Replace latest-stable with a specific tag (e.g. v6-32-06) if you need a particular version.
2. Create a build directory
Always build out-of-source to keep the source tree clean:
mkdir root-build && cd root-build3. Configure with CMake
cmake ../root \
-DCMAKE_INSTALL_PREFIX=$HOME/software/root \
-Dbuiltin_xrootd=ON \
-Dmathmore=ON \
-DCMAKE_BUILD_TYPE=ReleaseCMAKE_INSTALL_PREFIX sets where ROOT will be installed. Using a path inside your home directory (or a larger storage volume) avoids the need for administrator privileges. Run cmake -L ../root to see a full list of available build options.
4. Compile and install
cmake --build . --parallel $(nproc)
cmake --install .$(nproc) uses all available cores. If you are compiling on a terminal server, be considerate of other users and limit the core count, e.g. --parallel 8. For large builds like ROOT it is better to run this step as an interactive job on a compute node (see Interactive Jobs).
5. Set up the environment
After installation, source the ROOT environment script to make root, rootcling, and the associated libraries available in your shell:
source $HOME/software/root/bin/thisroot.shTo load ROOT automatically in every new shell session, add this line to your $HOME/.bashrc.
Anaconda¶
Anaconda is a widely used Python distribution for scientific computing. It ships with conda, a combined package and environment manager. A global Anaconda installation is available on all machines in the cluster — no personal installation is required.
Activating the base environment¶
To enter the shared conda environment, run:
source /opt/anaconda3/bin/activateYour prompt will change to indicate you are now inside the base environment:
(base) [ga45can@nidoking ~]$Creating a personal environment¶
From within base, create and use your own environment:
conda create -n MyAwesomeDevEnv
conda activate MyAwesomeDevEnv
conda install tensorflow rootYou can verify the installation as expected:
(MyAwesomeDevEnv) [ga45can@nidoking ~]$ which root
/MyAwesomeDevEnv/bin/root
(MyAwesomeDevEnv) [ga45can@nidoking ~]$ python -c "import tensorflow as tf; print(tf.__version__)"
2.6.2Recommended configuration¶
We recommend creating a $HOME/.condarc file with the following settings:
channels:
- conda-forge
- defaults
channel_priority: strict
envs_dirs:
- /path/outside/your/home/directorySetting conda-forge as the primary channel also significantly expands the range of available packages.
Spack¶
Spack is a package manager designed for HPC environments. It allows multiple versions of the same package to coexist and handles complex dependency trees — making it well suited for scientific software stacks.
Activating Spack¶
To make the spack command available in your shell, run:
source /tank1/spack/spack/share/spack/setup-env.shYou can search the full list of packages supported by Spack here.