EPFL-ENAC | Informatique ENAC-IT

Salles informatiques ENAC-SSIE - Utilisation de SLURM

Cette documentation ne représente qu'une courte introduction pour utiliser quelques fonctionnalités de base de SLURM. Pour plus d'information, consultez la documentation officielle (English).

Table des matières


Salles concernées
Introduction

Il arrive régulièrement pour un scientifique d'avoir des calculs volumineux à effectuer. Lorsque ceux-ci commencent à utiliser trop de mémoire pour leur propre machine ou qu'ils atteignent des temps de calculs trop long, il devient intéressant de les faire tourner sur des machines dédiées.
En fonction des besoins (quantité de mémoire, temps processeur, nombre de run, ...) l'utilisateur va choisir un type d'infrastructure allant des grilles de calcul jusqu'aux plus gros clusters HPC.
Vous pouvez trouver ici (http://scitas.epfl.ch/) plus d'information sur les ressources HPC de l'école.

Principes de base de SLURM

SLURM (Simple Linux Utility for Resource Management) est un outil permettant d'exécuter des jobs sur un pool de noeuds. Il gère la queue dans laquelle chaque job se retrouve en attendant d'obtenir une machine pour s'exécuter. Chaque machine de chaque salle se trouve dans un groupe de noeuds appelé "partition". Ainsi un utilisateur va pouvoir soumettre un job sur une partition. dès que les ressources nécessaires sont à disposition dans cette partition, le job y est lancé.
Ainsi pour l'utilisateur désirant soumettre un job, il faudra :

  1. préparer un court script décrivant les ressources qui seront nécessaires à l'exécution de celui-ci
  2. utiliser des commandes simples pour placer le job dans la queue, conna√ģtre l'avancement de celui-ci, ...

Architecture

SLURM est basé sur une architecture 1 serveur - n noeuds de calcul. Chaque machine des salles mentionnées est ainsi considérée comme un noeud de calcul depuis lequel l'utilisateur peut soumettre des job et sur lequel des jobs vont être exécutés.
Les machines des salles GR B0 01 et GR C0 02 sont équipées de 1 processeur quad-core 2 threads, ce qui permet à 8 jobs d'y tourner en parallèle. Elles ont 16GB de RAM.
Les machines de la salle GC D0 383 sont équipées de 1 processeur quad-core 1 thread, ce qui permet à 4 jobs d'y tourner en parallèle. Elles ont 8GB de RAM.
√Čtant donn√© que l'arborescence de fichiers de l'utilisateur (/home/username) ne se trouve pas sur les machines de salles mais est rendue accessible uniquement lors du login de l'utilisateur, une nouvelle arborescence d√©di√©e au calcul avec SLURM est √† disposition. Chaque utilisateur ayant acc√®s √† SLURM a automatiquement un dossier associ√© : /enac_slurm/username.

Demande d'accès
L'authentification sur les machines de ces salles est possible pour toute personne ayant un compte dans l'annuaire de l'EPFL. Néanmoins l'utilisation de SLURM n'est possible que sur demande auprès du sous-signé. Le demandeur doit préciser :

L'objectif de ces salles informatiques est et reste l'enseignement. L'utilisation de SLURM dans ces salles doit donc rester aligné à ce principe.


Le job
Afin de pouvoir lancer une ex√©cution sur un ou des noeuds de calcul, il est n√©cessaire de d√©clarer les caract√©ristiques de celui-ci. C'est le r√īle des fichiers exemples suivants.
Le job simple
Particularité : Ce job est exécuté une seule fois (par oposition au job array décrit plus bas).

Exemple de job simble en Bash :

simple.sh
#!/bin/bash
# Bancal Samuel

# Always :
#SBATCH --job-name="Simple test"
#SBATCH --partition=gcd0383
#SBATCH --account=gcd0383
#SBATCH --time=0-00:00:30
#SBATCH --output=log-%j.out
#SBATCH --error=log-%j.err

hostname
for i in $(seq 5 -1 1); do
    echo $i;
    sleep 1;
done
echo Done.
                                
Chaque ligne commençant par "#SBATCH " décrit un paramètre SLURM. Il est important que ces paramètres se trouvent en haut de fichier avant la première instruction à exécuter.
En voici un bref descriptif :
  • job-name : donne le nom du job (vu dans les outils slurm comme squeue ou smap)
  • partition : groupe de machine sur lequel le job va tourner. Possibilit√©s : grb001, grc002, ssie, gcd0383
  • account : compte permettant de placer son job sur une partition. Mettre toujours la m√™me info que partition.
  • time : temps allou√© au job. Au del√† de celui-ci, SLURM tuera l'ex√©cution du job. Note : Il est int√©ressant de bien √©valuer le temps pr√©vu pour 1) une meilleur cohabitation avec les autres utilisateurs dans le cas o√Ļ mon code est mal fait 2) dans le cas o√Ļ un petit slot temps est √† disposition, SLURM √©value quel job peut y √™tre plac√©. Ceux avec une indication suffisament courte ont d'autant plus de chance d'y acc√©der. Pr√©voyez une petite marge tout de m√™me!
  • output : le fichier o√Ļ sera √©crit le contenu envoy√© dans le stdout lors de l'ex√©cution. %j est remplac√© par le num√©ro du job.
  • error : le fichier o√Ļ sera √©crit le contenu envoy√© dans le stderr lors de l'ex√©cution
D'autres paramètres peuvent encore être ajoutés, tels que :
  • mail-type : d√©crit dans quel cas on souhaite recevoir une alerte e-mail (valeurs possibles : BEGIN, END, FAIL, REQUEUE, ALL)
  • mail-user : le destinataire des e-mails
  • nodes : le nombre de noeuds allou√©s pour le job
  • cpus-per-task : le nombre de processeurs par job
  • mem-per-cpu : le besoin en m√©moire du job

Le job array
Particularité : Ce job est exécuté plusieurs fois. Pour chaque exécution, la variable d'environnement SLURM_ARRAY_TASK_ID prend successivement une valeur décrite par le paramètre --array.

Exemple de job array en Bash :

array.sh
#!/bin/bash
# Bancal Samuel

# Always :
#SBATCH --job-name="Array test"
#SBATCH --partition=gcd0383
#SBATCH --account=gcd0383
#SBATCH --time=0-00:00:30
#SBATCH --output=log-array-%A_%a.out
#SBATCH --error=log-array-%A_%a.err

# Job-Array
#SBATCH --array=0-7

echo "Job ${SLURM_ARRAY_JOB_ID}_${SLURM_ARRAY_TASK_ID} running on $(hostname)"
for i in $(seq 5 -1 1); do
    echo $i;
    sleep 1;
done
echo Done.
                                    
Les paramètres qui changent de l'exemple précédent sont :
  • output : qui contient dans sa valeur %A qui donne le job id et %a qui donne le task id
  • error : identique √† output
  • array : indique les valeurs d√©sir√©es pour la variable d'environnement SLURM_ARRAY_TASK_ID. Il y aura autant de run que de valeurs.

Le job array en Python
Voici un second exemple de job array, en Python. Il a pour but de traiter (avec la fonction factice do_heavy_job) des jeux de données situés dans 8 fichiers différents :
array.py
#!/usr/bin/env python
# Bancal Samuel

# Always :
#SBATCH --job-name="Array Python test"
#SBATCH --account=gcd0383
#SBATCH --partition=gcd0383
#SBATCH --time=0-00:00:30
#SBATCH --output=log-array-%A_%a.out
#SBATCH --error=log-array-%A_%a.err

# Job-Array
#SBATCH --array=0-7

import os
import my_processing_lib # dummy lib used for this demo

TASKS = {
    "0" : "data_to_process_0.dat",
    "1" : "data_to_process_1.dat",
    "2" : "data_to_process_2.dat",
    "3" : "data_to_process_3.dat",
    "4" : "data_to_process_4.dat",
    "5" : "data_to_process_5.dat",
    "6" : "data_to_process_6.dat",
    "7" : "data_to_process_7.dat",
}

if __name__ == "__main__":
    job_id = os.environ["SLURM_ARRAY_JOB_ID"]
    task_id = os.environ["SLURM_ARRAY_TASK_ID"]
    node_name = os.uname()[1]

    print "This is job %s_%s running on %s" % (job_id, task_id, node_name)

    my_processing_lib.do_heavy_job(TASKS[task_id])

    print "Done."
                                
Le job simple avec Matlab et Octave
Voici un exemple de code MATLAB (simple_job.m) qui peut être exécuté par SLURM soit :
  • avec MATLAB (simple_job_matlab.sh)
  • avec Octave (simple_job_octave.sh)
simple_job.m
% simple_job.m                                 (ENAC-IT / JDB / 27.9.2013)
%
% Exemple de script MATLAB/Octave produisant des données et un graphique
% que l'on peut lancer en batch (p.ex. sous SLURM) avec :
%   HOME=/tmp/$USER matlab -nosplash -nodisplay -nodesktop -r simple_job
%   HOME=/tmp/$USER octave --silent --norc --no-window-system simple_job.m

data = randn(100,3)
fig = figure;
plotmatrix(data , 'g+');
saveas(fig, 'job_graph.png', 'png')
quit
                            
simple_job_matlab.sh
#!/bin/bash
# Bancal Samuel

# Always :
#SBATCH --job-name="Simple job with Matlab"
#SBATCH --partition=gcd0383
#SBATCH --account=gcd0383
#SBATCH --time=0-00:05:00
#SBATCH --output=log-%j.out
#SBATCH --error=log-%j.err

HOME=/tmp/$USER matlab -nosplash -nodisplay -nodesktop -r simple_job
                            
simple_job_octave.sh
#!/bin/bash
# Bancal Samuel

# Always :
#SBATCH --job-name="Simple job with Octave"
#SBATCH --partition=gcd0383
#SBATCH --account=gcd0383
#SBATCH --time=0-00:05:00
#SBATCH --output=log-%j.out
#SBATCH --error=log-%j.err

HOME=/tmp/$USER octave --silent --norc --no-window-system simple_job.m
                            

Les commandes de base
Une fois le fichier de job écrit et placé dans l'arborescence /enac_slurm/username/..., vous pouvez alors le soumettre à SLURM pour être exécuté. En voici les principales commandes.
sinfo (http://www.schedmd.com/slurmdocs/sinfo.html)
Permet d'obtenir les infos sur les noeuds de calcul. Exemples :
  • Lister toutes les machines :
    $ sinfo
    PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
    grb001       up 31-00:00:0     42  down* siepc-[01-42]
    grc002       up 31-00:00:0     24  down* siepc-[51-61,65-76]
    grc002       up 31-00:00:0      3  alloc siepc-[63-64,77]
    grc002       up 31-00:00:0      1    mix siepc-62
    gcd0383      up 31-00:00:0     15   idle lasigpc[192-206]
                                            

    Nous pouvons voir ici 4 états courants pour des machines de salles servant de noeuds de calcul :

    • down: Noeud √©teint
    • idle: Noeud disponible, sans activit√© pour le moment
    • mix: Noeud sur partiellement allou√© pour du calcul.
    • alloc: Noeud enti√®rement allou√© pour du calcul

  • Lister les machines qui r√©pondent (-r, --responding)
    $ sinfo -r
    PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
    grb001       up 31-00:00:0      0    n/a
    grc002       up 31-00:00:0      4   idle siepc-[62-64,77]
    gcd0383      up 31-00:00:0      0    n/a
                                            
sbatch (http://www.schedmd.com/slurmdocs/sbatch.html)
Permet de soumettre un job. Pour celà, plusieurs paramètres (comme --job-name="test" --account=gcd0383 --partition=gcd0383 --output=log-%j.out --error=log-%j.err) doivent être spécifiés. Mais comme nous les avons déjà précisés dans les fichiers (documentés ci-dessus), son exécution devient alors triviale. Exemple :
$ cd /enac_slurm/bancal/slurm/simple/
$ sbatch simple.sh
Submitted batch job 873
                                
squeue (http://www.schedmd.com/slurmdocs/squeue.html)
Permet de conna√ģtre l'√©tat de la queue. Exemples :
  • Un job array dans la queue pour lequel il n'y a pas de resources √† disposition pour le moment :
    $ squeue
        JOBID  PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
    887_[0-7]    gcd0383 Array Py   bancal PD       0:00      1 (Resources)
                                            
  • Avec raffra√ģchissement de l'affichage (-i, --iterate). Exemple donn√© pour un job array de 8 t√Ęches:
    $ squeue -i1
    Tue Oct  1 14:36:45 2013
                 JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
           942_[12-15]    grc002   Array1   bancal PD       0:00      1 (Resources)
                 942_0    grc002   Array1   bancal  R    INVALID      1 siepc-77
                 942_1    grc002   Array1   bancal  R    INVALID      1 siepc-77
                 942_2    grc002   Array1   bancal  R    INVALID      1 siepc-77
                 942_3    grc002   Array1   bancal  R    INVALID      1 siepc-77
                 942_4    grc002   Array1   bancal  R    INVALID      1 siepc-63
                 942_5    grc002   Array1   bancal  R    INVALID      1 siepc-63
                 942_6    grc002   Array1   bancal  R    INVALID      1 siepc-63
                 942_7    grc002   Array1   bancal  R    INVALID      1 siepc-63
                 942_8    grc002   Array1   bancal  R    INVALID      1 siepc-64
                 942_9    grc002   Array1   bancal  R    INVALID      1 siepc-64
                942_10    grc002   Array1   bancal  R    INVALID      1 siepc-64
                942_11    grc002   Array1   bancal  R    INVALID      1 siepc-64
    [...]
    Tue Oct  1 14:37:48 2013
                 JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
            990_[0-15]    grc002   Array4   bancal PD       0:00      1 (Priority)
                  1006    grc002  Simple1   bancal PD       0:00      1 (None)
                  1007    grc002  Simple2   bancal PD       0:00      1 (None)
                  1008    grc002  Simple3   bancal PD       0:00      1 (None)
            974_[0-15]    grc002   Array3   bancal PD       0:00      1 (Priority)
            958_[0-15]    grc002   Array2   bancal PD       0:00      1 (Priority)
           942_[12-15]    grc002   Array1   bancal PD       0:00      1 (Resources)
                 942_0    grc002   Array1   bancal  R       0:51      1 siepc-77
                 942_1    grc002   Array1   bancal  R       0:51      1 siepc-77
                 942_2    grc002   Array1   bancal  R       0:51      1 siepc-77
                 942_3    grc002   Array1   bancal  R       0:51      1 siepc-77
                 942_4    grc002   Array1   bancal  R       0:51      1 siepc-63
                 942_5    grc002   Array1   bancal  R       0:51      1 siepc-63
                 942_6    grc002   Array1   bancal  R       0:51      1 siepc-63
                 942_7    grc002   Array1   bancal  R       0:51      1 siepc-63
                 942_8    grc002   Array1   bancal  R       0:51      1 siepc-64
                 942_9    grc002   Array1   bancal  R       0:51      1 siepc-64
                942_10    grc002   Array1   bancal  R       0:51      1 siepc-64
                942_11    grc002   Array1   bancal  R       0:51      1 siepc-64
    [...]
    Tue Oct  1 14:38:07 2013
                 JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
                 942_0    grc002   Array1   bancal CG       1:20      1 siepc-77
                 942_1    grc002   Array1   bancal CG       1:20      1 siepc-77
                 942_2    grc002   Array1   bancal CG       1:20      1 siepc-77
                 942_3    grc002   Array1   bancal CG       1:20      1 siepc-77
                 942_4    grc002   Array1   bancal CG       1:20      1 siepc-63
                 942_5    grc002   Array1   bancal CG       1:20      1 siepc-63
                 942_6    grc002   Array1   bancal CG       1:20      1 siepc-63
                 942_7    grc002   Array1   bancal CG       1:20      1 siepc-63
                 942_8    grc002   Array1   bancal CG       1:20      1 siepc-64
                 942_9    grc002   Array1   bancal CG       1:20      1 siepc-64
                942_10    grc002   Array1   bancal CG       1:20      1 siepc-64
                942_11    grc002   Array1   bancal CG       1:20      1 siepc-64
                  1008    grc002  Simple3   bancal PD       0:00      1 (None)
                  1006    grc002  Simple1   bancal PD       0:00      1 (None)
                  1007    grc002  Simple2   bancal PD       0:00      1 (None)
            990_[0-15]    grc002   Array4   bancal PD       0:00      1 (Priority)
            974_[0-15]    grc002   Array3   bancal PD       0:00      1 (Priority)
            958_[0-15]    grc002   Array2   bancal PD       0:00      1 (Priority)
           942_[12-15]    grc002   Array1   bancal PD       0:00      1 (Resources)
    [...]
                                            

    Dans cet exemple nous pouvons voir 3 des 9 états d'un job :

    • PD (PENDING): le job est en attente
    • R (RUNNING): le job est en train de s'ex√©cuter
    • CG (COMPLETING): l'ex√©cution du job est finie, SLURM est en train finaliser les op√©rations
    • CD (COMPLETED): l'ex√©cution est termin√©e avec succ√®s
    • CA (CANCELLED): le job a √©t√© annul√©
    • CF (CONFIGURING): le job a obtenu les ressources pour √™tre ex√©cut√©. Phase d'initialisation
    • F (FAILED): l'ex√©cution est termin√©e avec une erreur
    • TO (TIMEOUT): l'ex√©cution a d√©pass√© le temps imparti
    • NF (NODE FAILURE): le job a √©chou√© en raison d'un noeud qui a rencontr√© une erreur (reboot possible par un utilisateur)

    Note : Le TIME="INVALID" semble signifier qu'il n'y a pour l'instant pas de mesure de temps pour le job en question. Ce n'est pas un message d'erreur.

scancel (www.schedmd.com/slurmdocs/scancel.html)
Permet de retirer un job de la queue. Exemple pour retirer toutes les t√Ęches d'un job array :
$ sbatch array.py
Submitted batch job 879
$ scancel 879
                                
smap (http://www.schedmd.com/slurmdocs/smap.html)
Permet d'avoir une vue graphique des jobs qui tournent, qui attendent et des noeuds de calcul. Exemples :
  • Aucun job ne tourne. Ceux pr√©sents attendent des ressources sur la partition grc002 qui n'a aucune machine √† disposition pour le moment :
    $ smap
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |........................................................................................                                                                     |
    |                                                                                                                                                             |
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |Thu Sep 26 16:55:08 2013                                                                                                                                     |
    |ID JOBID   PARTITION USER     NAME      ST      TIME NODES NODELIST                                                                                          |
    |A  887     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |B  888     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |C  889     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |D  890     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |E  891     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |F  892     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |G  893     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |H  894     grc002    bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
                                            
  • Trois instantan√©s dans l'ex√©cution d'un job array (il est aussi possible d'utiliser -i, --iterate pour raffra√ģchir automatiquement l'affichage) :
    $ smap
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |.......................................................................................D                                                                     |
    |                                                                                                                                                             |
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |Thu Sep 26 17:03:52 2013                                                                                                                                     |
    |ID JOBID   PARTITION USER     NAME      ST      TIME NODES NODELIST                                                                                          |
    |A  895     gcd0383   bancal   Array Pyt R   00:01:04     1 lasigpc197                                                                                        |
    |B  896     gcd0383   bancal   Array Pyt R   00:01:04     1 lasigpc197                                                                                        |
    |C  897     gcd0383   bancal   Array Pyt R   00:01:04     1 lasigpc197                                                                                        |
    |D  898     gcd0383   bancal   Array Pyt R   00:01:04     1 lasigpc197                                                                                        |
    |E  899     gcd0383   bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |F  900     gcd0383   bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |G  901     gcd0383   bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    |H  902     gcd0383   bancal   Array Pyt PD  00:00:00     1 waiting...                                                                                        |
    *-------------------------------------------------------------------------------------------------------------------------------------------------------------*
    
    $ smap
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |.......................................................................................D                                                                    |
    |                                                                                                                                                            |
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |Thu Sep 26 17:03:59 2013                                                                                                                                    |
    |ID JOBID   PARTITION USER     NAME      ST      TIME NODES NODELIST                                                                                         |
    |A  899     gcd0383   bancal   Array Pyt R    INVALID     1 lasigpc197                                                                                       |
    |B  900     gcd0383   bancal   Array Pyt R    INVALID     1 lasigpc197                                                                                       |
    |C  901     gcd0383   bancal   Array Pyt R    INVALID     1 lasigpc197                                                                                       |
    |D  902     gcd0383   bancal   Array Pyt R    INVALID     1 lasigpc197                                                                                       |
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    
    $ smap
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |........................................................................................                                                                    |
    |                                                                                                                                                            |
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
    |Thu Sep 26 17:04:04 2013                                                                                                                                    |
    |ID JOBID   PARTITION USER     NAME      ST      TIME NODES NODELIST                                                                                         |
    |                                                                                                                                                            |
    *------------------------------------------------------------------------------------------------------------------------------------------------------------*
                                            
sacct (www.schedmd.com/slurmdocs/sacct.html)
Permet d'afficher quantités d'informations sur les jobs, notament ceux terminés :
$ sacct -S 2013-09-01
       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
942           Array1_16     grc002     grc002          2    TIMEOUT      0:1
942.batch         batch                grc002          1  CANCELLED     0:15
[...]
950          Simple te+     grc002     grc002          0 CANCELLED+      0:0
[...]
953          Array Pyt+     grc002     grc002          2  COMPLETED      0:0
953.batch         batch                grc002          1  COMPLETED      0:0
[...]
965          Array Pyt+     grc002     grc002          2     FAILED      1:0
965.batch         batch                grc002          1     FAILED      1:0
[...]
1030            Simple8     grc002     grc002          2    RUNNING      0:0
                                

parmis les arguments intéressants :

  • -S, --starttime YYYY-MM-DD[THH:MM[:SS]]: filtre en fonction de leur date de lancement. Par d√©faut, sacct n'affiche que les jobs du jour.
  • -s, --state: filtre en fonction de leur √©tat (CA cancelled, CD completed, F failed, NF node_fail, PD pending, R running, TO timeout, ...)
  • -r, --partition: filtre en fonction de la partition
  • --name=jobname_list: filtrer sur le nom du job
  • --format: Permet de choisir les champs affich√©s. Par d√©faut : --fornat=jobid,user,account,cluster. Il peut √™tre int√©ressant de rajouter elapsed pour conna√ģtre la dur√©e d'ex√©cution.

FAQ
J'ai lancé un job, il ne se trouve plus dans la queue et je ne trouve aucune trace de log ou de fichier résultat écrits par celui-ci.
Il est impératif que tout ce qui est nécessaire à l'exécution du code, ainsi que tous les fichiers qui sont écrits par le code se trouvent sur la partition /enac_slurm. Le contenu de la partition /home que vous utilisez pour les autres activités de votre session ne sont pas disponibles lorsque vous n'être pas connecté sur la machine.
O√Ļ se trouvent les fichiers de log?
Comme d√©crits dans cette documentation, les fichiers de log seront √©crits dans le dossier courant d'o√Ļ sera ex√©cut√© l'instruction sbatch. L'instruction pwd indique le dossier courant.
Bon exemple :
$ pwd
/enac_slurm/bancal/slurm/simple
$ sbatch simple.sh
Submitted batch job 923
                                
Les fichiers de log seront écrits dans /enac_slurm/bancal/slurm/simple/log-923.out et /enac_slurm/bancal/slurm/simple/log-923.err.
Mauvais exemple :
$ pwd
/home/bancal/Desktop/My Documents
$ sbatch /enac_slurm/bancal/slurm/simple/simple.sh
Submitted batch job 924
                                
Les fichiers de log seront écrits dans /home/bancal/Desktop/My Documents/log-924.out et /home/bancal/Desktop/My Documents/log-924.err.
Hors comme le répertoire /home/bancal n'existe pas sur les machines de salles tant que l'utilisateur bancal (utilisé pour cet exemple) n'est pas connecté dessus, ce cas de figure ne pourra pas marcher!
Pour cette raison il est impératif de travailler dans l'espace dédié lorsque vous soumettez des jobs à SLURM.