In 2025, the CBiB commissioned a new computing cluster to replace the Cortex cluster.
The cluster is called Apollo and consists of eight computing nodes with a total of 512 cores and 3.2 TB of RAM.
This new cluster offers GPU resources for the first time with four NVIDIA H100 cards.
This system relies on GPFS and ISILON storage to meet performance and security requirements, as well as a high-speed network.
The documentation below describes how to make the best use of these resources.
En 2025 le CBiB a mis en service un nouveau cluster de calcul en remplacement du cluster cortex.
Le cluster se nomme Apollo et se compose de 8 noeuds de calculs pour un total de 512 coeurs de et 3.2 To de RAM.
Ce nouveau cluster propose pour la première fois des ressources GPU sous la forme de 4 cartes NVIDIA H100
Ce système s’appuie sur les stockage GPFS et ISILON pour répondre aux besoin de performance et de sécurité ainsi que sur un réseau haut débit.
La documentation ci dessous vous décrit comment utiliser au mieux ces ressources mises à disposition.
Sign up (request an account):
Inscription (demande de compte):
https://services.cbib.u-bordeaux.fr/CBIBinfra/#!/create_cbib_account
The account will be created in few days.
Le compte sera créé d'ici quelques jours.
Forgot your password:
Mot de passe oublié:
https://services.cbib.u-bordeaux.fr/ssp2/index.php?action=sendtoken
Change your password:
Changer son mot de passe:
https://services.cbib.u-bordeaux.fr/ssp2/
Access through SSH
Server: apollo.cbib.u-bordeaux.fr
Connexion via SSH
Serveur: apollo.cbib.u-bordeaux.fr
On Linux/Mac, simply use ssh client like
Sur Linux/Mac, utiliser simplement un client SSH tel que
OpenSSH
On Windows, you can use a client like
Sur Windows, on peut utiliser un client tel que
PuTTY
Note: there is two login server (gemini01 and gemini02).
You can be connected on one server or another. Please remind this when you use screen or another tools.
Note: il y a deux serveur de login (gemini01 et gemini02).
Vous pouvez être connecté sur l'un ou l'autre. Souvenez-vous en si vous utilisez screen ou autre.
| Usage | Capacity (total) | Capacité (total) | Performance | Backup | Sauvegarde | Quota | Quota | |
|---|---|---|---|---|---|---|---|---|
| /home | Home directory (personal data) | Répertoire personnel | 10 TBTo |
Correct |
ok Snapshots + replication | ok Snapshots + replication | 200 Go per user | 200 Go par utilisateur |
| /mnt/cbib | Projects (common data) | Projets (données communes) | 400 TBTo |
Correct |
ok Snapshots + replication | ok Snapshots + replication | ||
| /scratch | Temporary data to compute | Données de calcul temporaire | 300 TBTo |
Really goodExcellente |
warning No Backup + cleaning process | attention Pas de sauvegarde + nettoyage automatique | ||
| /isilon/banks | Databank directory | Répertoire de banque de données | 10 TBTo |
Correct |
ok Snapshots + replication | ok Snapshots + replication |
All storage spaces are shared across all the nodes.
Les espaces sont accessibles depuis l'ensemble des noeuds.
Restoring data (snapshots)
If data is modified or deleted by mistake, it is sometimes possible to restore a previous version using snapshots.
These snapshots are available in Read-Only mode in the /backup directory.
Restauration de données (snapshots)
En cas de modification ou suppression de données par erreur, il est parfois possible de restaurer une version précédente grâce aux snapshots.
Ces snapshots sont disponibles en mode Read-Only dans le répertoire /backup
SSH protocol (or SFTP - SSH File Transfer Protocol) is the only one protocol available at the CBiB.
But, you can use many clients to download your data (scp, rsync, wget, lftp, aspera, etc.).
Le seul protocole disponible au CBiB pour accéder aux données est SSH (ou SFTP - SSH File Transfer Protocol).
En revanche, de nombreux clients sont disponibles pour télécharger des données (scp, rsync, wget, lftp, aspera, etc.).
To use softwares like blast, python, gcc, etc. we have to "load" them using module commands Pour utiliser les logiciels comme blast, python, gcc, etc. il faut utiliser les commandes module (Environment Modules, version 3.2.10):
module availmodule availmodule load blastmodule load blastmodule load blast/2.2.25module load blast/2.2.25module, module whatis blast or module help blastmodule, module whatis blast ou module help blast
The computing works are done by submitting "jobs" to the workload manager
Les traitements sont réalisés en soumettant des "jobs" au gestionnaire de tâche
Slurm (verion 24.11.5).
### Job name
#SBATCH --job-name=demo_job
### Max run time "hours:minutes:seconds"
#SBATCH --time=01:00:00
### Requirements nodes/servers (default: 1)
#SBATCH --nodes=1
### Requirements cpu/core/task (default: 1)
#SBATCH --ntasks-per-node=1
### Requirements memory (default: 12.5GB per cpu)
#SBATCH --mem-per-cpu=12800MB
### Nom du job
#SBATCH --job-name=demo_job
### Temps d'éxécution maximale "heures:minutes:secondes"
#SBATCH --time=01:00:00
### Demandes noeud/serveurs (par défaut: 1)
#SBATCH --nodes=1
### Demandes cpu/coeur/tache (par défaut: 1)
#SBATCH --ntasks-per-node=1
### Demandes en mémoire (par défaut: 12.5Go par cpu)
#SBATCH --mem-per-cpu=12800MB
sbatch myscript.sh
squeue
slurm-[jobid].out
Partitions:
You can submit your tasks to 3 partitions depending on your needs and computing time
- compute : CPU only / DefaultTime 24 hours / MaxTime = 7 days
- compute_long : CPU only / no time limit / lower priority
- gpu : GPU only / DefaultTime 24 hours MaxTime = 7 days
Partitions:
Selon les ressources nécessaires et le temps de calcul vous pouvez soumettre vos jobs à 3 partitions
- compute : CPU uniquement / DefaultTime 24 heures / MaxTime = 7jours
- compute_long : CPU uniquement / pas de limit de temps / moins prioritaire
- gpu : GPU uniquement / DefaultTime 24 heures / MaxTime = 7jours
GPU:
NVIDIA H100 cards are divided into MIGs (Multi-Instance GPUs).
When launching the job, in addition to selecting the GPU partition, you must select a MIG type.
The name MIG indicates the amount of memory available on the card.
- gpu:nvidia_h100_nvl : full H100 card
- gpu:nvidia_h100_nvl_4g.47gb : MIG with 47Gb
- gpu:nvidia_h100_nvl_1g.24gb : MIG with 24Gb
- gpu:nvidia_h100_nvl_1g.12gb : MIG with 12Gb
Command example : sinteractive --gres=gpu:nvidia_h100_nvl_1g.12gb -p gpu
GPU:
Les cartes NVIDIA H100 sont découpées en MIG (Multi-Instance GPU).
Au moment de lancer le job vous devez, en plus de choisir la partition gpu, choisir un type de MIG.
Le nom des MIG indique la quantité de mémoire disponible sur la carte.
- gpu:nvidia_h100_nvl : carte H100 entière
- gpu:nvidia_h100_nvl_4g.47gb : MIG de 47Gb
- gpu:nvidia_h100_nvl_1g.24gb : MIG de 24Gb
- gpu:nvidia_h100_nvl_1g.12gb : MIG de 12Gb
Exemple de commande : sinteractive --gres=gpu:nvidia_h100_nvl_1g.12gb -p gpu
Notes:
All nodes have access to the data (/home, /scratch, /isilon/bank and /mnt/cbib).
All the softwares are available by the nodes, but we have to load them inside the script with command module add [module].
All jobs are contained and can not use more resources than defined (CPU, memory).
Jobs which exceed limits (memory or time, values by default or set) are killed.
It's possible to connect to compute node when a job is running (ssh apolloXX).
Notes:
Tous les nœuds ont accès aux données (/home, /scratch, /isilon/bank et /mnt/cbib).
Tous les logiciels sont accessibles par les nœuds, il faut toutefois les charger dans le script avec les commandes module add [module].
Tous les jobs sont contenus et ne peuvent pas utiliser plus de ressources que définies (CPU, mémoire).
Les jobs qui dépassent les limites (mémoire ou temps, valeurs par défaut ou celles indiquées) sont tués.
Il est possible de se connecter sur un nœud de calcul si un job est en train de tourner (ssh apolloXX).
Usually, you write a bash script then submit it:
Une fois son script bash écrit, on le soumet:
sbatch myscript.shsbatch myscript.shsqueuesqueuesqueue -u $USERsqueue -u $USERscontrol show job [jobid]scontrol show job [jobid]scancel [job_id]scancel [job_id]
Slurm documentation is widely available and official website is pretty nice:
La documentation en ligne sur slurm est abondante et la documentation officielle très bonne:
https://slurm.schedmd.com
If you are used to PBS/Torque/SGE/LSF/LoadLeveler, refer to:
Si vous êtes habitué à PBS/Torque/SGE/LSF/LoadLeveler, référez-vous à:
https://slurm.schedmd.com/rosetta.pdf
--job-name=demo_job |
Job name | Nom du job |
--partition=XXXX |
Partition name (compute / compute_long / gpu) | Nom de la partition (compute / compute_long / gpu) |
--time=01:00:00 |
Limit run time "hours:minutes:seconds" (default: 365 days) | Temps limite d'exécution "heures:minutes:secondes" (par défaut: 365 jours) |
--output=slurm-%j.out |
Specify the output file (standard output and error, default: slurm-[jobid].out) | Définir le fichier de sortie (sortie standard et sortie d'erreur, par défaut = slurm-[jobid].out) |
--workdir=/path/ |
Working directory (default: submission directory) | Repertoire de travail (par défaut: répertoire de soumission): |
--nodes=N |
Number of nodes/servers requested | Nombre de nœuds/serveurs demandés |
--ntasks=n--ntasks-per-node=n |
Number of cores/tasks requested (default = 1 per node) | Nombre de cœurs/tâches souhaités (par défaut= 1 par nœud) |
--mem=GB--mem-per-cpu=GB |
Amount of real memory (default = 12.5GB/core) | Mémoire réelle totale demandée (par défaut = 12,5Go/cœur) |
--exclusive |
Whole node | Nœud entier |
--mail-user=email@address--mail-type=ALL |
Send mail on events (NONE, BEGIN, END, FAIL, ALL) | Envoyer un mail sur certains événements (NONE, BEGIN, END, FAIL, ALL) |
#!/bin/bash
################################ Slurm options #################################
### Job name
#SBATCH --job-name=demo_job
### Limit run time "hours:minutes:seconds" (default: 365 days)
#SBATCH --time=01:00:00
### Specify requirements - Task (default: 1 node, 1 Core, 12.5G mem/cpu)
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --mem-per-cpu=12800MB
################################################################################
# Useful information to print
echo '########################################'
echo 'Date:' $(date --iso-8601=seconds)
echo 'User:' $USER
echo 'Host:' $HOSTNAME
echo 'Job Name:' $SLURM_JOB_NAME
echo 'Job Id:' $SLURM_JOB_ID
echo 'Directory:' $(pwd)
# Detail Information:
scontrol show job $SLURM_JOB_ID
echo '########################################'
# modules loading
module add python
# What you actually want to launch
echo 'Waooouhh. Awesome.'
echo '########################################'
echo 'Job finished' $(date --iso-8601=seconds)
Total of 9 compute nodes, 512 cores, 3.2TB RAM
Total de 9 nœuds de calcul, 512 cœurs, 3.2To RAM
HP Apollo 2000 Gen 10+, 2 x AMD EPYC 7513 (32 cores 2.8GHz)
HP Apollo 2000 Gen 10+, 2 x AMD EPYC 7513 (32 cores 2.8GHz)
HP DL385Gen11, 2 x AMD EPYC 9124 (16 cores 3.0GHz)
HP DL385Gen10+, 2 x AMD EPYC 7413 (24 cores 2.65GHz)
HP DL325 Gen10+, 2 x AMD EPYC 7313P (16 cores 2.85GHz)
6 x H400
/home, /mnt/cbib, /module/ /banks
HP Aruba 32p 100Gbps