Clusterressourcen optimal nutzen: Jobmanagement-Systeme im Vergleich Autor: Bernward Platz Platform LSF PBS Pro Torque Sun GridEngine clucon – cluster concepts Bernward Platz www.clucon.de 26. Oktober 2004 Seite 1 www.matrix.ag Biographie 1994: Abschluss Studium Informatik an der TU Braunschweig 1998-2000: science+computing AG in München, Schwerpunkt HPCCluster-Betrieb und CAE-Workflow 2000-2003: Entwicklungsleiter bei der Teraport GmbH (Jenoptik Gruppe) in München, Schwerpunkt High Performance Computing Seit 2004: Freiberuflicher Software-Entwickler und IT-Berater. Automobil-, Luft- und Raumfahrtindustrie, Medizin (EDAG, EADS, Uni München,..) CAE-Linux-Cluster: Beratung, Konzeption, Installation und Betrieb PBS Pro Reseller Webgestützte Workflowoptimierung im CAE-Bereich Software-Entwicklung (u.a. Parallelisierung eines FE-Solvers aus der Strömungsmechanik für die EADS Deutschland GmbH) IT Servicemanagement (ITIL) 26. Oktober 2004 Seite 2 www.matrix.ag Inhalt Einleitung: grundlegende Konzepte Übersicht der Systeme LSF, Torque, PBS Pro und SGE Checkliste Anforderungen Resource-Management Job-Management Queueing Scheduling Realisierung ausgewählter Konzepte: Preemption, Consumable Resources, Queue-Limits, User-defined Resources Leistungsvergleich Fazit / Entscheidungskriterien 26. Oktober 2004 Seite 3 www.matrix.ag Jobmanagement: Ziele 1. Optimale Auslastung von Compute-Ressourcen (CPU,Memory, Lizenzen,..) 2. Gerechte Verteilung von Ressourcen an mehrere, konkurrierende Benutzer 3. Accounting der vergebenen Ressourcen Einsatzgebiete: CAE (Crash, Strömungsmechanik, Strukturanalyse), Medizin, Bioinformatik, Finance, Teilchenphysik,... Zentrale Konzepte/Komponenten: Resource-Management Queueing Scheduling 26. Oktober 2004 Seite 4 www.matrix.ag Jobmanagement: Komponenten Ressourcen Scheduler Queues User Jobmanagement-System 26. Oktober 2004 Seite 5 www.matrix.ag Vergleich: Überblick Basisdaten P rodukt LS F Torque P B S P ro S GE Hersteller P latform computing Clusterresources, Inc. Altair E ngineering S un Microsystems Getestete Version 6.0 1.1.0 5.4 6.0 Web-S eite www.platform.com www.supercluster.org www.pbspro.com gridengine.sunsource.net ca. $1200 pro CP U für Base und B atch, ca. $240 pro CP U für LS F -Client frei für private und kommerzielle Nutzung, Wiederverkauf für Kommerzielle Nutzung nicht erlaubt Ab 60 E uro pro CP U und J ahr Open S ource, S un Industry S tandards S ource License (S IS S ) P reise/ Lizenzmodell 26. Oktober 2004 Seite 6 www.matrix.ag Jobmanagement-Systeme: Stammbaum Utopia LSF (Universität Toronto) (Platform computing) DQS GridEngine CODINE (SUN Microsystems) 2000 Condor NQS PBS (NASA) 1980 NQE OpenPBS 1998 Torque (Clusterresources, Inc.) 2003 PBS Pro (Altair Engineering) 2003 26. Oktober 2004 Seite 7 www.matrix.ag Checkliste Queueing Queue-Prioritäten Interaktive und Batch Jobs Queue-Limits 26. Oktober 2004 Seite 8 www.matrix.ag Checkliste Scheduling Scheduling-Strategien: FIFO: First in First out: Wer zuerst kommt, mahlt zuerst Backfill: Optimale Ausnutzung des Clusters durch Auffüllen von Lücken Fairshare: Gerechtigkeit zwischen den Usern durch Berücksichtigung der Clusternutzung der User in der Vergangenheit Preemption: Anhalten von niedriger priorisierten Jobs durch höher priorisierte Austauschbarkeit des Schedulers maui-Integration Festlegung von Prioritäten (User-, Queue-Ebene) Festlegung von Limits 26. Oktober 2004 Seite 9 www.matrix.ag Scheduler Maui Meta-Scheduler von Clusterresources, Inc. (supercluster.org) Integration in PBS Pro, Torque, LSF, SGE 5.3, Load Leveler Ausgefeiltes Fairshare und Backfill-Scheduling Simulationsmodus Eigene Tools für Jobkontrolle Resource-Reservierung Wird in Zukunft durch Produkt „Moab“ abgelöst 26. Oktober 2004 Seite 10 www.matrix.ag Checkliste Resource Management Consumable Resources Selbstdefinierte Ressourcen mittels Shell-Skripten (elim, Load-Sensor) MPI-Support Ressource-Reservierung Angabe von beliebigen Ressource-Anforderungen beim Submittieren Pre- und Epilogue-Skripte Dynamische CPU-Anforderungen Accounting 26. Oktober 2004 Seite 11 www.matrix.ag Checkliste Sonstiges Job-Arrays Administration über GUI Reporting Failover Web-Frontend 26. Oktober 2004 Seite 12 www.matrix.ag Queue Prioritäten qsub –q Prio_B >> Job 51 submitted qsub –q Prio_A >> Job 52 submitted job-ID prior name user state submit/start at queue -------------------------------------------------------------------------52 0.56000 STDIN platz r 10/24/2004 01:42:05 Prio_A 51 0.55002 STDIN platz q 10/24/2004 01:40:59 Prio_B 26. Oktober 2004 Seite 13 www.matrix.ag Queue-Prioritäten (LSF) lsb.queues: Begin Queue QUEUE_NAME PRIORITY ... End Queue Begin Queue QUEUE_NAME PRIORITY ... End Queue 26. Oktober 2004 Seite 14 = Prio_A = 16 bsub –q Prio_B bsub –q Prio_A = Prio_B = 8 www.matrix.ag Queue-Prioritäten (PBS) maui.cfg: … CLASSCFG[Prio_A] QDEF=hi CLASSCFG[Prio_B] QDEF=low QOSCFG[hi] PRIORITY=1000 qsub –q Prio_B qsub –q Prio_A QOSCFG[low] PRIORITY=100 … 26. Oktober 2004 Seite 15 www.matrix.ag Queue-Prioritäten (SGE) I Schritt 1: Projekte priohigh und priolow anlegen 26. Oktober 2004 Seite 16 www.matrix.ag Queue-Prioritäten (SGE) II Schritt 2: Total Share Tickets vergeben 26. Oktober 2004 Seite 17 www.matrix.ag Queue-Prioritäten (SGE) III Schritt 3: Share Tree Policies vergeben 26. Oktober 2004 Seite 18 www.matrix.ag Queue-Prioritäten (SGE) IV Schritt 4: Projekte Queues zuordnen 26. Oktober 2004 Seite 19 www.matrix.ag Queue-Prioritäten (SGE) V Schritt 5: Job abschicken qsub –q normal –P priolow >> Job 51 submitted qsub –q normal –P priohigh >> Job 52 submitted job-ID prior name user state submit/start at queue -------------------------------------------------------------------------52 0.56000 STDIN platz r 10/24/2004 01:42:05 normal 51 0.55002 STDIN platz qw 10/24/2004 01:40:59 26. Oktober 2004 Seite 20 www.matrix.ag Preemption Preemption: Anhalten von niedriger priorisierten Jobs durch höher priorisierte: Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----998.node01 STDIN platz Job id Name User 0 R Prio_B Time Use S Queue ---------------- ---------------- ---------------- -------- - ----998.node01 STDIN platz 0 R Prio_B 1000.node01 STDIN platz 0 Q Prio_A Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----998.node01 STDIN platz 0 S Prio_B 999.node01 STDIN platz 0 R Prio_A 26. Oktober 2004 Seite 21 www.matrix.ag Preemption (LSF) lsb.queues: Begin Queue QUEUE_NAME PRIORITY PREEMPTION ... End Queue Begin Queue QUEUE_NAME PRIORITY PREEMPTION ... End Queue 26. Oktober 2004 Seite 22 = Prio_A = 16 = PREEMPTIVE[Prio_B] = Prio_B = 8 = PREEMPTABLE[Prio_A] www.matrix.ag Preemption (SGE) Definition zweier Queues (Prio_A, Prio_B) Queue Prio_B als Subordinate-Queue von Prio_A definieren 26. Oktober 2004 Seite 23 www.matrix.ag Preemption (Torque/PBS Pro) Preemption mit Standard-Torque derzeit nicht möglich, da Knoten beim Suspend nicht freigegeben werden Folgender Patch von clucon ermöglicht Preemption: diff -urN -X exclude torque-1.1.0.org/src/server/req_signal.c torque-1.1.0/ src/server/req_signal.c --- torque-1.1.0.org/src/server/req_signal.c 2004-02-13 20:01:00.000000000 +0100 +++ torque-1.1.0/src/server/req_signal.c 2004-03-20 10:01:13.000000000 +0100 @@ -206,8 +206,10 @@ pjob->ji_qs.ji_svrflags |= JOB_SVFLG_Suspend; set_statechar(pjob); job_save(pjob, SAVEJOB_QUICK); + free_nodes(pjob); } else if (strcmp(preq->rq_ind.rq_signal.rq_signame, SIG_RESUME) == 0) { + set_old_nodes(pjob); pjob->ji_qs.ji_svrflags &= ~JOB_SVFLG_Suspend; set_statechar(pjob); job_save(pjob, SAVEJOB_QUICK); 26. Oktober 2004 Seite 24 www.matrix.ag Preemption (Torque/PBS Pro) mit Scheduler maui maui.cfg: … PREEMPTPOLICY SUSPEND CLASSCFG[Prio_A] QDEF=hi CLASSCFG[Prio_B] QDEF=low QOSCFG[hi] PRIORITY=1000 QOSCFG[hi] QFLAGS=PREEMPTOR Queue Prio_A (Preemptor) Queue Prio_B (Preemptee) Queue Prio_A kann Queue Prio_B suspenden QOSCFG[low] PRIORITY=100 QOSCFG[low] QFLAGS=PREEMPTEE … 26. Oktober 2004 Seite 25 www.matrix.ag Limits: Jobs / Host (LSF) lsb.hosts: Begin Host HOST_NAME wayne End Host 26. Oktober 2004 Seite 26 MXJ r1m 2 1.0/88.5 pg / ls 12/15 tmp 0 www.matrix.ag Limits: Jobs / Host (PBS) $ PBS_CONFDIR/ server_priv/ nodes: node01 np=2 linux lam lsdyna 26. Oktober 2004 Seite 27 www.matrix.ag Limits: Jobs / Host (SGE) Möglichkeit 1 (qmon) Möglichkeit 2 (qconf) qconf –me node01.clucon.de hostname node01.clucon.de load_scaling NONE complex_values slots=1 user_lists NONE xuser_lists NONE projects NONE xprojects NONE usage_scaling NONE report_variables NONE 26. Oktober 2004 Seite 28 www.matrix.ag Resource Management Ressourcen: Attribute (Zahl, String, Boolecher Wert), die einem Host oder einer Queue zugewiesen werden und von Jobs angefordert werden können, so dass der Scheduler bei der Verteilung nur jene Systeme in Betracht zieht, die die geforderten Ressourcen zur Verfügung stellen Unterscheidung zwischen statischen Ressourcen (Hauptspeicher, Takfrequenz) und dynamischen (Plattenplatz, verfügbare Lizenzen,...) Unterschiedliche Nomenklatur: LSF: SGE: PBS:: Ressourcen Complexe Ressourcen, Properties (Boolesche, Statische Ressourcen) Consumable Resources: Ressourcen, die durch Anforderung „verbraucht“ werden können („Zähler“). Beispiel: Software-Lizenzen 26. Oktober 2004 Seite 29 www.matrix.ag Consumable Resources (SGE) 30 Floating Lizenzen qsub - l lsdyna= 1 26. Oktober 2004 Seite 30 www.matrix.ag Consumable Resources (PBS Pro) $PBS_HOME/server_priv/resourcedef: lsdyna type=long flag=nq qsub - l lsdyna= 1 $PBS_HOME/sched_priv/sched_config: resources: "ncpus, mem, arch, lsdyna" > qmgr set server resources_available.lsdyna = 30 26. Oktober 2004 Seite 31 www.matrix.ag Consumable Resources (LSF) $LSF_CONFDIR/lsf.shared Begin Resource RESOURCENAME TYPE INTERVAL INCREASING lsdyna Numeric () N DESCRIPTION (lsdyna Floating Licenses) End Resource $LSF_CONFDIR/lsf.cluster.<cluster> Begin ResourceMap RESOURCENAME LOCATION lsdyna 30@[all] End ResourceMap > bsub – R „select[defined(lsdyna) rusage[lsdyna= 1]“ 26. Oktober 2004 Seite 32 www.matrix.ag Consumable Resources (Torque) Keine Consumable Resources bei Torque Workaround über Queues: Neue Queue: lsdyna maui.cfg: CLASSCFG[lsdyna] MAXPROC=30 qsub -q lsdyna 26. Oktober 2004 Seite 33 www.matrix.ag Dynamic Resouces (LSF): elim $LSF_SERVERDIR/elim.pamcrash lsf.cluster.<cluster> #!/bin/sh Begin ResourceMap while true; do RESOURCENAME LOCATION # FLEXlm abfragen oder einfach nur: pamcrash [node01] # echo „anz_indices resname resvalue“ End ResourceMap echo „1 pamcrash 20“ sleep 10 done $LSF_CONFDIR/lsf.shared Begin Resource RESOURCENAME TYPE INTERVAL INCREASING pamcrash Numeric 10 N DESCRIPTION (pamcrash Floating Licenses) End Resource 26. Oktober 2004 Seite 34 www.matrix.ag Dynamic Resources (SGE): Load Sensor / home/ platz/ bin/ pamcrash.sh: #!/bin/sh host=`uname -n` while true; do read input echo „begin“ echo „$host:pamcrash:20“ echo „end“ done 26. Oktober 2004 Seite 35 www.matrix.ag Dynamic Resources (PBS Pro) Pro Knoten: Definition in $PBS_CONFDIR/mom_priv/config für jeden Host: pamcrash ! /home/platz/bin/pamcrash.sh Systemweit: Definition in $PBS_MOM/sched_priv/sched_config: resources: „mem, ncpu, arch, pamcrash server_dyn_res: „pamcrash ! /home/platz/bin/pamcrash.sh 26. Oktober 2004 Seite 36 www.matrix.ag Dynamic Resources (Torque) Derzeit beliebige dynamische Resourcen nicht möglich Definition in $PBS_CONFDIR/mom_priv/config für jeden Host: pamcrash ! /home/platz/bin/pamcrash.sh Patch in Entwicklung 26. Oktober 2004 Seite 37 www.matrix.ag Vergleich: Resource Management Ressource Management LSF Torque PBS Pro SGE beliebige Ressourcen definierbar ja mit Patch möglich ja ja dynamische Ressourcen ja mit Patch möglich ja ja Consumable Resources ja nein ja ja Dynamischer CPU-Request ja nein ja ja ja mit MauiScheduler möglich ja ja Ressourcen Reservierung 26. Oktober 2004 Seite 38 www.matrix.ag Vergleich: Queueing Queueing System LSF Torque PBS Pro SGE Netzwerkqueues ja ja ja ja, ab Version 6.0 QueuePrioritäten ja ja ja ja Load- und SuspendThreshholds ja nein ja ja Queue Limits ja ja ja ja interaktive Jobs ja ja ja ja 26. Oktober 2004 Seite 39 www.matrix.ag Vergleich: Job-Management Job Management LSF Torque PBS Pro SGE Suspend/Resume ja mit Patch von möglich ja ja Pro-/Epilogue-Skripte ja, queue- und Hostspezifisch, ,jede Userid hostspezifisch; Skripte laufen unter root ja, queue- und Hostspezifisch definiert, jede Userid Skriptausführung bei Start/Resume/Stop/Kill eines Jobs Resume,Start, Stop, Terminate nein Supsend, Resume, Terminate Resume/Start/ Stop/Terminate Job-Abhängigkeiten ja ja ja ja Job-Arrays ja nein nein ja Job Calendar ja ja ja ja Parallele Jobs ja ja ja ja Jobaccounting ja ja ja ja 26. Oktober 2004 Seite 40 nur hostspezifisch ,jede Userid www.matrix.ag Vergleich: Scheduling Scheduling LSF Torque/Maui PBS Pro/Maui SGE ScheduleStrategien Fairshare, FCFS, Preemption, exclusive Fairshare, FCFS, exclusive, Preemption mit Patch von clucon möglich Fairshare, FCFS, exclusive, Preemption Fairshare, FCFS, exclusive Backfill ja ja ja nein Load Balancing ja ja ja ja MauiIntegration ja ja ja schlecht/nein 26. Oktober 2004 Seite 41 www.matrix.ag Vergleich: Konfiguration Konfiguration LSF Torque PBS Pro SGE KonfigurationsMethode KonfigurationsDateien, Teile auch über GUI konfigurierbar KonfigurationsDateien, Kommandozeilen, Teile über GUI konfigurierbar KonfigurationsDateien, Kommandozeile, Teile über GUI konfigurierbar alles komplett über GUI oder KommandozeilenClient konfigurierbar Server-Neustart nach Änderung nötig teilweise nein nein nein 26. Oktober 2004 Seite 42 www.matrix.ag Vergleich: Sonstiges Sonstiges LSF Torque PBS Pro SGE Unterstützung für heterogene Cluster ja ja ja ja Paralleles Make ja nein nein ja POSIX 1003.2d konform nein ja ja ja SNMP ja nein nein nein GUI ja ja ja ja Failover Ja Nein Ja ja API ja ja ja DRMAA 26. Oktober 2004 Seite 43 www.matrix.ag Vor- und Nachteile Torque PBS Pro LSF SGE Plus • Open Source • einfache Installation und Handhabung • Leistungsfähiges Scheduling mit Maui • Source-Code verfügbar • Maui-Integration • für Linux günstiger Preis • Hoher Funktionsumfang • Ausgefeilte Konzepte • Viele Add-Ons • Umfangreiche Dokumentation • Komfortable Administration • Open Source Minus • kein Failover • keine selbstdefinierten Ressourcen • keine Comsumable Resources • Useability • Usability • Preis • kein Source-Code • StandardKonzepte schwer umsetzbar • Scheduler, keine MauiIntegration 26. Oktober 2004 Seite 44 www.matrix.ag Einheitliches Web-Frontend für alle Systeme Web-Frontend für LSF, PBS, SGE Applikations-Module durch Plugin-Konzept Optimierter und automatischer Datenflow Definition belieber Job-Flows Ergebniskontrolle während der Berechung Job-Submittierung auch über Kommandozeile Mehr auf www.clucon.de 26. Oktober 2004 Seite 45 www.matrix.ag ezCluster 26. Oktober 2004 Seite 46 www.matrix.ag ezCluster: Kommandozielen-Interface command= submit f1= airbag_deploy.k cluster= pbs app= lsdyna960 jobname= airbag jobdescription= Das ist ein CLI Job precision= normal memory1value= 20 memory1unit= MW memory2value= 20 memory2unit= MW diskvalue= 100 diskunit= Mb mode= parallel lsdyna.cf shared= 1 distributed= 16 serviceindex= 1 26. Oktober 2004 Seite 47 portalclient - cf lsdyna.cf www.matrix.ag ezCluster 26. Oktober 2004 Seite 48 www.matrix.ag Leistungsvergleich Scheduling LSF SGE PBS Pro Torque Usability LSF SGE PBS Pro Torque Queueing LSF SGE PBS Pro Torque Resource Management Sonstige Funktionalitäten LSF SGE PBS Pro Torque LSF SGE PBS Pro Torque 26. Oktober 2004 Seite 49 www.matrix.ag Fazit Alle Systeme erfüllen die wichtigsten Anforderungen Nach Funktionalität LSF klarer Sieger Klare Schwächen von Torque beim Resource Management und Failover Wenn die Kosten eine große Rolle spielen: SGE oder Torque Ungewöhnliche Konzepte von SGE. Schwierigkeiten bei Migrationen auf SGE. Tipp an Sun: Migrationsguide schreiben Einführung von Cluster-Queues in SGE 6.0 Schritt in richtige Richtung. Vieles, wofür LSF fertige Konzepte mitbringt, ist bei den anderen Handarbeit über Skripte nötig PBS Pro in allen Disziplinen bis auf Usability gut. Keine großen Schwächen. Für kommerzielles System gutes Preis/Leistungsverhältnis Analyse der Anforderungen empfehlenswert, um Kosten zu sparen und das geeignet System zu finden. 26. Oktober 2004 Seite 50 www.matrix.ag Entscheidungskriterien Größe des Clusters (Skalierbarkeit, Kosten) Betrieb kommerzieller oder nicht-kommerzieller Applikationen (Lizenzen -> Dynamic Resources, Consumable Resources) Anzahl User (unterschiedliche Prioritäten -> SchedulingStrategien (Fairshare, Preemption)) Job-Profil (vorwiegend kurze Jobs, vorwiegend lange Jobs, Mischbetrieb) -> Scheduling-Strategien (Backfill, Preemption) Usability Failover 26. Oktober 2004 Seite 51 www.matrix.ag Weitere Informationen: clucon – cluster concepts Bernward Platz Tel.: 089/7 59 38 38 Fax: 089/75 20 14 62 Mail: [email protected] 26. Oktober 2004 Seite 52 www.matrix.ag