====== Travailler en accès direct (sans SLURM) ======
Les serveurs en accès direct s'utilisent comme votre PC : vous vous connectez et vous lancez vos programmes directement, **sans passer par SLURM**. C'est idéal pour développer, tester, travailler en interactif, utiliser [[vscode|VS Code]].
Vos fichiers sont les mêmes que sur le cluster : votre répertoire personnel est partagé entre tous les serveurs.
^ Serveur ^ Cœurs ^ Mémoire ^ GPU ^
| christmas | 64 | 512 Go | |
| l40s02 | 32 | 125 Go | NVIDIA L40S |
Ces serveurs sont **partagés** et aucun outil ne répartit les ressources entre les utilisateurs : c'est à vous de laisser de la place aux autres. Pour des calculs lourds ou nombreux, utilisez le [[demarrage|cluster SLURM]].
===== 1. Se connecter =====
Si vous n'êtes pas dans le bâtiment ISIMA, connectez-vous d'abord au VPN. Puis, dans un terminal de votre PC, tapez :
ssh login@christmas
Remplacez ''login'' par votre identifiant et ''christmas'' par le serveur en accès direct de votre choix.
Vous pouvez aussi vous connecter avec [[vscode|VS Code]], pour éditer vos fichiers et lancer vos commandes directement depuis l'éditeur.
===== 2. Vérifier que le serveur n'est pas trop chargé =====
Avant de lancer un programme, regardez ce qui tourne déjà. Dans le terminal, tapez :
top
La liste montre les programmes en cours et la mémoire libre (ligne ''MiB Mem''). Tapez ''q'' pour quitter.
Sur les serveurs avec GPU, regardez aussi l'occupation des cartes :
nvidia-smi
===== 3. Lancer son programme =====
Lancez votre programme comme sur votre PC :
./mon_exe
==== Dans une image Apptainer ====
Pour travailler dans votre image (voir [[apptainer|Apptainer]]), ouvrez un terminal à l'intérieur de l'image :
apptainer shell mon_image.sif
Le début de la ligne de commande devient ''Apptainer>'' : vous êtes dans l'image, avec tous les logiciels que vous y avez installés. Tapez ''exit'' pour en sortir.
Pour lancer une seule commande dans l'image, sans y entrer :
apptainer exec mon_image.sif ./mon_exe
Sur un serveur avec GPU, ajoutez l'option ''%%--nv%%'' pour que l'image ait accès à la carte : ''apptainer shell %%--nv%% mon_image.sif''.
===== 4. Calcul long : ne pas le perdre en se déconnectant =====
Un programme lancé normalement s'arrête quand vous fermez le terminal ou que la connexion coupe. Pour un calcul long, lancez-le dans une session ''tmux'' : elle continue de tourner sur le serveur même quand vous êtes déconnecté.
Ouvrez une session (ici nommée ''calcul''). Dans le terminal, tapez :
tmux new -s calcul
Le terminal se vide, avec une barre verte en bas : vous êtes dans la session. Lancez votre programme normalement :
./mon_exe
Pour quitter la session **sans arrêter le programme**, appuyez sur ''Ctrl+b'', relâchez, puis appuyez sur ''d''. Vous pouvez ensuite vous déconnecter du serveur.
Plus tard, reconnectez-vous **au même serveur** et retrouvez votre session, avec tout ce que votre programme a affiché :
tmux attach -t calcul
* Voir la liste de vos sessions : ''tmux ls''
* Fermer définitivement une session : dans la session, tapez ''exit''
**Calculs de plus de 10 heures : utilisez le cluster SLURM.**
L'accès à vos fichiers est protégé par un « ticket » de connexion, valable environ 10 heures à partir de votre connexion : après 10h, votre programme ne peut plus lire ni écrire vos fichiers (erreur ''Permission denied''), même s'il tourne toujours.
Sur le cluster, les tickets des jobs sont renouvelés automatiquement : un job peut tourner plusieurs jours sans problème.
===== Les règles =====
* **Vérifiez la charge** du serveur avant de lancer un programme.
* **N'utilisez jamais 100 % d'un serveur** : laissez toujours des cœurs et de la mémoire aux autres.
* **Calculs longs ou nombreux : utilisez le cluster.** Les jobs y sont répartis automatiquement par SLURM.
Plus de détails dans les [[pratique|bonnes pratiques]].