This is an old revision of the document!
<title> How our clusters work </title>
We expect the HPC clusters users to know what an HPC cluster is and what parallel computing is. As all HPC clusters are different, it is important for any users to have a general understanding of the clusters they are working on, what they offer and what are their limitations.
This section gives an overview of the technical HPC infrastructure and how things work at the University of Geneva. More details can be found in the corresponding sections of this documentation.
The last part of this page gives more details for advanced users.
The University of Geneva owns two HPC clusters or supercomputers : Baobab and Yggdrasil.
As for now, they are two completely separated entities, each of them with their own private network, storage, and login node. What is shared is the accounting (user accounts and job usage).
Choose the right cluster for your work:
You can't submit jobs from one cluster to the other one. This may be done in the future.
Boabab is physically located at Uni Dufour in Geneva downtown, while Yggdrasil is located at the Observatory of Geneva in Sauverny.
cluster name | datacentre | Interconnect | public CPU | public GPU | Total CPU size | Total GPU size |
---|---|---|---|---|---|---|
Baobab | Dufour | IB 40GB QDR | ~900 | 0 | ~4200 | 95 |
Yggdrasil | Astro | IB 100GB EDR | ~3000 | 44 | ~4308 | 52 |
Each cluster is composed of :
$HOME
and for the scratch data ($HOME/scratch
).All those servers (login, compute, management and storage nodes) :
In order to provide hundreds of software and versions, we use EasyBuild / module. It allows you to load the exact version of a software/library that is compatible with your code. Learn more about EasyBuild/module
When you want to use some cluster's resources, you need to connect to the login node and submit a job
to Slurm which is our job management and queuing system. The job is submitted with an sbatch
script (a Bash/shell script with special instructions for Slurm such as how many CPU you need,
which Slurm partition to use how long your script will run and how to execute your code).
Slurm will place your job in a queue with other users' jobs, and find the fastest way to provide the
resources you asked for. When the resources are available, your job will start.
Learn more about Slurm
One important note about Slurm is the concept of partition. When you submit a job, you have to specify a partition that will give you access to some specific resources. For instance, you can submit a job that will use only CPU or GPU nodes.
Research groups can buy “private” nodes to add in our clusters, which means their research group has a private partition with a higher priority to use those specific nodes (less waiting time) and they can run their jobs for a longer time (7 days instead of 4 for public compute nodes).
Rules:
See the partitions section to have more details about the integration of your private node in the cluster.
Current price for a compute node is:
– AMD –
– Intel –
– GPU A100 with AMD –
– GPU RTX3090 with AMD –
Right now, we have a special funding that will do a matching fund (50/50).
Everyone has different needs for their computation. A typical example of usage of the cluster would consists of these steps :
$HOME
directorymodule
for your code to work$HOME
and $HOME/scratch
directories).If you want to know what type of CPU and architecture is supported, check the section For Advanced users.
Both clusters contain a mix of “public” nodes provided by the University of Geneva, a “private” nodes in general paid 50% by the University and 50% by a research group for instance. Any user of the clusters can request compute resources on any node (public and private), but a research group who owns “private” nodes has a higher priority on its “private” nodes and can request a longer execution time.
Since our clusters are regularly expanded, the nodes are not all from the same generation. You can see the details in the following table.
Generation | Model | Freq | Nb cores | Architecture | Nodes | Extra flag |
---|---|---|---|---|---|---|
V2 | X5650 | 2.67GHz | 12 cores | “Westmere-EP” (32 nm) | node[076-153] | |
V3 | E5-2660V0 | 2.20GHz | 16 cores | “Sandy Bridge-EP” (32 nm) | node[001-056,058] | |
V3 | E5-2670V0 | 2.60GHz | 16 cores | “Sandy Bridge-EP” (32 nm) | node[059-062,067-070] | |
V3 | E5-4640V0 | 2.40GHz | 32 cores | “Sandy Bridge-EP” (32 nm) | node[057,186,214-215] | |
V4 | E5-2650V2 | 2.60GHz | 16 cores | “Ivy Bridge-EP” (22 nm) | node[063-066,071,154-172] | |
V5 | E5-2643V3 | 3.40GHz | 12 cores | “Haswell-EP” (22 nm) | gpu[002,012] | |
V6 | E5-2630V4 | 2.20GHz | 20 cores | “Broadwell-EP” (14 nm) | node[173-185,187-201,205-213] | |
gpu[004-010] | ||||||
V6 | E5-2637V4 | 3.50GHz | 8 cores | “Broadwell-EP” (14 nm) | node[218-219] | HIGH_FREQUENCY |
V6 | E5-2643V4 | 3.40GHz | 12 cores | “Broadwell-EP” (14 nm) | node[202,204,216-217] | HIGH_FREQUENCY |
V6 | E5-2680V4 | 2.40GHz | 28 cores | “Broadwell-EP” (14 nm) | node[203] | |
V7 | EPYC-7601 | 2.20GHz | 64 cores | “Naples” (14 nm) | gpu[011] | |
V8 | EPYC-7742 | 2.25GHz | 128 cores | “Rome” (7 nm) | gpu[013-014] | |
V9 | GOLD-6240 | 2.60GHz | 36 cores | “Cascade Lake” (14 nm) | node[265-272] |
The “generation” column is just a way to classify the nodes on our clusters. In the following table you can see the features of each architecture.
MMX | SSE | SSE2 | SSE3 | SSSE3 | SSE4.1 | SSE4.2 | AVX | F16C | AVX2 | FMA3 | NB AVX-512 FMA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Westmere-EP | YES | YES | YES | YES | YES | YES | YES | NO | NO | NO | NO | |
Sandy Bridge-EP | YES | YES | YES | YES | YES | YES | YES | YES | NO | NO | NO | |
Ivy Bridge-EP | YES | YES | YES | YES | YES | YES | YES | YES | YES | NO | NO | |
Haswell-EP | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | NO | |
Broadwell-EP | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | |
Naples | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | |
Rome | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | |
Casake Lake | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | YES | 2 |
In the following table you can see which type of GPU is available on Baobab.
GPU model | Architecture | Mem | Compute Capability | Slurm resource | Nb per node | Nodes |
---|---|---|---|---|---|---|
Titan X | Pascal | 12GB | 6.1 | titan | 6 | gpu[002] |
P100 | Pascal | 12GB | 6.0 | pascal | 6 | gpu[004] |
P100 | Pascal | 12GB | 6.0 | pascal | 5 | gpu[005] |
P100 | Pascal | 12GB | 6.0 | pascal | 8 | gpu[006] |
P100 | Pascal | 12GB | 6.0 | pascal | 4 | gpu[007] |
Titan X | Pascal | 12GB | 6.1 | titan | 8 | gpu[008] |
Titan X | Pascal | 12GB | 6.1 | titan | 8 | gpu[009-010] |
RTX 2080 Ti | Turing | 11GB | 7.5 | rtx | 2 | gpu[011] |
RTX 2080 Ti | Turing | 11GB | 7.5 | rtx | 8 | gpu[012-014] |
Since our clusters are regularly expanded, the nodes are not all from the same generation. You can see the details in the following table.
Generation | Model | Freq | Nb cores | Architecture | Nodes | Extra flag |
---|---|---|---|---|---|---|
V7_INTEL | XEON_GOLD_6240 | 2.60GHz | 36 cores | “Intel Xeon Gold 6240 CPU @ 2.60GHz” | cpu[001-111] | |
V7_INTEL | XEON_GOLD_6244 | 3.60GHz | 16 cores | “Intel Xeon Gold 6244 CPU @ 3.60GHz” | cpu[112-115] | |
V3_AMD | AMD_EPYC_7742 | 2.25GHz | 128 cores | “AMD EPYC 7742 64-Core Processor” | cpu[116-119] | |
V7_INTEL | XEON_SILVER_4208 | 2.10GHz | 16 cores | “Intel Xeon Silver 4208 CPU @ 2.10GHz” | gpu[001-006,008] | |
V7_INTEL | XEON_GOLD_6234 | 3.30GHz | 16 cores | “Intel Xeon Gold 6234 CPU @ 3.30GHz” | gpu[007] |
The “generation” column is just a way to classify the nodes on our clusters. In the following table you can see the features of each architecture.
SSE4.2 | AVX | AVX2 | NB AVX-512 FMA | |
---|---|---|---|---|
Intel Xeon Gold 6244 | YES | YES | YES | 2 |
Intel Xeon Gold 6240 | YES | YES | YES | 2 |
Intel Xeon Gold 6234 | YES | YES | YES | 2 |
Intel Xeon Silver 4208 | YES | YES | YES | 1 |
Click here to Compare Intel CPUS.
In the following table you can see which type of GPU is available on Yggdrasil.
GPU model | Architecture | Mem | Compute Capability | Slurm resource | Nb per node | Nodes | Peer access between GPUs |
---|---|---|---|---|---|---|---|
Titan RTX | Turing | 24GB | 7.5 | rtx | 8 | gpu[001,002,004] | NO |
Titan RTX | Turing | 24GB | 7.5 | rtx | 6 | gpu[003,005] | NO |
Titan RTX | Turing | 24GB | 7.5 | rtx | 4 | gpu[006,007] | NO |
V100 | Volta | 32GB | 7.0 | v100 | 1 | gpu[008] | YES |