Nibi
| Disponibilité : 31 juillet 2025 |
| Nœud de connexion SSH : nibi.alliancecan.ca |
| Nœud d'automatisation : robot.nibi.alliancecan.ca |
| Interface web : ondemand.sharcnet.ca |
| Collection Globus : alliancecan#nibi |
| Nœud de copie (rsync, scp, sftp, etc.) : utiliser les nœuds de connexion |
| Portail : portal.nibi.sharcnet.ca |
Dans la langue anishinaabe, Nibi est un terme qui désigne l'eau. Cette nouvelle grappe offre 134 400 CPU et 288 GPU H100 de NVIDIA. Conçue par Hypertec Nibi est hébergée et exploitée par SHARCNET à l'Université de Waterloo.
Access
Vous devez demander l'accès dans CCDB, en sélectionnant Ressources--> Accès aux systèmes.
- Dans la liste des systèmes, sélectionnez Nibi.
- Cliquez sur le bouton Je demande l'accès.
L'activation de votre accès pourrait prendre environ une heure.
Stockage
Stockage parallèle : 25 Po, SSD (Solid-State Drive) de VAST Data pour /home, /project et /scratch.
Notez que Vast comptabilise différemment l'espace utilisé pour calculer les quotas. La taille apparente de vos fichiers est prise en compte alors que certaines configurations de Lustre compressent les fichiers de manière transparente et comptabilisent l'espace utilisé après compression.
Notez également que Nibi utilise un nouveau mécanisme expérimental pour gérer /scratch. Comme sur tous les systèmes, vous disposez d'une limite souple et d'une limite stricte, mais sur Nibi, la limite souple est basse (1 TB) et vous disposez d'un délai de grâce de 60 jours. Après l'expiration de ce délai, la limite souple est imposée (plus aucune création ni extension de fichier). Pour corriger ceci, votre utilisation doit revenir sous la limite souple.
Interconnexion
- ethernet Nokia, 200/400G
- bande passante pour nœuds CPU, 200Gbit/s
- bande passante non bloquante pour tous les nœuds GPU Nvidia, 200Gbit/s
- bande passante pour tous les nœuds GPU AMD, 200Gbit/s
- connexion aux nœuds de stockage VAST, 24x100Gbit/s
- liaisons montantes (uplinks) pour tous les nœuds, 400Gbit/s; blocage 2:1
La topologie du réseau est décrite dans le fichier
/etc/slurm/topology.conf
Pour améliorer la performance des tâches multi-nœuds fortement couplées, vous pouvez forcer l'utilisation d'un seul commutateur (network switch) en ajoutant l'option suivante au script de la tâche.
#SBATCH --switches=1
Caractéristiques des nœuds
| nœuds | cœurs | mémoire disponible | stockage local | CPU | GPU |
|---|---|---|---|---|---|
| 700 | 192 | 748G ou 766000M | 3T | 2 x Intel 6972P @ 2.4 GHz, 384MB cache L3 | |
| 10 | 192 | 6000G ou 6144000M | 3T | 2 x Intel 6972P @ 2.4 GHz, 384MB cache L3 | |
| 36 | 112 | 2000G ou 2048000M | 11T | 2 x Intel 8570 @ 2.1 GHz, 300MB cache L3 | 8 x Nvidia H100 SXM (80 GB), connecté via NVLink |
| 6 | 96 | 495G ou 507000M | 3T | 4 x AMD MI300A @ 2.1GHz (Zen4+CDNA3) | Les cœurs CPU et les GPU CDNA3 sont dans le même socket, avec une mémoire unifiée. Voir les instructions ci-dessous. |
Instances GPU
Noms des instances GPU
| Modèle ou instance | Nom court | Sans unité | Par sa mémoire | Nom complet | |
|---|---|---|---|---|---|
| GPU | H100-80gb | h100
|
h100
|
h100_80gb
|
nvidia_h100_80gb_hbm3
|
| MIG | H100-1g.10gb | h100_1g.10gb
|
h100_1.10
|
h100_10gb
|
nvidia_h100_80gb_hbm3_1g.10gb
|
| H100-2g.20gb | h100_2g.20gb
|
h100_2.20
|
h100_20gb
|
nvidia_h100_80gb_hbm3_2g.20gb
| |
| H100-3g.40gb | h100_3g.40gb
|
h100_3.40
|
h100_40gb
|
nvidia_h100_80gb_hbm3_3g.40gb
| |
Pour demander un ou plusieurs GPU H100 complets, utilisez une des options Slurm suivantes :
- un H100-80gb :
--gpus=h100:1ou--gpus=h100_80gb:1 - plusieurs H100-80gb par nœud :
--gpus-per-node=h100:2--gpus-per-node=h100:3--gpus-per-node=h100:4
- plusieurs GPU H100 complets distribués arbitrairement :
--gpus=h100:n(remplacer n par le nombre de GPUs que vous voulez)
Environ la moitié des nœuds GPU utilisent la technologie MIG. Trois tailles d'instances sont disponibles :
- H100-1g.10gb: 1/8e de la puissance de calcul, mémoire GPU de 10Go
- H100-2g.20gb: 2/8e de la puissance de calcul, mémoire GPU de 20Go
- H100-3g.40gb: 3/8e de la puissance de calcul, mémoire GPU de 40Go
Pour demander une et une seule instance GPU pour une tâche de calcul, utilisez l'option correspondante.
- H100-1g.10gb :
--gpus=h100_1g.10gb:1 - H100-2g.20gb :
--gpus=h100_2g.20gb:1 - H100-3g.40gb :
--gpus=h100_3g.40gb:1
Pour le nombre maximum de cœurs CPU et le maximum de mémoire recommandés par instance GPU, voir Ratios dans les bundles.
Particularités
Accès à l'internet
Tous les nœuds ont accès à l'internet; aucune autorisation de pare-feu spéciale ou proxy n'est nécessaire.
/project et /nearline
Les répertoires des utilisateurs ne sont plus créés par défaut dans /project et /nearline. Vous pouvez toujours créer vos propres répertoires dans les espaces /project et /nearline du groupe à l'aide de mkdir. Ceci permet aux groupes de décider de l'organisation de leurs espaces /project et /nearline pour le partage de données entre les membres.
Sur /nearline, les fichiers d'index et les autres petits fichiers ne sont pas sauvegardés ni archivés sur ruban.
Quota pour /scratch
Un quota souple de 1 TB sur /scratch s'applique à chaque utilisateur. Ce quota souple peut être dépassé pendant 60 jours maximum, après quoi aucun fichier supplémentaire ne peut être écrit sur /scratch. Les fichiers peuvent être réécrits une fois que l'utilisateur a supprimé suffisamment de fichiers pour ramener son utilisation /scratch totale sous 1 TB. Pour plus d'information, voir Stockage et gestion de fichiers.
Accès via Open OnDemand (OOD)
Il est possible d'accéder à la grappe Nibi simplement via un navigateur web. Nibi utilise Open OnDemand (OOD), une plateforme web qui simplifie l'accès en fournissant une interface web aux nœuds de connexion et un environnement de bureau à distance. Pour vous connecter à Nibi, rendez-vous sur https://ondemand.sharcnet.ca/ et connectez-vous avec l'authentification multifacteur. Une interface conviviale s'affichera, proposant des options pour ouvrir un terminal Bash ou lancer une session de bureau à distance.
Utilisation de JupyterLab via OOD

Vous pouvez exécuter JupyterLab de manière interactive via le portail Nibi Open OnDemand.
Option 1 : Travailler dans un environnement préconfiguré (même que JupyterHub)
Quand la connexion au portail Nibi Open OnDemand est établie, cliquez sur Compute Node dans le menu du haut et sélectionnez Nibi JupyterLab. Une page sera affichée dans laquelle un formulaire vous permet de demander une nouvelle session Nibi JupyterLab.
Après avoir rempli le formulaire avec les détails, cliquez sur Launch pour soumettre votre demande. Quand l'état des modifications pour Nibi JupyterLab passe à Running, cliquez sur Connect to Jupyter pour ouvrir JupyterLab dans le navigateur web.
Pour les détails sur la préconfiguration, voir Interface JupyterLab.
Option 2 : Travailler dans un
environnement virtuel Python que vous avez créé
Quand la connexion au portail Nibi Open OnDemand est établie, cliquez sur Compute Node dans le menu du haut et sélectionnez Compute Desktop. Une page sera affichée dans laquelle un formulaire vous permet de demander une nouvelle session Compute Desktop.

Après avoir rempli le formulaire avec les détails, cliquez sur Launch pour soumettre votre demande. Quand le bureau Compute passe à Running, cliquez sur Launch Compute Desktop pour vous connecter au bureau. Un bureau Linux sera affiché.
Sur le bureau Compute, faites un clic droit dans une zone vide; un menu contextuel apparaît. Sélectionnez Open in Terminal pour ouvrir une fenêtre de terminal où vous pouvez créer ou activer votre environnement virtuel Python dans lequel JupyterLab est installé.
Si JupyterLab n'est pas installé dans l'environnement virtuel Python que vous souhaitez utiliser, vous pouvez l'installer avec la commande
(your_python_ENV) [username@<node>.nibi]$ pip install --no-index jupyterlabVous pouvez ensuite lancer JupyterLab à partir de votre environnement virtuel Python avec
(your_python_ENV) [username@<node>.nibi]$ jupyter-lab --notebook-dir $HOMEJupyterLab s'ouvre dans le navigateur sur le bureau et le contenu de votre espace $HOME est listé dans le panneau de gauche.
Prise en charge de VDI via OOD
Nibi n'offre plus d'infrastructure de bureau virtuel (VDI), mais fournit un environnement de bureau à distance via le portail Open OnDemand (OOD) avec des performances matérielles et une prise en charge logicielle améliorées.
Nœuds AMD MI300A
Il faut présentement demander les MI300A comme des nœuds entiers. Vous avez la responsabilité de vous assurer que les processus de votre tâche sont exécutés avec les liaisons correctes des cœurs et de la mémoire. Dans l'exemple ci-dessous, le script utilise quatre processus.
REMARQUE : Pour une bonne utilisation des nœuds MI300A, compilez votre code avec ROCm. La compilation avec CUDA ne fonctionne pas parce que les GPU AMD ne sont pas pris en charge.
En date de mai 2026, notre pile logicielle ne prend pas en charge les nœuds MI300A et aucun module ne permet la compilation avec ROCm. Vous pouvez installer vous-même des logiciels avec la suite d'outils ROCm qui se trouve dans le répertoire /opt/rocm. Si vous avez besoin d'assistance, écrivez au soutien technique.
#!/bin/bash
#SBATCH --account=def-someuser
#SBATCH --nodes=1
#SBATCH --ntasks=4
#SBATCH --cpus-per-task=24
#SBATCH --gpus=mi300a:4
#SBATCH --mem=100g
#SBATCH --time=00:02:00
# verify GPUS are available (optional)
rocm-smi
# run program compiled with ROCm support for MI300A
Récupérer des fichiers supprimés
Nibi dispose d'un système de sauvegarde qui crée un instantané de vos fichiers dans /home et /project toutes les 30 minutes; ces instantanés sont sauvegardés pour une période de deux semaines. Si vous supprimez accidentellement un fichier, vous pourrez peut-être le récupérer à partir de ces instantanés, à condition qu'il ait été supprimé il y a moins de deux semaines. Cependant, si vous modifiez un fichier après la dernière sauvegarde, pour ensuite le supprimer, il ne pourra pas être récupéré.
Pour localiser un fichier supprimé, utilisez la commande oops pour vérifier le répertoire courant, ou spécifiez un autre répertoire où faire la recherche. Pour récupérer un fichier, copiez-le depuis le chemin retourné par la commande oops à l'aide d'un outil standard comme cp. Les instantanés sont en lecture seule; vous ne pouvez donc ni supprimer ni modifier les fichiers qu'ils contiennent, vous devez d'abord les copier. Ne faites pas référence aux fichiers des instantanés dans vos scripts de soumission de tâches.
[username@<node>.nibi]$ ls
dont_delete_me.txt
[username@<node>.nibi]$ rm dont_delete_me.txt
[username@<node>.nibi]$ ls
[username@<node>.nibi]$ oops
Deleted files found in snapshots:
./.snapshot/backup_2026-04-01_18_00_00_UTC/dont_delete_me.txt
Files created less than 9 min ago (2026-04-01 14:00:00-04:00) are not yet backed up
Files deleted more than 0 days ago (2026-04-01 13:30:00-04:00) please submit a help ticket
[username@<node>.nibi]$ cp ./.snapshot/backup_2026-04-01_18_00_00_UTC/dont_delete_me.txt .
[username@<node>.nibi]$ ls
dont_delete_me.txt