Ada, Adapp, Turing : les espaces disques

Trois espaces disques distincts (HOME, WORKDIR et TMPDIR) sont accessibles aux utilisateurs sur les calculateurs Ada, Adapp et Turing. Un quatrième, l'espace ARCHIVE n'est accessible que sur Adapp. Chaque espace a des caractéristiques spécifiques adaptées à son utilisation qui sont décrites ci-dessous. Les chemins d'accès à ces espaces sont stockés dans 4 variables d'environnement du shell : $HOME, $WORKDIR, $TMPDIR et $ARCHIVE.

Le HOME

$HOME : c'est le répertoire d'accueil lors d'une connexion interactive. Cet espace est destiné aux fichiers de petite taille, très souvent utilisés comme les fichiers d'environnement du shell, les utilitaires, éventuellement les sources et les bibliothèques de taille limitée (en espace comme en nombre de fichiers). Voici ses caractéristiques :

  • le HOME est un espace permanent ;
  • il est sauvegardé quotidiennement par le logiciel TiNa;
  • il est commun aux machines Adapp et Ada et propre à la machine Turing;
  • il est accessible en interactif ou dans un travail batch;
  • c'est le répertoire d'accueil lors d'une connexion interactive. On peut y accéder aussi via la variable $HOME :

    $ cd $HOME
  • il est soumis à des quotas par groupe volontairement assez faibles : 5 Gio (5,4 Go) par défaut; la commande IDRIS quota_u permet de voir la situation réelle de votre occupation et celles de tous les membres de votre groupe;

  • sa taille totale est de 4 Tio (4,4 To) sur Ada, Adapp et de 2 Tio (2,2 To) sur Turing.

  • il est prévu pour accueillir des fichiers de petite taille; la taille du bloc est de 256 Kio (262 Ko) (commande stat -f $HOME).

Le WORKDIR

$WORKDIR : c'est un espace de travail et de stockage permanent utilisable en batch. On y stocke généralement les fichiers de taille importante qui servent aux exécutions batch : les fichiers de données, les exécutables, les fichiers de résultats ou de reprise de calcul (restarts), les scripts de soumission et les fichiers sources volumineux. Voici ses caractéristiques :

  • le WORKDIR est un espace permanent;
  • il n'est pas sauvegardé;
  • il est commun aux 3 machines Adapp, Ada et Turing;
  • il est accessible en interactif ou dans un travail batch;
  • il est composé de 2 parties :
    • une partie propre à chaque utilisateur ; on y accède par la commande :

      $ cd $WORKDIR
    • une partie commune au groupe UNIX auquel l'utilisateur appartient, dans lequel on peut mettre des fichiers destinés à être partagés; on y accède par la commande :

      $ cd $COMMONDIR
  • il est soumis à des quotas par groupe : 1 Tio (1,1 To) par défaut. La commande IDRIS quota_u -w permet de voir la situation réelle de votre occupation et de celles de tous les membres de votre groupe;

  • sa taille totale est de 932 Tio (1024 To) ;

  • il est prévu pour accueillir des fichiers de taille importante; la taille du bloc est de 4 Mio (4,2 Mo) (commande stat -f $WORKDIR).
  • le WORKDIR est un espace disque GPFS dont la bande passante (50 Gio/s en écriture et en lecture environ) est partagée entre les machines Adapp, Ada et Turing. Elle peut être ponctuellement saturée en cas d'utilisation exceptionnellement intensive.

Recommandations d'utilisation :

  • le WORKDIR n'est pas sauvegardé. On n'est jamais à l'abri d'une destruction manuelle non maîtrisée (rm) ou d'une défaillance des disques; il faut donc sauvegarder régulièrement les fichiers sensibles ou importants sur le serveur d'archives Ergon.

Attention :

  • les travaux batch peuvent s'exécuter dans le WORKDIR, les fichiers sont alors directement accessibles en lecture/écriture (espace permanent) et ne nécessitent pas de recopie explicite. Cependant, plusieurs de vos travaux peuvent s'exécuter en même temps; il faut donc gérer l'unicité de vos répertoires d'exécution. De plus, il est soumis à des quotas (par groupe) qui peuvent stopper brutalement votre exécution s'ils sont atteints. Sur cet espace disque, il faut ainsi tenir compte non seulement de votre propre activité, mais aussi de celle de vos collègues. Pour ces raisons, on pourra alors être amené à préférer le TMPDIR pour l'exécution des travaux batch.

Le TMPDIR

$TMPDIR : répertoire d'exécution d'un travail batch. Voici ses caractéristiques :

  • le TMPDIR est un répertoire temporaire;
  • il n'est accessible que dans un travail batch à l'aide de la variable $TMPDIR;
  • il est créé automatiquement lorsqu'un travail batch démarre : il est donc unique à chaque travail batch;
  • il est détruit automatiquement à la fin de ce travail : il faut donc recopier les fichiers importants sur un autre espace disque permanent (le WORKDIR par exemple) avant la fin du travail.
  • il n'est pas soumis à des quotas par groupe, comme le HOME ou le WORKDIR. Cependant, des quotas dits de sécurité sont positionnés; ils sont destinés à éviter qu'un utilisateur ne remplisse totalement cet espace disque à la suite d'une fausse manœuvre;

  • sa taille totale est de 466 Tio (512,3 To);

  • il est prévu pour accueillir des fichiers de taille importante; la taille du bloc est identique à celle du WORKDIR : 4 Mio (4,2 Mo) (commande stat -f $TMPDIR ne marche qu'en batch).

Recommandations d'utilisation :

Vous trouverez des exemples de travail batch utilisant le TMPDIR dans la section Exécution/Contrôle d'un code, pour Ada ici et pour Turing ici. Sinon, de manière générale, voici nos conseils pour utiliser le TMPDIR :

  • pour toute exécution, on supposera que les fichiers d'entrée, de reprise ou exécutables nécessaires à l'exécution sont stockés préalablement sur un système de fichiers permanent (HOME ou WORKDIR). Si ce n'est pas le cas, utiliser la classe archive et la notion de job multi-étapes (exemple sur Ada ici ou sur Turing ici) pour recopier, dans une première étape, les fichiers nécessaires dans le WORKDIR avec la commande mfget.
  • lors de chaque exécution de travaux en batch, nous vous conseillons de vous placer dans le TMPDIR;
  • on copie les fichiers nécessaires du WORKDIR dans le TMPDIR avec la commande cp.
  • on lance l'exécution dans le TMPDIR;
  • avant la fin du travail batch:
    • il faut sauvegarder les fichiers significatifs dans un système de fichiers permanent (HOME ou WORKDIR) à l'aide de la commande cp s'ils sont régulièrement utilisés ou susceptibles d'être post-traités;
    • pour les fichiers à archiver à plus long terme, sauvegardez-les sur le serveur d'archives Ergon à l'aide de la commande mfput dans une dernière étape en classe archive de votre travail batch (exemple sur Ada ici ou sur Turing ici).

Remarques :

  • comme les performances en lecture/écriture sont identiques pour le WORKDIR et le TMPDIR, vous pouvez éviter de faire des copies entre ces deux répertoires, à condition que le code sache lire ou écrire directement les fichiers dans le HOME ou le WORKDIR;
  • comme le WORKDIR, le TMPDIR est un espace disque GPFS dont la bande passante (50 Gio/s en écriture et en lecture environ) est partagée entre les machines Adapp, Ada et Turing. Les performances des entrées-sorties ne sont donc pas reproductibles puisqu'elles peuvent être ralenties en cas d'utilisation exceptionnellement intensive.

Spécificité à Ada et Adapp : la visibilité en interactif

  • suivant les caractéristiques du travail batch, le TMPDIR créé peut être :
    • soit local au nœud d'exécution d'Adapp ou d'Ada et donc non visible en interactif depuis les nœuds de connexion ; c'est généralement le cas des travaux séquentiels ou OpenMP,
    • soit partagé par tous les nœuds d'Adapp et d'Ada, et donc visible en interactif depuis les noeuds de connexion; c'est le cas pour les travaux multi-nœuds ou muti-étapes. Pour trouver le nom de ce répertoire, il faut :
      1. placer la commande set -x (en bash) au début de votre travail pour avoir l'écho des commandes passées et utiliser par la suite la variable $TMPDIR.
      2. consulter (à l'aide des commandes cat, less, ou tail, …) la sortie du travail pendant l'exécution (fichier indiqué dans la directive LoadLeveler #@ output, qui s'écrit en général dans votre répertoire de soumission). Vous y trouverez la valeur de la variable $TMPDIR et donc son emplacement réel.

Voici un exemple de travail batch qui respecte ces conditions :

exemple
  # Directives Loadleveler
  #@ output = <stdout>
  ...
  #@ queue
 
  # Script bash
  set -x
  cd $TMPDIR
  pwd -P      # donne le PATH complet du répertoire TMPDIR
  ...

L'espace ARCHIVE (à partir d'Adapp seulement)

L'espace ARCHIVE correspond au HOME du serveur d'archives Ergon qui est directement accessible en lecture/écriture depuis la machine de pré et post-traitement Adapp, par l'intermédiaire d'un montage GPFS via la variable d'environnement $ARCHIVE.

$ ls -l $ARCHIVE

Il est accessible depuis les nœuds d'Adapp uniquement (interactif ou batch); il n'est pas accessible depuis les nœuds d'Ada ou Turing.

HOME et WORKDIR : la sécurité informatique

Pour améliorer la protection de vos données stockées sur vos espaces HOME et WORKDIR, nous vous recommandons de respecter la politique de sécurité mise en place à l'IDRIS.

Résumé des caractéristiques des espaces disques

Note : la dernière colonne intitulée ARCHIVE ne concerne qu'Ergon et Adapp pour le partage de l'espace ARCHIVE.

HOME WORKDIR TMPDIR ARCHIVE
Durée de vie permanente permanente durée du travail batch permanente
Partagé sur les calculateurs commun sur Adapp et Ada (propre sur Turing) commun sur Adapp, Ada et Turing $ARCHIVE sur Adapp, $HOME sur Ergon
Sauvegarde oui non non non
Ménage automatique non non oui, à la fin du travail batch non
Accès interactif oui oui non ($TMPDIR n'est pas défini) oui depuis Adapp
Accès batch oui oui oui oui depuis Adapp
Taille du bloc 256 Kio (262 Ko) 4 Mio (4,2 Mo) 4 Mio (4,2 Mo) 16 Mio (16,8 Mo)
Quota par groupe quota_u : 5 Gio (5,4 Go) par défaut quota_u -w 1 Tio (1,1 To) par défaut) aucun quota_u : 1 Tio (1,1 To) sur Ergon