Jean Zay : transition entre deux projets

Cette page contient les informations utiles aux utilisateurs de Jean Zay qui souhaitent transférer leur workflow d'un projet vers un autre. Cette documentation se base sur les outils de gestion des comptes multi-projets présentés ici.

Pour effectuer cette transition, le login de l'utilisateur doit être rattaché aux deux projets concernés : le projet initial (appelé old pour l'exemple) et le nouveau projet (appelé new pour l'exemple). Le retour de la commande idrproj contient alors les informations suivantes :

$ idrproj
 
Available projects:
-------------------
  old (123456) [default][active]
  new (654321) 

Important : les deux projets doivent coexister pendant toute la durée de la transition. Il faut penser à effectuer les démarches administratives pour l'ouverture du nouveau projet et le rattachement de votre login à ce projet avant que le projet initial n'arrive à expiration.
Pour information, une fois la date d'expiration passée, vous n'avez plus accès aux heures de calcul du projet initial. Les données contenues dans les espaces disques associés au projet initial sont néanmoins conservées et accessibles pendant encore six mois.

Modification du projet par défaut

Pour modifier votre projet par défaut, il faut utiliser la commande idrproj -d <new default project> :

$ idrproj -d new
Password: 
Default project changed to new

Dès la prochaine connexion, le retour de la commande idrproj sera alors :

$ idrproj
 
Available projects:
-------------------
  old (123456) 
  new (654321) [default][active]

Après cette opération, tous les comportements par défaut de connexion, d'environnement, de soumission de job et de comptabilité sont redirigés vers votre nouveau projet.

Transfert des données

Durant la période de transition d'un projet à un autre, les espaces disques des deux projets coexistent. Pour désigner ces espaces disques sans ambiguïté, il est conseillé d'utiliser les variables d'environnement correspondantes préfixées du nom du projet (old_ ou new_ dans l'exemple) :

$idrenv
...
export new_ALL_CCFRSCRATCH=/...scratchpath.../new/commun; # $SCRATCH commun du projet new
export new_ALL_CCFRSTORE=/...storepath.../new/commun;     # $STORE commun du projet new
export new_ALL_CCFRWORK=/...workpath.../new/commun;       # $WORK commun du projet new
export new_CCFRSCRATCH=/...scratchpath.../new/user;       # $SCRATCH du projet new
export new_CCFRSTORE=/...storepath.../new/user;           # $STORE du projet new
export new_CCFRWORK=/...workpath.../new/user;             # $WORK du projet new
export old_ALL_CCFRSCRATCH=/...scratchpath.../old/commun; # $SCRATCH commun du projet old
export old_ALL_CCFRSTORE=/...storepath.../old/commun;     # $STORE commun du projet old
export old_ALL_CCFRWORK=/...workpath.../old/commun;       # $WORK commun du projet old
export old_CCFRSCRATCH=/...scratchpath.../old/user;       # $SCRATCH du projet old
export old_CCFRSTORE=/...storepath.../old/user;           # $STORE du projet old
export old_CCFRWORK=/...workpath.../old/user;             # $WORK du projet old
...

Les données peuvent ainsi être transférées d'un espace à un autre de manière habituelle. Par exemple :

$ cp -rp $old_CCFRWORK/mydata $new_CCFRWORK/. 

Vous pouvez également lancer vos calculs en utilisant des données d'entrée stockées dans les espaces disques initiaux, et diriger les sorties vers les nouveaux espaces disques.

Comptabilité

Tant que le projet initial n'a pas expiré, vous pouvez demander à décompter les heures de calcul de l'allocation du projet initial ou du nouveau projet lors de la soumission d'un job, indépendamment des espaces disques dans lesquels vous travaillez.

L'option Slurm à spécifier dans vos scripts batch ou lors d'un salloc est :

  • pour un job lancé sur la partition CPU :
     --account=new@cpu   # ou --account=old@cpu 
  • pour un job lancé sur la partition GPU :
     --account=new@gpu   # ou --account=old@gpu