Pour pouvoir travailler de manière indifférenciée sur plusieurs plateforme, vous pouvez-vous organiser en définissant des variables d’environnement dans vos fichiers de configurations $HOME/.bashrc
pour gommer les différences entre plateformes dans vos scripts.
Avec également l’aide de git pour gérer vos codes sources vous pouvez très facilement déployer votre code, à jour, sur l’une ou l’autre plateforme.
Exemple de paragraphe $HOME/.bashrc
:
sur plafrim :
export HPC_DOMAIN=plafrim
export HPC_NAME=plafrim3
export HPC_TMP=/beegfs/$USER
export HPC_MODULE_GCC=compiler/gcc/9.2.0
sur curta :
export HPC_DOMAIN=mcia
export HPC_NAME=curta
export HPC_TMP=/gpfs/scratch/$USER
export HPC_MODULE_GCC=gcc/7.3.0
exemple de script de lancement :
#SBATCH ...
cp -r $HOME/monprojet $HPC_TMP
cd $HPC_TMP/monprojet
echo Running on $HPC_DOMAIN / $HPC_NAME
module load $HPC_MODULE_GCC
make myprog.c
srun myprog
Limitations
Les directives #SBATCH ne peuvent pas contenir de variables (elles ne sont pas évaluées)