Skip to content

Présentation et utilisation de la plateforme

Introduction

La plateforme ensicompute est destinée aux enseignements en IA / Deep Learning de l'Ensimag et des autres acteurs pédagogiques de Grenoble INP, UGA. Elle est composée de 13 serveurs et 35 GPU Nvidia qui ont été financés par un projet Idex et un projet Persyval. Le système d'exploitation utilisé par les serveurs de la plateforme est Linux Ubuntu 24. La solution libre et open source Slurm est utilisée comme gestionnaire de batchs pour dispatcher l'exécution des programmes demandés, sur les 13 serveurs et leurs cartes GPU : https://slurm.schedmd.com/.

Prérequis

Il faut avoir un compte informatique Ensimag pour accéder à la plateforme. C'est automatique pour les étudiants Ensimag. Pour les autres unités d'enseignement hors Ensimag, les enseignants concernés font la demande de création des comptes informatiques étudiants auprès du service informatique Ensimag (support.info@ensimag.fr).

Guide d'utilisation général

La plateforme est accessible en se connectant en ssh à la frontale nash.ensimag.fr. Comme les autres services de l'Ensimag, cette frontale est accessible :

  • soit en étant connecté à un VPN (Ensimag ou grenet.fr) ;
  • soit directement depuis les machines des salles de TP.

Les homedirs et répertoires partagés importants, comme /matieres, sont montés à la fois sur cette frontale et sur les serveurs de la plateforme.

Cette frontale permet :

  • de préparer un exécutable en vue de son exécution sur la plateforme (compilation, ...) ;
  • de lancer une exécution sur la plateforme via slurm, en utilisant srun ou sbatch.

Exemple d'exécution d'un programme python via slurm, depuis nash :

(opt) broquedf@nash:~$ srun --gres=shard:1 --cpus-per-task=4 --mem=2GB python3 train.py 4

Cette commande lance une réservation sur la plateforme pour exécuter le programme python3 train.py 4 avec les options suivantes :

  • --gres=shard:1 indique qu'on souhaite utiliser une partition de GPU : obligatoire si votre job s'exécute sur GPU ;
  • --cpus-per-task=4 indique qu'on souhaite affecter 4 CPUs à notre job slurm (dans le cas d'une exécution sur GPU, un CPU doit être dédié au transfert sur carte). Sans cette option, slurm réserve tous les coeurs disponibles sur le serveur, ce qui revient à réserver le serveur entier ! ;
  • --mem=2GB indique que notre job utilisera jusqu'à 2GB de RAM (on parle ici bien de RAM et pas de quantité de mémoire sur le GPU). Sans cette option, slurm réserve toute la RAM disponible sur le serveur, ce qui revient à réserver le serveur entier !

Une fois notre job lancé, on peut consulter son état avec la commande squeue (ici, le job est R pour running) :

(opt) broquedf@nash:~$ squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
             12378   rtx6000  python3 broquedf  R       0:28      1 turing-1

On peut aussi tuer un job avec la commande scancel :

(opt) broquedf@nash:~$ scancel 12378 # pour ne tuer que le job 12378
(opt) broquedf@nash:~$ scancel -u broquedf # pour tuer tous les jobs de l'utilisateur broquedf

Guide d'utilisation en salle TP Ensimag

En salle TP Ensimag, il est bien entendu possible de préparer l'exécutable sur les ensicpxxx.

Cela peut être même utile par exemple si un outil de compilation ou une librairie se trouvent sur les ensipcxxx et pas encore sur la frontale nash.ensimag.fr

Il suffit dans ce cas de compiler dans son homedir sur la session ensipcxxx puis de se connecter sur nash.ensimag.fr pour lancer l'exécution sur la plateforme GPU (le homedir étant accessible depuis nash également). NOTA BENE : depuis une session ensipcxxx, utilisez l'option -K pour ssh sur nash.ensimag.fr

Exemple d'un programme C compilé sur ensipcxxx puis exécuté depuis nash :

kocelnip@ensipc68:~/gemm/build$ cmake ../
kocelnip@ensipc68:~/gemm/build$ make
kocelnip@ensipc68:~/gemm/build$ ls
   ... gemm_cpu gemm_cuda ...
kocelnip@ensipc68:~/gemm/build$ ssh -K kocelnip@nash.ensimag.fr
(opt) kocelnip@nash:~/gemm/build$ srun --gres=shard:1 --cpus-per-task=4 --mem=2GB ./gemm_cuda

Guide d'utilisation en mode graphique X

En cas de besoin de retour graphique en mode X d'un programme, il suffit de se connecter en ssh à avec l'option -X puis d'exécuter srun avec l'option -x11. NOTA BENE : depuis les ensipcxxx des salles de TP Ensimag, ajouter l'option -K permet de forwarder l'identification actuelle, ce qui facilite la connexion sans resaisir le mot de passe.

kocelnip@ensipc68:~/gemm/build$ ssh -K -X kocelnip@nash.ensimag.fr
(opt) kocelnip@nash:$ srun --x11 --gres=shard:1 --cpus-per-task=4 --mem=2GB ./gemm_cuda_X
En cas de message d'erreur du style "X11 Forwarding not available", précisez le $DISPLAY
echo $DISPLAY 
nash.ensimag.fr:10.0
(opt) kocelnip@nash:$ srun --x11=nash.ensimag.fr:10.0 --gres=shard:1 --cpus-per-task=4 --mem=2GB ./gemm_cuda_X

Description matérielle détaillée

Une description détaillée de la plateforme est disponible ici : Description du matériel