HTCondor experience at IRFU and LLR
Motivations Torque 2.X Plus maintenu officiellement (sécurité !) Maui Evolution/maintenance délaissées (moab…) ! Scaling ? 4200job slots/10000 Pas au delà sans modifications (surtout maui) Tendance générale (hepix) : htcondor
HTCondor Pros Equipe réactive Extrêmement complet A priori, meilleur scaling Bien supporté pour les ARC CE Accounting hiérarchique … Cons Concept de batch… « différent » TROP complet ? Moyennement intégré aux CREAM CE (accounting)
Generalités htcondor Classad Scoping Batch ? Pas de queues : juste des priorités/réservations Accounting groups/hiérarchique Permet d’obtenir la fonctionnalité des queues => 120 == 100% => lab1 % == 100*(40/120) = 33%
Généralités htcondor Limitation ressources possible MAIS à définir sur les machines elles même (pas de queue) CGroups Isolation des process possible (PID namespaces) Quotas par job Isolation des filesystems Intégration du cloud (VM kickstarting) …
Goal : s/CREAM|torque|maui/trash/g Config toujours en evaluation 1 ARC CE / condor scheduler – SCHEDD 1 queue single core 1 queue multicore (8 cœurs ou rien) 1 htcondor « mananger » - COLLECTOR/NEGOCIATOR X WN multicore (~8 C6220 / 256 cores) Y WN single core Config grille « standard » IRFU Pool accounts sous NIS Full puppet no yaim Modules HEP-Puppet (ARC, htcondor)/CERNOps(glexec WN) Modules locaux pour la config système
HTCondor - PID namespaces : beau dans la théorie, facile à activer MAIS : atlas se tire une balle dans le pied Filesystem isolation /tmp, /var/tmp isolés (bind mounts) Quotas définis par JOB (tmp inclus…) Dynamic job slots : 1 slot par machine Limites : classads
HTCondor – Initial setup => coredumps Question mailing list => bug fix < 1 semaine Retry : re-core dump. Re-fix < 1 semaine Dynamic job slots par défaut, ne prend pas en compte l’hyperthreading Accounting groups: Basé sur le nom de VO Séparateur : «. » « vo.irfu.cea.fr, vo.grif.fr » ? => MAIN group : « vo »…
HTCondor – No queue, no graph (ARC pb ?) Mix single core/MC non testé par manque de jobs Job defrag non testé config queue par atlas/ « install du soft »… ?
HTCondor – RPM conflicts : Condor fournit de nombreuses dépendances globus GAGNE la transaction yum lors de l’install d’un WN Single paquet >> multi-paquets yum --exclude condor install emi-wn Install de emi nécessaire AVANT condor
Strategy: minimal impact (and possibly effort) use CREAM-CE (we are almost a unique case) minimal changes to Quattor PBS/CREAM config Status: migrated our PP CE on Oct 2014 tested by NGI & CMS sam tests still missing CMS HC jobs CMS promised test MoltiCore jobs. None seen yet Goal: move to HTCondor in prod by Q CMS is not pushing for MC jobs on T2 so we are not in a hurry.
HTCondor - 1 head machine: CREAM-CE + SCHEDD + NEGOTIATOR/COLLECTOR 4 * 16Cores Workers Version (should upgrade to latest) Quattor config Minor changes on CREAM/BDII/Blparser tpls Rather General HTCondor tpls PR currently ongoing on QWG git repo
HTCondor - How do we map user into accounting groups? from the condor manual map at submit time we get (VO,FQAN,DN) and match it against regexps very flexible (…but should check perfs) “Each job must state which group it belongs to. Currently this is opt-in, and the system trusts each user to put the correct group in the submit description file.” Accounting Group
HTCondor - BDII publication is currently very basic Using a very old plugin « lcg-info-dynamic-condor noarch » that I got from Milan T2 Apel accounting: using « RAL solution » Condor PBS logs translation && use pbs appel parser waiting for a condor appel parser (which is currently in testing) currently publishing on the test instance
HTCondor - Problems with BLUpdater: Fixed using the one in the condor package Rewriting the bdii config
HTCondor – to Test a cluster with separate CREAM/SCHEDD and NEGOTIATOR/COLLECTOR test and implement in quattor the multicore setup give a better look to BDII publication run some load tests with both single and multicore jobs implement job/user limits (max time, max mem, etc…)
HTCondor : howto Lister les machines / jobs slots : condor_status Lister les machines down/absentes : condor_status -absent Lister les jobs running : condor_q –run Lister les « fairshares »: condor_userprio –grouporder
HTCondor : howto Modifier les quotas d’un job running : condor_qedit -constraint 'RequestCpus == 8' MAX_DISK_KB 'RequestCpus*20*1024*1024' condor_qedit -constraint 'RequestCpus == 8' JobMemoryLimit condor_qedit -constraint 'RequestCpus == 8' RequestMemory 5120
Summary : rn2014.html rn2014.html
Logos :