Calcul sur le cluster/grille EGI
Calcul sur le cluster/grille EGI Descriptif materiel (actuel et à venir) Soumission locale : PBS/ bonnes pratiques Calcul grille : glite/ exemple simple Point formations Liens utiles
Descriptif matériel (actuel) Machines de service grille : UI (luigi), CE (wario), SE (sereine), BDII, APEL (virtualisation via xen sur serveur) Noeuds de calcul (WN) : 24 noeuds hp de 8 coeurs et 12 Go chacun (xeon) 16 noeuds ibm de 2 coeurs et 4 Go chacun (opteron) Espace disque utilisateur de 3 To montée en NFS sur le CE, l'ui, et l'ensemble des WN
Descriptif matériel (à venir) Rajout de WN : 20~30 noeuds ibm => 24 noeuds hp de 8 coeurs et 12 Go chacun (xeon) 36-46 noeuds ibm de 2 coeurs et 4 Go chacun (opteron) Disque utilisateur augmenté à ~20To =>~20To montée en NFS dispo via CE(wario), UI(luigi), et l'ensemble des WN Stockage grille sur le SE (sereine) : ~140 To
Soumission locale (PBS) Soumission effectuée du CE (wario) Acces : ssh bonamy@wario.univ-lille1.fr Chemin du home : /home/bonamy/ Commandes classiques qsub : soumission d'un job via un script qstat ou/et showq : liste et infos des tâches qstat -f : détails d'une tâche (ex : qstat -f 150) qdel : suppression d'une tâche ( ex : qdel 150)
Soumission d'un script (1/2) Exemple de script monoproc (script.pbs) : #PBS -S /bin/bash #PBS -N job_name #PBS -j oe #PBS -l nodes=1:ppn=1:opteron #PBS -q local #PBS -l walltime=01:00:00 cd $PBS_O_WORKDIR./test >out_file [bonamy@wario test]$ qsub script.pbs 2095.wario.egi.local
Soumission d'un script (2/2) [bonamy@wario test]$ qstat -f 2095 Job Id: 2095.wario.egi.local Job_Name = job_name Job_Owner = bonamy@wario.univ-lille1.fr job_state = R queue = local server = wario.univ-lille1.fr Checkpoint = u ctime = Thu Dec 2 10:54:59 2010 Error_Path = wario.univ-lille1.fr:/home/bonamy/test/job_name.o2096 exec_host = WN-ibm-11.egi.local/1 Hold_Types = n Join_Path = oe Keep_Files = n Mail_Points = a mtime = Thu Dec 2 10:55:00 2010 Output_Path = wario.univ-lille1.fr:/home/bonamy/test/job_name.o2096
Modules Compilateurs gfortran, intelfortran, openmpi, mpich,mpich2 Chargement des environnements aisé via les commandes module : module avail : liste des modules dispo module load : chargement du module (exple : module load Compilateurs/intel) module list : liste des modules chargés module unload Si besoin, mettre commandes module dans le script de soumission
Bonnes conduites Interdiction de lancer des calculs sur wario Bien fermer les sessions ssh, sftp, (pour vérifier, ps aux grep bonamy) Ne pas fournir son mot de passe à qui que ce soit... Eviter les programmes qui swap (=> estimer le cout en mémoire de son calcul) Faire attention à l'espace disque utilisé Sauvegarder les données (non garanties!!)
Grille EGI Prérequis : certificat grille + appartenance à une vo et accès à une UI (par exemple luigi) Puissance de calcul inimaginable et espace disque colossal Possibilité de répliquer aisément les data... Qualité de service assurée
Soumission grille (glite) Soumission effectuée de l'ui (luigi) Acces : ssh bonamy@luigi.univ-lille1.fr Chemin du home : /home/bonamy/ Prérequis : copie/extraction de son certificat dans.globus Procédure grille EGI/glite : Création d'un proxy : glite-voms-proxy-init (24h max) ou myproxy (>24h) Soumission du/des job(s) ou/et Envoi de données Récupération des données Destruction du proxy
Création de proxy 1ère étape : création d'un proxy local /[bonamy@luigi ~]$ glite-voms-proxy-init --voms dteam Enter GRID pass phrase: Your identity: /O=GRID-FR/C=FR/O=LILLE1/OU=CRI/CN=Cyrille Bonamy Creating temporary proxy... Done Contacting voms.cern.ch:15004 [/DC=ch/DC=cern/OU=computers/CN=voms.cern.ch] "dteam" Done Creating proxy... Done Your proxy is valid until Thu Dec 2 01:52:13 2010/ 2ème étape : création du myproxy d'une durée de 25 heures : /[bonamy@luigi ~]$ myproxy-init -c 25 -d -n -s myproxy.cern.ch Your identity: /O=GRID-FR/C=FR/O=LILLE1/OU=CRI/CN=Cyrille Bonamy Enter GRID pass phrase for this identity: Creating proxy... Done Proxy Verify OK Your proxy is valid until: Thu Dec 2 15:14:59 2010 A proxy valid for 25 hours (1.0 days) for user /O=GRID-FR/C=FR/O=LILLE1/OU=CRI/CN=Cyrille Bonamy now exists on myproxy.cern.ch./ 3ème étape : récupérer infos de mon proxy via myproxy-info : [bonamy@luigi ~]$ myproxy-info -d -s myproxy.cern.ch username: /O=GRID-FR/C=FR/O=LILLE1/OU=CRI/CN=Cyrille Bonamy owner: /O=GRID-FR/C=FR/O=LILLE1/OU=CRI/CN=Cyrille Bonamy timeleft: 24:58:16 (1.0 days)/ 4ème étape : suppression de mon proxy : /[bonamy@luigi ~]$ myproxy-destroy -d -s myproxy.cern.ch Default MyProxy credential for user /O=GRID-FR/C=FR/O=LILLE1/OU=CRI/CN=Cyrille Bonamy was successfully removed./
Soumission d'un job (1/2) 1ère étape : création d'un fichier jdl job.jdl et d'un fichier bash job.sh #ici simple job... ni collec, ni DAG (ensble job dependant) Type = "Job"; Executable="job.sh"; #Fichiers d entrees a utiliser InputSandbox={"job.sh"}; #Nom du fichier de sortie standard StdOutput="std.out"; #Nom du fichier de log erreur StdError="std.err"; #Nom de VO pour job VirtualOrganisation="dteam"; #Fichiers de sortie à rec OutputSandBox={"std.out","std.err"}; 2ème étape : soumission du job [bonamy@luigi exple1]$ glite-wms-job-submit -a job.jdl ====================== glite-wms-job-submit Success ====================== The job has been successfully submitted to the WMProxy Your job identifier is: https://marlb.in2p3.fr:9000/cunb5uwvfjof5cv3fv9ifg ==========================================================================
Soumission d'un job (2/2) 3ème étape : statut du job [bonamy@luigi exple1]$ glite-wms-job-status https://marlb.in2p3.fr:9000/cunb5uwvfjof5cv3fv9ifg ======================= glite-wms-job-status Success ===================== BOOKKEEPING INFORMATION: Status info for the Job : https://marlb.in2p3.fr:9000/cunb5uwvfjof5cv3fv9ifg Current Status: Done (Success) ========================================================================== 4ème étape : Récupération du résultat du job [bonamy@luigi exple1]$ glite-wms-job-output --dir output https://marlb.in2p3.fr:9000/cunb5uwvfjof5cv3fv9ifg Connecting to the service https://marwms.in2p3.fr:7443/glite_wms_wmproxy_server ================================================================================ JOB GET OUTPUT OUTCOME Output sandbox files for the job: https://marlb.in2p3.fr:9000/cunb5uwvfjof5cv3fv9ifg have been successfully retrieved and stored in the directory: /home/bonamy/exple1/output/bonamy_cunb5uwvfjof5cv3fv9ifg ================================================================================
Formations / Liens utiles (1/2) Formation à Lille 1 : courant Mai... (4jours) D'ici là : Meudon 01/02-->03/02 : Formation utilisateurs - Présentation et initiation aux grilles de calcul & Apprentissage de l outil DIRAC http://formation.france-grilles.fr/ : site répertoriant toutes les formations grille en france http://cri.univ-lille1.fr/services/calcul-intensif/informations/ : page web calcul-intensif du CRI de Lille 1 (infos machine, PBS, doc, ) Liste de diffusion propre aux utilisateurs Lille 1 de la grappe NGI Lilloise: grappe-lille1-ngi@univ-lille1.fr Equipe admin des machines de calcul du CRI Lille 1 : admin-calcul@univ-lille1.fr Tutorial grille EGI (job simple, job C, job MPI, collection de jobs) : https://lpsc-secure.in2p3.fr/trac/informatique/wiki/griduse
Formations / Liens utiles (2/2) Liens EGI : CIC Operations Portal (infos site/vo) : https://cic.gridops.org/index.php?section=vo GOCDB (infos site) : https://goc.gridops.org/portal/ vo biomed : https://twiki.cern.ch/twiki/bin/view/egee/lifesciences manager : yannick.legre@healthgrid.org http://www.healthgrid.org/ Phrase à rajouter dans publi/congrès/communications : Computational resources were provided by CRI-Lille 1 supported by the CNRS and Lille 1 University - Science and Technology. Participation à l'ajout de noeuds/stockage dans le cadre de vos projets futurs (ANR, Europe, )?