The ITSR team recommend most Apocrita users submit
job scripts
for multi-task workloads according to the default recommendations in our
documentation,
but some specific workloads need additional specifications in Slurm job scripts.
Our xlg nodes feature NVIDIA L40S GPUs, based on the Ada Lovelace
architecture. They are a cheaper alternative to the H200 GPUs but still offer
competitive performance depending on your scientific problem. In this blog post,
we will compare the A100, H200, and L40S GPUs to help you decide which one to
use for your jobs.
Don't use a notebook to do an HPC job-script's job, unless your notebook is also a
job-script. Marimo, an alternative to Jupyter, enables this, and also helps mitigate
some other common criticisms of notebooks. Through the magic of web-assembly,
it even allows your Python code to live rent-free in someone else's web browser.
Using Lyapunov fractals as a somewhat psychedelic example, we might as well
experiment with multiprocessing and shared memory along the way.
The ITSR support team will be making some changes to R and RStudio on Apocrita
in August 2026. Some action will be required by users, so please read the below
carefully.
The programming language C++ is still widely used today, especially for
high-performance computing. Out-of-date practices from the 80s and 90s should
still work now because the language is designed to be highly backwards
compatible. As C++ evolved, there were numerous efforts to modernise the
language and update programming practices with new features to improve the C++
experience, such as memory-safety features.
We have updated this post with answers to some common questions.
For the lifetime of the Apocrita HPC cluster, the queue scheduler software we
have been using to allocate jobs to individual compute nodes has been a variant
of Grid Engine. Over the past few years, the company who own this software has
changed hands a few times, and we feel that development has stagnated in terms
of features, while bugs have not been resolved to our satisfaction.
On Monday 3rd November 2025, we will be implementing a change to reduce the
maximum runtime for all Open OnDemand applications from 240 hours (10 days) to
24 hours.
Memory usage can be broadly simplified into two values: Virtual memory
(VMEM) which a program believes it has, and Physical memory (also known as
"Resident Set Size" or RSS for short), which is the actual amount of memory
it uses.
Hybrid programming allows you to program the majority of your software in your
favourite language but performance-critical parts in a faster language. With the
Python package CuPy, you can program CPU code in Python and
custom GPU kernel functions in CUDA. Thus, we can design our software with a
familiar Python interface but run faster GPU code under the hood.
CuPy also has GPU versions of existing NumPy functions which may help transition
your CPU code to the GPU without modifying your code too much. This may also
help structure your GPU code with familiar NumPy functions, making it readable
to many Python users.