1 of 63

CIP101 - Premiers pas sur les serveurs de calculs

Présenté par Moïra Dion le 18 février 2025

2 of 63

Nos membres et

partenaires

Partenaires connectivité

Partenaires financiers

2

3 of 63

Formations à venir

Consultez notre page

pour découvrir nos prochains ateliers.

3

4 of 63

Zoom

  • Si vous éprouvez des problèmes techniques, mentionnez-les dans la zone de Discussion. Un assistant vous aidera.

  • Si vous avez une question en lien avec le contenu du cours, utilisez le Q. et R.

  • Vous pouvez également lever la main et activer votre microphone afin de poser une question.

4

5 of 63

Objectifs

  • Présentation de Calcul Québec
  • Introduire le calcul informatique de pointe (CIP)
  • Utiliser le stockage de manière appropriée
  • Soumettre des tâches de calcul

5

6 of 63

Déroulement

  • Alternance diapositives et exercices
  • Pause de 15 min vers 10h15
  • Posez des questions à tout moment
  • Sondage post-formation

6

7 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

7

8 of 63

Calcul informatique de pointe

  • Tout calcul qui fait une utilisation intensive de ressources informatiques, ou qui est limité par les ressources disponibles

Exemples

  • Problèmes complexes
    • Assemblage de génomes
    • Dynamique des fluides
    • Simulations climatiques
  • Données massives
    • Apprentissage automatique
    • Marchés financiers
    • Traitement des images

8

9 of 63

Calcul informatique de pointe

Si votre ordinateur…

  • Manque de stockage
  • Fait des bruits de moteur d’avion
  • Doit rester allumé pendant des heures pour terminer une analyse

…c’est peut-être le temps de passer à un serveur de calcul !

9

10 of 63

Comparaison

avec un ordinateur de bureau

Votre ordinateur

Nœud de calcul

Grappe �de calcul

Coeurs

2 à 12

24 à 64

~ 75,000

Mémoire

4 à 32 Go

128 Go à 3 To

~ 350 To

Réseautique

1 Go/s 

100 Go/s

Stockage

1 To HDD /

512 Go SSD

960 Go SSD

~ 30 Po Lustre

Carte 

graphique

GPU de jeu vidéo�(8 Go)

4 NVidia A100 (40 Go)

~ 700 GPU

Accessibilité

accès direct

Fil d’attente

OS

Windows, MacOS, Linux

Linux

10

11 of 63

Composantes d’un nœud

Images: Supermicro et Wikimedia

PCIe pour Infiniband et GPU

2 (ou 4) CPU

Un SSD (parfois NVMe)

Plein de barrettes de mémoire vive par CPU

11

12 of 63

Grappe de calcul

  • Les nœuds de calcul sont physiquement installés dans des racks, un cabinet vertical contenant des dizaines de nœuds de calcul.

  • Les racks de stockage spécialisés contiennent plusieurs centaines de disques durs, avec des données distribuées sur les disques pour optimiser la bande passante et la redondance.�
  • Interconnexion haute vitesse entre tous les noeuds (Infiniband)

12

13 of 63

L’accès aux supercalculateurs canadiens est gratuit pour la communauté de recherche académique.

14 of 63

Supercalculateur

Serveur

Grappe de calcul

Superordinateur

14

15 of 63

Calcul Québec c’est

une équipe de 70 expertes et experts, réparties dans une dizaine d'universités québécoises

6300 utilisateurs et utilisatrices dans 1500 groupes de recherche

60 ateliers de formation annuels

550 utilisateurs et utilisatrices qui complètent annuellement un diplôme universitaire ou un stage postdoctoral

1600 publications scientifiques annuelles qui mentionnent avoir utilisé nos services

15

16 of 63

Nos services

Grappes de calcul

Infonuagique

Soutien personnalisé

Stockage

Notebooks

Formation

Documentation

Ordinateur quantique

16

17 of 63

17

18 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

18

19 of 63

Demander l’accès

19

20 of 63

Créer un compte - professeur

  1. Créer un compte à l’Alliance�https://ccdb.alliancecan.ca/
  2. Cocher un rôle de chercheur principal
  3. Confirmation manuelle par un membre du personnel
  4. Parrainer les étudiants

20

21 of 63

Créer un compte - étudiant

  1. Trouver un parrain
  2. Demander à son parrain de se créer un compte + fournir son CCRI�(ex.: abc-123-01)
  3. Créer un compte à l’Alliance�https://ccdb.alliancecan.ca/
  4. Cocher un rôle d'utilisateur parrainé
  5. Le parrain et un employé de l’Alliance confirment l'inscription

21

22 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

22

23 of 63

Quelle grappe choisir?

  • Celle que votre groupe utilise déjà
  • Plusieurs changements à venir au printemps !
  • Celle qui est le plus près de chez vous
  • Celle qui répond à vos besoins https://docs.alliancecan.ca
  • Vous ne savez toujours pas: écrivez noussupport@tech.alliancecan.ca

Une note sur le wiki de l’Alliance

23

24 of 63

Se connecter à une grappe

ssh user@server.alliancecan.ca

Le mot de passe n’apparaîtra pas à l’écran �(même pas des astérisques)

24

25 of 63

Authentification multifacteur

  • Depuis avril 2024, l’authentification multifacteur est obligatoire pour tous les usagers de nos grappes.

  • En plus de votre mot de passe, vous devez utiliser une deuxième méthode d’authentification, soit avec l’application Duo sur votre téléphone ou une clé YubiKey.

25

26 of 63

  • Une fois connecté, l’environnement est un environnement standard Bash. Les commandes suivantes peuvent par exemple être utilisées:
    • pwd (print working directory)
    • ls (list directory)
    • cd <dir> (change directory)
    • mkdir <dir> (make directory)
    • cp <file1> <file2> (copy file)
    • rm <file> (remove a file)

26

27 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

27

28 of 63

Transférer des données

  • Pour des petits fichiers sur des petites distances, utiliser scp (secure copy): scp [source] [destination]
  • Exemple depuis l’ordinateur vers une grappe:scp file1.dat username@grappe:dir1/
  • Outils graphiques disponibles comme: WinSCP ou FileZilla
  • Globus, la meilleure option pour des fichiers volumineux (plusieurs GB) sur des courtes ou longues distances (Montreal à Vancouver, par exemple).

28

29 of 63

Où stocker vos données ?

  • Les grappes possèdent différents espaces de stockage dont chacun a ses avantages et désavantages:

Nom

Taille (défaut)

Utilisation

Home

50 Go, 500 K fichiers

Code / Données peu volumineuses (faible performance)

Scratch

20 To, 1M fichiers

Stockage temporaire (pas de fichiers précieux !) (2 mois)

Project

1 To, 500 K fichiers

Données volumineuses / Données partagées

Nearline

1 To, 5000 fichiers

Données archivées

$SLURM_TMPDIR

960 Go

Stockage local (Meilleure performance)

29

30 of 63

Vérifier l’utilisation de l’espace disque

  • Vous pouvez vérifier l’espace disque disponible avec la commande diskusage_report

30

31 of 63

Accès à la grappe

Navigateur: cip101.calculquebec.cloud

userXXXX = [001-050]

Voir la feuille avec les noms

31

32 of 63

Exercice 1

  1. Utilisez scp pour copier le fichier document.txt depuis votre espace local [monordi] vers le home de la grappe de formation (@login1)
  2. Connectez-vous à login1 et vérifiez que le fichier est présent
  3. Où est situé le répertoire def-sponsor00 ?

32

33 of 63

Charger des logiciels

  • La plupart des logiciels dont vous aurez besoin sont déjà installés sur la grappe. Ces logiciels sont disponibles sous la forme de modules.

  • Les modules permettent d’avoir plusieurs versions d’un même logiciel qui cohabitent, et de gérer les dépendances et les conflits.

33

34 of 63

Commandes module

module spider <mot clé> # recherche

module avail <module> # disponible

module load <module> # charger un module

module unload <module> # décharger

module list # afficher les modules activés

module purge # Revenir à l’état d’origine

34

35 of 63

Page des logiciels disponibles

35

36 of 63

Exercice 2

  • Quels modules sont chargés par défaut dans votre environnement sur la grappe de calcul ?

  • Combien de versions différentes de Python sont disponibles sur la grappe et laquelle est la plus récente ?

36

37 of 63

Le cas des logiciels Python

  • La plupart des modules Python ne sont pas installés en tant que modules. Ils sont plutôt fournis sous forme de paquets binaires (wheels).

37

38 of 63

Exercice 3

  • Quelle commande permet de lister les wheels disponibles ?

Indice : vous devez aller lire la documentation :)

https://docs.alliancecan.ca/wiki/Technical_documentation/fr

38

39 of 63

Les environnements Python

39

40 of 63

Les environnements Python

  • Les dépendances en Python peuvent être compliquées à gérer pour différentes applications

  • Les environnements virtuels permettent de gérer ces dépendances par application, exemple:

module load python/3.8 #charge python

virtualenv env --no-download #crée l’env virtuel

source env/bin/activate #active l’env

pip install --no-index seaborn==0.13 #installe les paquets

deactivate #quitte l’env

Nous vous demandons de ne pas utiliser conda

  • Réplication des environnements avec les commandes:�pip freeze > requirements.txt #liste librairies installées�pip install -r requirements.txt #duplication env.

40

41 of 63

Installer des logiciels

  • Vous avez bien sûr le droit d'installer des logiciels dans votre répertoire personnel.

  • Vous pouvez également faire une demande à support@tech.alliancecan.ca pour qu’un logiciel soit ajouté aux modules ou aux wheels.

41

42 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

42

43 of 63

Architecture des grappes

ssh moi@...

Stockage

home

project

scratch

Internet

Noeud de connexion

Ethernet

Infiniband

Ordonnanceur

Job

Job

Noeuds de calcul

Les tâches ne doivent pas être exécutées sur les noeuds de connexion

43

44 of 63

L’ordonnanceur

Programme qui gère :

  • L’heure de départ des tâches
  • La priorité des tâches
  • L’accès aux ressources

44

45 of 63

L’ordonnanceur

  • Maximise l’utilisation des ressources de la grappe

  • Contrôle automatiquement le lancement des tâches de calcul en fonction des ressources demandées, du temps et des priorités des usagers

  • L’heure à laquelle chaque tâche sera exécutée est inconnue! Mais plus grand est la tâche, plus long sera le temps d’attente

Ressources

Temps

Priorité

Tâches

45

46 of 63

Limites de ressources

Toutes les grappes ont des limites de ressources

Cœurs par nœud

32 à 64

Mémoire par nœud

96 Go à 4 To

Durée maximale des tâches

de 1 à 28 jours

GPU par nœud

2 à 8 (4 pour la plupart)

Vitesse du réseau

100 Gb/s

46

47 of 63

Script de soumission de tâches

Interpréteur

#!/bin/bash

Ressources à utiliser [valeur de défaut]

#SBATCH --nodes=1 [1]

#SBATCH --cpus-per-task=1 [1]

#SBATCH --mem-per-cpu=1G [256M]

#SBATCH --time=3:00:00 [1:00:00]

Allocation

#SBATCH --account=def-<sponsor>

Commandes

module load python/3.11

python script.py file1.dat

47

48 of 63

Commandes utiles

Action

Commande

Retourne

Soumettre une tâche

sbatch <script.sh>

Numéro de la tâche

Afficher les tâches

squeue -u $USER

Liste de tâches

Annuler une tâche

scancel <jobid>

N/A

Statistique d’une tâche

seff <jobid>

Efficacité du calcul

48

49 of 63

Exercice 4

1) Allez dans: ~/cip101-exercices-main/python/01-version

2) Utilisez un éditeur de texte, par exemple nano, pour éditer le script:

nano script.sh

3) Demandez 1 cœur et 256 MB de mémoire pendant une minute

4) Charger la dernière version de Python et exécutez la commande:

python --version

5) Soumettez le script.

6) Où se trouve le résultat de la commande?

7) Le calcul a-t-il été efficace ?

49

50 of 63

Tâches en série et parallèles

Tâches en série: Ces tâches utilisent un seul cœur (CPU) sur un seul nœud. Ça ne sert à rien de demander plus de ressources de calcul parce que cela n’augmentera pas la vitesse: le logiciel ne peut que s’exécuter sur un seul cœur.

Tâches parallèles: �Utilisent plusieurs cœurs, potentiellement sur plusieurs nœuds. Il y en a deux types:

  • Parallélisme des tâches
  • Parallélisme des données

50

51 of 63

Parallélisme des données

  • Le parallélisme de données est la même tâche, souvent séquentielle, répétée plusieurs fois sur plusieurs jeux de données, par exemple:
    • Filtre sur chaque pixel d’une image
    • Traitement indépendant de 100 échantillons de patients différents
    • Compter les occurrences d’un mot dans des milliers de documents
    • Mouvement d’atomes sans interaction dans un champ magnétique

Les données d’entrées et les résultats sont indépendants les uns des autres!

51

52 of 63

Parallélisme des données

Exemple : construire un quartier de 6 maisons identiques

  • Chaque maison est indépendante
  • Chaque maison est construite par une personne

52

53 of 63

Parallélisme des tâches

  • Le parallélisme de tâche est une seul tâche traitant un seul jeu de donnée, mais roulant sur plusieurs coeurs (CPU) pour accélérer le traitement:
    • Mouvement d’atomes avec interaction dans un champ magnétique
    • Simulation avec éléments finis, volumes finis ou différences finies (mécanique des fluides, simulation climatique, …)

Nécessite de la communication et de la synchronisation entre les processus de calcul

53

54 of 63

Parallélisme des tâches

Exemple : construire un quartier de 6 maisons identiques

  • Chaque maison est indépendante
  • Chaque maison est construite par plusieurs personnes
  • Les personnes sur le chantier doivent communiquer pour faire un bon travail

54

55 of 63

Bonus: usage interactif

  • Il est possible d’utiliser interactivement les noeuds de calcul par une demande à l’ordonnanceur, c’est une tâche interactive
  • Utile pour:
    • Outil interactif en ligne de commande comme R ou IPython
    • Débogage de code et compilation
    • Exploration de données lourdes
  • Accès par la commande salloc:�salloc --time=1:0:0 --cpus-per-tasks=2 --mem=4G --account=def-someuser

Les tâches batch (sbatch) sont les tâches qui utilisent le plus efficacement les ressources des grappes et doivent être privilégiées.

55

56 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

56

57 of 63

Des problèmes d’exécution?

  • Jetez un coup d’œil aux fichiers de sortie
  • Allez voir un collègue avec plus d’expérience
  • Trouvez une référence sur notre wiki
  • Écrivez nous: support@tech.alliancecan.ca

57

58 of 63

Parcours de l’usager type

Réaliser qu’on �a besoin de �Calcul Québec

Créer un compte

Accéder au compte

Transférer, installer, configurer

Exécuter �une tâche

Rencontrerun problème

Récupérerles résultats

58

59 of 63

Transférer des données (rappel)

  • Pour des petits fichiers sur des petites distances, utiliser scp (secure copy): scp [source] [destination]
  • Exemple depuis la grappe vers l’ordinateur:scp username@grappe:fichier1.dat .
  • Outils graphique disponible comme: WinSCP ou FileZilla
  • Globus, la meilleure option pour de larges fichiers (plusieurs GB) sur des courtes ou longues distances (Montreal à Vancouver, par exemple).

59

60 of 63

Formations qui pourraient vous intéresser

Mercredi 5 mars 10h

Mercredi 26 mars 9h

Mercredi 12 mars 10h

61 of 63

Sondage de satisfaction

Nous vous remercions de prendre quelques minutes pour nous partager vos impressions au sujet de cette formation.

61

62 of 63

Restons en contact!

Pour recevoir l’information liée à nos services et activités, vous pouvez:

  • Consulter notre site web

  • Vous abonner à nos bulletins d’information

  • Vous abonner à nos réseaux sociaux

62

63 of 63

Questions ?

Merci de votre participation !