Adamis-cluster

Quelques infos sur le PSM sur apccluster1

Installation

Il n'y a a priori pas de raison (et pas de place) pour dupliquer les données ancillaires du PSM. Un repository commun a donc été créé dans /data/PSM/data.

Pour avoir tout accès à ce repository vous devez faire partie du groupe système psm (simply ask).

FIXME Les membres du groupe psm ne peuvent pas écrire dans /data/PSM pour une raison inconnue (les modèles galactiques ont besoin d'un accès en écriture à ce répertoire)

En revanche le code IDL en lui même reste propre aux usagers :

  • Faire un checkout du cvs dans votre home.
  • détruire le répertoire ...Code/PSM/data et le remplacer par un lien symbolique vers le repository commun.

ln -s /data/PSM/data/ /home/$USER/cvswg2/WG2/Code/PSM/ FIXME Pour l'instant, les données ancillaires restent propres à chaque usager.

  • Ajouter dans votre fichier .bash_aliases (décommentez la ligne correspondant à bash_aliases dans votre .bashrc si vous ne l'avez pas encore fait) les lignes suivantes:
#IDL startup file
export IDL_STARTUP=/home/$USER/.idl/my_idl_startup.pro
HEALPIX=/usr/local/lib/healpix
export HEALPIX

Depuis IDL6.3, les fichiers startup ne sont plus executés automatiquement à l'exception du démarrage d'une session interactive en console. Il ne faudra plus compter dessus si un jour on arrive à compiler ce prog pour la vm.

Il vous faut maintenant créer un fichier .idl/my_idl_startup.pro . Les outils nécessaires au PSM (astron et Healpix) sont installés sur le cluster dans /usr/local/lib/idl/ et /usr/local/lib et doivent être définis dans ce fichier. Vous pouvez choisir la version qui vous convient parmi celles disponibles sur le cluster, ou prendre par défaut la dernière version disponible. Voici mon fichier ~/.idl/MY_IDL_STARTUP à titre d'exemple:

; General IDL startup file 

PRINT, "Running GC_idl_startup"

!PATH = !PATH + ':' + expand_path('+/usr/local/bin/')


;PSM
DEFSYSV, '!PSMROOT', '/data/castex/Soft/Projets/PSM/'

;Astron IDL library
!PATH = !PATH + ':' + expand_path('+/usr/local/lib/idl/astron')

;Healpix 2.15a
!PATH = !PATH + ':' + expand_path('+/usr/local/lib/healpix/src/idl')

;MPFIT
!PATH = !PATH + ':' + expand_path('+/data/castex/Soft/Utilities/mpfit')

MPFIT n'est pour l'instant pas encore disponible pour tous les usagers.

Utilisation

Voilà un example de script job.sh pour soumettre un job psm via qsub :

#!/bin/bash
#PBS -S /bin/bash
#PBS -N psm
#PBS -o out_file
#PBS -e err_file
#PBS -j oe
#PBS -m abe
#PBS -M castex@apc.univ-paris7.fr
#PBS -l nodes=1:ppn=8,walltime=54:00:00
export SCRATCH="/scratch/$USER.$PBS_JOBID" # this set a system variable to point
 the temporary scratch repository
export IDL_TMPDIR=$SCRATCH
export IDL_STARTUP="/home/castex/.idl/my_idl_startup.pro"
export HEALPIX="/usr/local/lib/healpix"
psmconf=conf.psm
echo "psm_main, '$psmconf'" | idl

La ligne export IDL_TMPDIR=$SCRATCH vous permettra d'utiliser l'espace de scratch alloué à la soumission du job. Gardez à l'esprit que vous consommez 6/102 des jetons idl du CC in2p3 par job idl.

Lancez ensuite votre job avec: qsub job.sh

Pour lancer successivement plusieurs réalisations du PSM, utilisez la syntaxe suivante dans votre fichier job.sh :

for psmconf in conf_1.psm conf_2.psm conf_3.psm
do
echo "psm_main, '$psmconf'" | idl
scp -rv -i /home/$USER/.ssh/cluster_key /scratch/$USER master:/data/$USER/Output ##Créez un jeu de clés nommé cluster_key ou utilisez en un autre.
rm -r /scratch/$USER
done

NE LANCEZ PAS PLUSIEURS INSTANCES DU PSM EN SIMULTANÉ ! Cela consommerait beaucoup trop de jetons idl.

Afin d'éviter les problèmes d'accès trop nombreux à /data, il est recommandé d'utiliser la partition /scratch pour écrire les outputs du PSM, avant de les déplacer dans /data.

Pour cela, éditez votre fichier conf.psm :

OUTPUT_DIRECTORY = /scratch/votre_nom/Output_PSM

Ajoutez à la fin de votre script job.sh les lignes suivantes

scp -rv -i /home/$USER/.ssh/cluster_key /scratch/$USER master:/data/$USER/Output
rm -r /scratch/$USER

Ne laissez pas de données dans /scratch