Mésocentre de Calcul Intensif Aquitain Présentation du cluster Avakas 13/01/2012
Présentation du cluster Avakas Présentation du cluster : le matériel et la communauté Environnement logiciel Calculer sur la machine Gestion des données
Présentation du cluster Avakas Présentation du cluster : le matériel et la communauté Matériel : serveurs Matériel : réseaux Communauté Avakas : le Comité des Utilisateurs Communauté Avakas : la Dream Team Communauté Avakas : Redmine Environnement logiciel Calculer sur la machine Gestion des données
Matériel : serveurs Nœuds frontaux (avakas.mcia.univbordeaux.fr) avakas-frontend1 avakas-frontend2 Nœuds maîtres Nœuds de stockage Nœuds de calcul Nœuds - C6100 (x264) 2 processeurs hexacœurs (12 cœurs par nœud) 3,06 GHz 48 Go RAM Nœuds "bigmem" - R910 (x4) 4 processeurs 10 cœurs (40 cœurs par nœud) 2,4 GHz 512 Go RAM 4 disques SAS 10krpm
Matériel : réseaux Connexion à Internet (frontaux) 1 Gb/s Ethernet 10 Gb/s Ethernet en cours d'installation Réseau d'administration Réseau standard: 1 Gb/s Ethernet Réseau Infiniband: 40 Gb/s IB QDR non bloquant
Communauté Avakas : le Comité des Utilisateurs Composé de représentants des utilisateurs et de l'équipe technique Ouvert aux candidatures Animé par Luc Mieussens (IMB) - luc.mieussens@math.u-bordeaux1.fr On y discute des orientations techniques et de la vie de la machine Au passage, la charte d'utilisation du Mésocentre : http://www.mcia.univ-bordeaux.fr/index.php?id=charte_d_utilisation
Communauté Avakas : la Dream Team Nguyen Nguyen Ky - administration/support Pierre Gay - administration/support Benoît Hiroux - administration/support, assistance aux PMEs Redouane Bouchouirbat - administration/support, assistance à la recherche Services: On peut organiser des formations fournir de l'aide à la réalisation de projets modélisation portage optimisation parallélisation etc...
Communauté Avakas : Redmine http://www.redmine.univ-bordeaux.fr : le site collaboratif du Mésocentre Connexion Wiki Documentation publique Lecture et écriture pour les utilisateurs inscrits Annonces Outil de communication complémentaire aux mails Flux RSS disponibles (c'est vrai pour tout le redmine) Tickets (= demandes) Invisibles au public non inscrit Permet une communication montante Problèmes / pannes Demandes d'assistance / d'information Demande d'évolution (installations, etc...) Forums Entraide (flux RSS et notifications disponibles) Discussions en général (améliorer, pousser un coup de gueule, etc...)
Présentation du cluster Avakas Présentation du cluster : le matériel et la communauté Environnement logiciel Se connecter au cluster Avakas Environment modules Compilateurs Debuggers Logiciels à licence Calculer sur la machine Gestion des données
Se connecter au cluster Avakas 1- Se connecter depuis Linux : Pour accéder aux nœuds frontaux du cluster $ ssh user_name@avakas.mcia.univ-bordeaux.fr Pour le portage graphique X11 (rajouter l'option -Y ou -X): $ ssh -Y user_name@avakas.mcia.univ-bordeaux.fr
Se connecter au cluster Avakas Se connecter depuis Windows : Il faut un client ssh et pour les applications graphiques, un serveur X à distance. Deux utilitaires : PuTTy : Xming :
Se connecter au cluster Avakas PuTTy :st un client SSH sous Windows.
Se connecter au cluster Avakas Pour le portage graphique lancer tout d'abord Xming et ensuite Putty. Etape 1 : entrer avakas.mcia.univ-bordeaux.fr Etape 2 : Sélectionner le protocole SSH. Etape 3 : ici votre login pour cette session. Etape 4 : (optionnel) Activation du portage graphique X11, sur PuTTy sélectionner ssh- X11.
Se connecter au cluster Avakas Etape 5 : cliquer sur save/load pour enregistrer/charger la session. Etape 6 : cliquer le boutton OPEN Etape 7 : cliquer sur YES
Se connecter au cluster Avakas
Environment modules Un outil pour configurer l'environnement du shell Fichiers pseudo Tcl descriptifs de la configuration nécessaire à l'utilisation d'un logiciel Déposés dans des répertoires source ($MODULEPATH) Permet de faire cohabiter plusieurs logiciels concurrents ou plusieurs versions d'un même logiciel sur le cluster MPI: OpenMPI, Intel-MPI, etc... Permet de profiter de mises à jour sans sacrifier à la stabilité Commandes module avail liste des modules disponibles module list liste des modules actuellement chargés module load charger un module module unload décharger un module module switch changer de version pour un module module purge décharger tous les modules
Compilateurs Plusieurs compilateurs accessibles par modules gcc Intel Compiler Suite Versions 11.1, 12.0 Architecture 32 ou 64 bits Open64
Debuggers Allinea/DDT Utilisable en graphique, y compris sur les nœuds de calcul (voir job interactif) profiling / optimisation: Intel Trace Analyzer Intel Source checker Intel VTune
Logiciels à licence Accès général: Logiciels Intel (20 ou 5 jetons) Allinea/DDT (32 jetons) Accès restreint: Quand la licence acquise ne permet pas d'inclure tous les utilisateurs du Cluster Gaussian: licences liées à des sites géographiques Comsol: licence appartenant à un labo
Présentation du cluster Avakas Présentation du cluster : le matériel et la communauté Environnement logiciel Calculer sur la machine Utilisation du scheduler Qsub soumission de jobs Jobs interactifs Interrogation du système de jobs Jobs MPI Configuration du scheduler Sujets avancés Gestion des données
Utilisation du scheduler Les nœuds de calcul ne sont accessibles qu'à travers le Scheduler Torque+MAUI L'allocation des ressources CPU est exclusive Le partitionnement de la mémoire des nœuds n'est pas garantie Les ressources d'entrées/sorties d'un nœud non entièrement réservé seront partagées entre plusieurs jobs La durée demandée d'un job est sa durée maximale Il faut donc estimer la durée d'exécution de son calcul Pas de moyen de rallonger un job commencé
Qsub soumission de jobs qsub <script> Demander des ressources: qsub -l nodes=2 qsub -l nodes=1:ppn=4 qsub -l nodes=2:ppn=12 qsub -l nodes=3:ppn=30 qsub -l nodes=1:ppn=2:bigmem La mémoire n'est pas réellement prise en compte (qsub -l mem=1gb) nodexxx: 4Go/core bigmemxx: 11Go/core Temps de calcul qsub -l walltime=dd:hh:mm:ss Mettre les options de qsub dans le script: #PBS -N jobname man qsub ou voir le wiki
Jobs interactifs qsub -I qsub -I -X -V
Interrogation du système de jobs qstat qstat -a qstat -n qstat -q checkjob <jobid>
Jobs MPI L interdiction du ssh oblige à prendre des précautions OpenMPI no problem Intel/MPI module load torque-intel-mpi MPICH/MPICH2? MVAPICH/MVAPICH2 module load mpiexec QLogic?
Configuration du scheduler Files d'attente File d'attente <groupe> (walltime < 120h) File d'attente longq (120h < walltime < 720h) Nombre de jobs maximum par utilisateur : 10 Nombre de jobs maximum : 100 Limites des jobs walltime < 720 h procs*hours < 5760 h calcul des priorités Fairshare sur 28 jours (decay 0.95) user target 1+ group target 5+ XFactor XFACTOR = 1 + QUEUETIME / MAX ( XFMINWCLIMIT, WALLCLOCKLIMIT ) XFMINWCLIMIT 01:00:00
Sujets avancés Accéder quand même en ssh aux nœuds sur lesquels tournent mes jobs module load torque-ssh2job Dans le job: jobsshd A partir d'un frontal: ssh2job --node=<node> --job=<jobnum> récupérer des données écrites en local En fin de job, ok. Mais quand le job part en timelimit? Utiliser un script épilogue Module jobrsync (bientôt disponible)
Présentation du cluster Avakas Présentation du cluster : le matériel et la communauté Environnement logiciel Calculer sur la machine Gestion des données /home local /tmp /scratch
/home 20 To pour tout le monde Système NFS Espace sauvegardé journalièrement (/backup) Pour les données sensibles ou peu volumineuses de l'utilisateur
local /tmp Nettoyage automatique du /tmp difficile à mettre en œuvre utiliser de préférence /tmp/$pbs_jobid Pour les données des jobs Ayant besoin d'entrées/sorties performantes en local Données moyennement volumineuses Récupération moins facile en fin de job
/scratch 120 To temporaires accessibles à travers Infiniband sur tous les nœuds bande passante agrégée 4Go/s mais partagée entre tout le monde Pour les données très volumineuses ou pour des accès rapides en parallèle Problème de surcharge inutile lors de nombreux jobs séquentiels, ou gros job MPI
Questions / discussion