Slides - indico in2p3
Transcription
Slides - indico in2p3
Gestion de production au Centre de Calcul de l'IN2P3. Une approche utilisateur Pascal CALVAT Yonny CARDENAS Avec la collaboration de Thomas KACHELHOFFER Centre de Calcul IN2P3, le 8 Avril 2011 Contenu ● ● Motivations ● Contexte ● Problématique DTM (Distributed Task Manager) ● Principes ● Architecture ● Implémentation ● Tests ● Travail futur Motivations ● Contexte ● ● ● Mission du CC-IN2P3: aider les scientifiques à faire la recherche grâce à son infrastructure et services informatiques. Promouvoir un haut niveau de satisfaction des chercheurs (utilisateurs) des services du Centre de Calcul. Optimisation de procédures permettant une bonne utilisation de l'infrastructure et services mutualisés. Motivations ● Contexte ● ● ● ● Projets de recherche: mise en place des workflow complexes (traitements et calculs liés aux données): lancement et contrôle de centaines ou milliers de jobs. Au CC-IN2P3 ils sont mis en place par les utilisateurs eux-mêmes. Travail conséquent avec des résultats de qualité et d'efficacité variable (scripts de gestion de production). Fort impact sur la gestion et l'utilisation globale des ressources et services Problématique ● L'utilisateur doit lancer (relancer) et surveiller des quantités significatives de jobs. Quelques effets souvent constatés: ● ● ● Pics violents de soumission (beaucoup de jobs en queue) Saturation des ressources partagées: accès massive et concurrent (ex. systèmes de stockage) Utilisation non-optimale de ressources: temps en machine très court, tous les jobs téléchargent et transfèrent les mêmes données/fichiers. Problématique ● ● Impossibilité de faire des soumissions basées en dépendances (ex. job B soumis si job A a été bien exécuté) Impossibilité de soumettre le même job sur une autre infrastructure sans intervention: ● ● Le job est spécifique à une infrastructure particulière (différents commandes/outils pour les différentes infrastructures: BQS, SGE, Grille,...) Utilisateur: beaucoup d'effort pour la gestion de la production au détriment du code métier spécifique de l’application. Problématique ● Manque de notion de «production» au critère de l'utilisateur (jobs relativement homogènes) ● ● ● ● Des actions qui agissent sur ces entités, démarrage, arrêts, … Système d'information qui supporte ces notions Possibilité de donner des priorités entre les tâches de l'utilisateur Régulation de la soumission selon la charge et disponibilité des ressources: (ex. arrêter la soumission si la production en cours ne progresse pas ). Proposition ● ● ● ● ● ● Changer d'approche: ● 1 job == 1 tâche ● 1 job == 1 ou plusieurs tâches Tâches génériques, indépendantes de l'infrastructure L'utilisateur prépare la tâche, et ne s'occupe plus de la soumission et surveillance de jobs Un job standard exécute toutes les tâches possibles dans le temps qui lui a été assigné. Un job est soumis s'il a des tâches à exécuter. Un job en exécution meurt s'il n'y a pas de tâche à exécuter DTM Distributed Task Manager DTM Base de données Client WN Job Agent WN Job Agent Job Manager Job Agent TACHE WN JOB DTM et JJS/JSAGA Base de données Client CLUSTER LOCAL Job Agent Job Agent BQS/SGE Job Manager Job Agent TACHE GRILLE JOB DTM: Principe ● ● ● ● L'utilisateur dispose d'un mode commande afin de créer des tâches Ces tâches sont stockées dans une base de données relationnelles L'utilisateur lance un job manager sur la classe V. Le job-manager lance des jobs agents qui consommeront les tâches DTM: Job manager ● ● ● ● Le job manager est lancé sous le compte de l'utilisateur via la commande dtm-start Connaissances minimales sur le scheduler de batch pour lancer dtm-start Son rôle est de scruter la liste des tâches et de lancer les jobs agents permettant de consommer les tâches. Les jobs agents sont lancés de façon régulière en fonction des ressources de calcul disponibles et des tâches restantes DTM: Job agent ● ● ● ● Le job agent est lancé par le job manager Job standardisé: identique pour tous les utilisateurs Il permet le regroupement de plusieurs tâches au sein d'un seul job Il permet de dissocier l'association habituelle 1 tâche = 1 job. La tâche est consommée par les jobs en running DTM: Job agent ● ● ● Rôle mineur des jobs waiting. Pas nécessaire d'avoir beaucoup de jobs waiting. Le job manager lance les jobs au fur et à mesure Optimisation des transferts. Souvent les tâches téléchargent les mêmes données en input. Les données sont téléchargées par la première tâche et réutilisées par les suivantes sur le même worker. DTM: Architecture ● ● ● ● Mode commande écrit en shell script. Appel à la commande « mysql » Mysql: ● Liste des tâches ● Procédures stockées Utilisateur dispose d'un MD5 pour s'authentifier. Équivalent à DOODLE Pas nécessaire de déployer un nouveau service DTM: Implémentation 14 fichiers (scripts Bourne shell) 2 scripts code métier: <dtm-manager> <dtm-agent.sh> 4 scripts fonctions diverses <*.sh> 8 scripts pour l'entrée utilisateur (commandes) 1918 lignes de code Disponibles en AFS 1 semaine accumulée de développement depuis Nov 2009 Lines 45 48 57 71 74 78 123 153 163 169 177 226 259 275 1918 File dtm-task-monitor.sh dtm-shell-functions.sh dtm-prod-list dtm-task-list dtm-start dtm-prod-enable dtm-task-set-status dtm-task-get-next dtm-cancel dtm-task-add dtm-manager-input-validation.sh dtm-cron-functions.sh dtm-manager dtm-agent.sh TOTAL DTM: Implémentation Base de données 4 Tables (MySQL) DTM_JOB DTM_RECEIVER DTM_TASK DTM_TASK_HISTORY 21 procédures stockées (transactions) 200 Lignes de code agentcountnotreported agentcountrunning cpu nexttask nexttaskclone proddelete prodenable prodlist receivercheck receiverconfig taskadd taskcount taskcountrunning taskcountwithoutreport taskdelete taskfailedrestart taskhistorytransfer tasklist tasknotrespondingrestart taskpriority tasksetstatus tasksumcpurequested Sans DTM Avec DTM DTM: Tests Trois utilisateurs de domaines différents ont testé le prototype: Bertrand Care, LIRIS, 27619 jobs ● Informatique: Modélisation des voies de signalisation cellulaire Oliver Obondu, IPNL, 6192 jobs ● Physique: Analyses CMS (LHC) Simon Penel, LBBE, 1073 jobs ● ● Biologie: Recherche de similarité de séquences en protéines (phylogénie) TOTAL 34884 jobs DTM: Tests ● ● Ces testeurs (utilisateurs) ont donné un avis positif et encourageant, ils ont fait des remarques et demandes pertinentes. Deux autres utilisateurs intéressés pour tester le prototype: ● ● ADONIS, SHS XLRender, société privée, en prospection sur TIDRA DTM: Travail Futur ● ● Activer la soumission de jobs en grille ● JJS/JSAGA ● CREAM-CE ● WMS Intégration avec IRODS ● Connexion à la base de données via RDA (Ruleoriented Database Access) ● Authentification (password, GSI, Kerberos, ...) ● Protection, client IRODS utilisé comme proxy ● Interrompu dans état actuel DTM et JJS/JSAGA Base de données Client CLUSTER LOCAL Job Agent Job Agent BQS/SGE JJS Job Manager Job Agent GRILLE DTM et IRODS Base de données Client WN Job Agent WN Job Agent Job Manager Job Agent WN Gestion de production au Centre de Calcul de l'IN2P3. Une approche utilisateur Pascal CALVAT Yonny CARDENAS Avec la collaboration de Thomas KACHELHOFFER Centre de Calcul IN2P3, le 8 Avril 2011