Maguire

Maguire is a HPC cluster available to some Trinity Researchers. Funding was provided by Research Ireland.

Maguire contains 3 compute nodes with the following characteristics.

  • 8 NVIDIA H200 GPU's.
  • 96 cores, 2 by 48 core Intel Xeon Platinum 8468 CPU sockets.
  • 2TB of RAM.
  • 8 3.5TB NVME scratch disks.
  • 8 Mellanox ConnectX-7 InfiniBand adaptors.

To login to Maguire you use your Trinity computer account credentials.

To request access to Maguire please support Research IT Support: rit-support@tcd.ie. Research IT will request approval from the authorising parties for access requests.

Maguire is accessible from the College network, including the VPN. To login please connect to maguire01.tchpc.tcd.ie using the usual SSH instructions, your Trinity computer account username in the format username@COLLEGE.TCD.IE and your Trinity computer account password.

ssh -l usernam@COLLEGE.TCD.ie maguire01.tchpc.tcd.ie.

Ensure to replace username with your Trinity computer account username.

Software is installed with our usual modules system. You can view the available software with module av and load software with the module load ... command.

Running jobs must be done via the Slurm scheduler.

Batch job example parameters:

#!/bin/bash
#SBATCH -N 1
#SBATCH --gpus=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=32GB
#SBATCH --time=01:00:00

Interactive allocation examples.

salloc -N 1 --gpus=1 --cpus-per-task=8 --mem=32G --time=01:00:00
srun --jobid=$SLURM_JOBID --pty bash

See the HPC clusters usage documentation for further instructions.

Caveats and Warnings

Maguire is still in development and is not in stable service. It may be changed, taken off line or have access revoked for all or individual's with access without notice. Running jobs may be cancelled at any time without warning.

The file system is not backed up. It should not be relied upon to save data. Data saved to Maguire may be lost and should be saved elsewhere.

Not all services expected to be offered by the Cluster are available.

Software Stack

Multiple cuda versions

Status: Tested The gpu nodes have now (as of the 21-11-2025) cuda 13.0 installed by default (not sure if this is the base cuda SDK or the HPC Toolkit)

The cuda SDK version 12.9 can also be accessed in the gpu nodes with the usual set up in either the command line or setting up the .bashrc :

                export PATH=$PATH:/usr/local/cuda-12.9/bin
                export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.9/lib64

Status: Installed but untested Other versions we can easily install with spack (py-torch already installs 12.9.1)

cuda 12.2 runtime

Status: Installed but untested Has been installed as requested. To use, you can either use:

                $ module load cuda/12.2.2-none-none-soeglmb

Or:

                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load cuda@12.2.2

cuda 12.8 runtime

Status: Installed but untested Has been installed as requested. Instructions to use:

                $ module load cuda/12.8.1-none-none-bgo3i4m

Or:

                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load cuda@12.8.1

cuda 12.9 runtime

Status: Installed but untested Has been installed as well. Instructions to use:

                $ module load cuda/12.9.1-none-none-hhy4nk4

Or:

                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load cuda@12.9.1

nvidia-smi

Status: Tested nvidia-smi is not part of a cuda runtime but comes with the latest system wide install: Driver Version: 580.82.07 CUDA Version: 13.0

Intel Compilers

Status: Installed but untested We have installed intel oneapi 2025.2.1. Instructions to use:


                $ . /lustre/disk/home/support/intel/oneapi-2025.2.1.044/setvars.sh

Python

Status: Tested

The system comes with python3.11 and python3.9. On top of that:

Python 3.12.12

Status: Installed but untested

Python 3.12.12 has been installed as requested by Yuelai Xin. Instructions to use:


                $ module load python/3.12.12-gcc-11.5.0-6kjbece

Or:


                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load python@3.12.12

Python 3.8

Status: Installed but untested

This is difficult to set up because 3.8 is fairly old and modern compilers refuse to compile it. The best way to do it was to create a conda environment with it:

                $ module load miniconda3/25.5.1-none-none-kg3fpfc

Or:

                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load miniconda3

Then:


                $ conda create -n python38-test-env python=3.8
                $ conda activate python38-test-env

R

Status: Installed but untested

If earlier versions are needed, we should be able to install them as well.


                $ module load r/4.5.1-gcc-11.5.0-n5cpcbq

Or:


                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load r@4.5.1

Pytorch

Status: Installed but untested

The recommended way of installing pytorch is by installing and running it with conda. It is actually installed as a dependency of torchvision (see below).


                $ module load miniconda3/25.5.1-none-none-kg3fpfc

Or:


                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load miniconda3

Status: Installed but untested

We have also installed 2.9.0 system wide. It can be loaded in the following way:


                $ module load py-torch/2.9.0-gcc-11.5.0-onbtsjm

Or:


                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load py-torch@2.9.0

There is a potential problem with this install at the moment: By default it uses openmpi 5.0.9. This needs slurm to use pmix to run in multiple nodes; at the moment HPE added pmix. Once they upgrade SLURM from 24.11.6 to slurm 25.05.4 and add pmix, that should fix it and we should be able to run pytorch across multiple nodes without problems.

Tensorflow

Status: Installed but untested

We have installed tensorflow 2.20.0 on miniconda - this seems to be the way recommended suggested in the Tensorflow documentation

                $ module load miniconda3/25.5.1-none-none-kg3fpfc

Or:

                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load miniconda3

Still working on a system wide install, spack seems to be freezing when I try to spack install it with cuda support.

Recommended version is 2.20.0, but installing earlier versions with spack should be easy if we get it to work

There are a few other packages that we could also easily install if they are needed: py-tensorflow-datasets, py-tensorflow-estimator, py-tensorflow-hub, py-tensorflow-metadata and py-tensorflow-probability

llama.cpp

CPU version Status: Installed but untested

Downloaded the source code and compiled. Left a copy in:


                    /lustre/disk/home/support/apps/llama.cpp/

The binaries are in:


                    /lustre/disk/home/support/apps/llama.cpp/build/bin/

Once the user has confirmed that it is working properly, we can build a module for easier usage.

Surprisingly enough, the default version od llama.cpp does not seem to use the GPU - I'll try to compile additional versions so the users can run either of them. The GPU version will probably be the fastest, but having the option of running on the CPU if the GPUs are being used could be useful. We can keep multiple builds in different folders in /home/support/support/apps/llama.cpp-version/

GPU version Status: Installed but untested

Downloaded the source code and compiled. Left a copy in:


                    /lustre/disk/home/support/apps/llama.cpp_-_CUDA/

Docker

Status: Installed but untested

Seán has installed Apptainer apptainer usage

Conda

Status: Tested

The system wide of miniconda worked, see below.


                $ module load miniconda3/25.5.1-none-none-kg3fpfc

Or:


                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load miniconda3

To be installed:

We could also set a system wide install of anaconda that all users get by default (as in automatically set up their .bashrc).

There could be an issue with Conda's Terms of Service? "Use of Anaconda’s offerings at an organization of more than 200 employees/contractors requires a paid business license unless your organization is eligible for discounted or free use"

Conda packages

I installed a system wide miniconda and tested that I could pip or conda install the following packages:


                $ . /lustre/disk/home/support/spack/1.1.0/share/spack/setup-env.sh
                $ spack load miniconda3

The list of installed packages can be seen with


                $ conda list

Jupiter Notebooks

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user jupyterlab

Then:

Run jupyter in maguire01: jupyter notebook --ip 0.0.0.0 --port=8888

Port forward, from your own computer run: ssh -N -L 8080:maguire01.tchpc.tcd.ie:8888 UESRNAME@maguire01.tchpc.tcd.ie

Note: ensure to replace USERNAME with your usename

Point your browser to:


http://127.0.0.1:8080/

To quit jupyter notebooks: 1) on astro: CTRL C in the terminal running it 2) close your browser 3) quit the port forwarding ssh session, CTRL C in that terminal or closing it should do.

Pytorch lightning

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user lightning

Torchvision

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user torchvision

Hugging Face Libraries

Status: Installed but untested

Users should be able to install their preferred version via pip with dependencies:


                $ pip install --user 'huggingface_hub[cli,torch]'

Numpy

Status: Installed but untested

Users should be able to install their preferred version via conda:


                $ pip install --user numpy

SciPy

Status: Installed but untested

Installed but untested

Users should be able to install their preferred version via conda:


                $ pip install --user scipy

Pandas

Status: Installed but untested

Users should be able to install their preferred version via conda:


                $ pip install --user pandas

xgboost

Status: Installed but untested

Users should be able to install their preferred xgboost version by running:


                $ pip install --user xgboost

cudaML

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user "cudf-cu13==25.10.*" "cuml-cu13==25.10.*"

Braindecode

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user braindecode

Braindecode can also be installed along MOABB to download open datasets:


                $ pip install --user moabb

Skorch

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user -U skorch

And it turned out it was already installed by a previous package! It seems to be a dependency for braindecode

Captum

Status: Not Installed

Not installed, left to the users to install in their own environments. They should be able to install their preferred version via pip:


                $ pip install --user captum

Captum seems to have dependencies that differenciate it from other packages. It requires numpy-1.26.4 while other packages use numpy-2.2.6.dist-info. Hence, we recommend for the user to install it in a different conda environment than other packages to prevent incompatibilities with numpy

MNE

Status: Installed but untested

It is installed as part of numpy:

                  >>> import numpy as np
                  >>> import mne

scikit-learn

Status: Installed but untested


            $ pip3 install --user -U scikit-learn

pyedflib

Status: Installed but untested

Users should be able to install their preferred version via pip or conda


                $ pip install --user pyEDFlib

Matplotlib

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user matplotlib

When I tried, it turned out that it was already installed by another package.

Seaborn

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user seaborn

When I tried, it turned out that it was already installed by another package.

Joblib

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user joblib

When I tried, it turned out that it was already installed by another package.

MLFlow

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user mlflow

When I tried, it turned out that it was already installed by another package.

HDF5 - python

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user h5py

When I tried, it turned out that it was already installed by another package!

Ollama

Status: Installed but untested

Users should be able to install their preferred version via pip:


                $ pip install --user ollama

TO DO

VS code

Status: To be installed

There are deb, rpm, tar anc cli files; this looks like it will have to be handled by the sysadmins