Clusterressourcen optimal nutzen: Jobmanagement

Werbung
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
Herunterladen