DESY HOME IT HOME Print Preview Print Window

[Deutsch] Son of Grid Engine SoGE (BIRD/NAF2) [English]

Inhalt

[Fliegende Vögel]

Status


Beschreibung

Die Kurzbeschreibung

BIRD heisst "Batch Infrastruktur Resource am DESY"
mit Service für die Nationale Analyse Fazilität NAF2

BIRD/NAF2 Batch bietet:

SoGE ist ein Batch/Stapel-Verarbeitungssystem und es wird bereit gestellt mit Auftrags-Kontrolle, Bedienungshinweisen, Benutzersteuerung graphisch (GUI) oder über Kommandozeilen (CLI).

Liste mit ausgewählten Kommandos (CLI):

  Aufsetzen der SoGE Arbeitsumgebung:

- Auf allen interaktiven Submit- und Arbeits-Maschinen
	# Es ist keine Aktion notwendig. Die Konfiguration ist Teil
	  des Standard-Logins
- Auf älteren Arbeits-Maschinen mit Scientific Linux Version 5 (distro=sld5)
        ini bird # Der einfache Weg zur SoGE Arbeitsumgebung
- Auf allen Batch-Systemen in Abhängigkeit von Benutzer- oder Skript-Shell
  - Bourne-Shell Benutzer
        . /usr/sge/default/common/settings.sh
  - C-Shell Benutzer
        source /usr/sge/default/common/settings.csh

  Zum Ansehen des momentanen Status eines abgeschickten Jobs:

qstat # Anschauen der aktiven oder wartenden Jobs
qstat -u '*' # Anzeige aller aktiven oder wartenden Jobs von allen Benutzern
qstat -j <jobid> # Anzeige eines speziellen aktiven oder wartenden Jobs
qquota # Anzeige der momentan Quota-Ausnutzun
qquota -u '*' -P '*' -q '*' # Zeige die Quotaausnutzung für alle Benutzer, Projekte und Queues
qacct -j <jobid> # Anzeige eines ausgewählten Job-Accounting (nach Beendigung eines Jobs)
qacct # Anzeige der persönlichen Accounting-Informationen
  Abschicken eines Jobs:
qsub -cwd myjob
     -cwd: Ausgabe soll im aktuellen Arbeitsordner erfolgen,
           andernfalls geht die Ausgabe ins Heimatverzeichnis des Benutzers.
          myjob: Datei mit Shell-Kommandos und Job-Optionen
  Abfrage von Informationen aus dem Batch-System:
qstat -g c  # Informationen über Queues
qhost       # informationen über Maschinen
  Lokaler beschreibbarer Dateien-Speicherplatz während des Jobs:
Siehe Umgebungsvariablen $TMP und/oder $TMPDIR
  Start des GUI:
qmon &

Andere Schnell-Hinweise:

Für den Zugang zu BIRD/NAF2 benötigt man die Registry-Resource BATCH
(frei durch den Gruppenadmistrator oder das UCO vergebbar)

Keine Namen wie: sge root atlas cms belle[12] lhcb desyflc h1 hasylab herab it mpy unihh2 zeus opera operator batch ...
Häufig benutzte Optionen und Werte
CLI
(Kommando-Zeilen-Optionen)
JCL
(Job-Steuer-Sprache)
Werte
(Hinweise)
Kommentar
-l complex="value" #$ -l complex=value Angeforderte Job-Resource("complex"). Hängt auch von der Konfiguration ab. Die meisten Namen haben zusätzlich einen kurzen Alias-Namen. Reguläre Ausdrücke können für die Werteauswahl benutzt werden. Um mehrere Complex-Werte zu wählen benötigt man mehrfache -l im CLI (mit Gänsefüsschen) oder mehrfache Zeilen im JCL.
-l distro="Betriebssystem" #$ -l distro=Betriebssystem sld5, sld6 Alias ist os
-l arch="Architektur" #$ -l arch=Architektur amd64(64bit), x86(32bit)
32bit-Support läuft hauptsächlich über Kompatibilität unter 64bit.
Alias ist a
-l h_rt="Benötigte_Job_Laufzeit" #$ -l h_rt=Benötigte_Job_Laufzeit Maximale Gesamtlaufzeit eines Jobs in hh:mm:ss (in Einheiten Stunden, Minuten und Sekunden). Benutze z.B. 72:00:00 für einen 3-Tage-Job. Alias ist h_rt.
-l h_vmem="Benötigter_CPU_Speicher" #$ -l h_vmem="Benötigter_CPU_Speicher Benötigter Speicher (in K, M oder G Einheiten) mit Standard-Wert=1G Alias ist h_vmem.
-l h_fsize="Benötigter_Disk_Speicher" #$ -l h_fsize="Benötigter_Disk_Speicher Benötigter Speicher (in K, M oder G Einheiten) mit Standard-Wert=3G Alias ist h_fsize.
-l h_stack="Stack_Grösse" #$ -l h_stack=Stack_Grösse Benötigte Stack-Grösse (in K, M oder G Einheiten) Standard-Wert=0 (ungegrenzt). Setze h_stack=100M (falls es Multithread-Probleme gibt z.B. mit Kommando lfc-ls). Alias ist h_stack.
Nicht standardisierte Optionen und Werte für spezielle Zwecke
-l site="hh" #$ -l site=hh Anfrage nach einer Maschine, die in Hamburg lokalisiert ist. Alias ist site.
Kein Effekt, Erleichterung für Migration NAF 1.0 -> 2.0
-l s_vid="CPU_VendorID" #$ -l s_vid=CPU_VendorID Anfrage nach einer Maschine mit AMD oder Intel CPU Hardware. Im Moment bekannte Werte sind "GenuineIntel" und "AuthenticAMD". Alias ist cpu_vid.
Speziell für "Parallel Computing Compiler Optimisation".
-l cvmfs #$ -l cvmfs Anfrage nach einer Maschine mit verfügbarem "Cern Virtual Machine File System". Alias ist cvmfs.
(Momentan nicht verfügbare) Optionen und Werte unter Test
-l sharedir=yes #$ -l sharedir=yes Auswahl von Maschinen mit einem "Shared-Filesystem" und "Hyperthreading". Alias ist hyper.

Other Options:

#$ -P $GROUP                Project name for resource settlement in Fair Share operation.
                            Normally this defaults to the primary UNIX group name.

#$ -o %path%                File name for the standard output (stdout).
#$ -e %path%                File name for the standard error (stderr).

#$ -j y                     Join: Standard error output is written to standard output.

#$ -N jobname               Would otherwise default to the base name of the job script.

#$ -cwd                     Change to the directory where the batch job is submitted.

#$ -m ebas                  Send mail after the end(s), begin(b), abort(a) or suspend(s) of the batch jobs
                            see also:-M

#$ -M mailaddress           Notifications are done via this e-mail address.
                            Note: To create deliverable mail we modify target address if certain conditions
                            are met. If the target address is user@host.desy.de it will be replaced
                            by user@mail.desy.de. This is the normal case if option -M is not used.
                            If the address is set to firstname.lastname@Site or user@site or
                            user@host.other.site we do not change the address.

#$ -v Variable=Wert         Set environment variables. May be necessary for environmental
                            variable to tune a job script or to be inherited by parallel processes.

#$ -w v                     Check job parameters, but do not submit job.

Setting Indivial Default Options

  • You may set certain defaults for qstat or qsub, qsh, qlogin, qrsh, qalter, qresub by personal setup files in your home directory:
  • Fern-Login von einem MAC mit Apple iOS

  • Die Shell-Variable LC_CTYPE kann auf einen nicht unterstützten Wert gesetzt sein. Um entsprechende Probleme zu vermeiden kann man die Variable mit folgendem Kommando löschen:

  • Short job control examples:

    Source files and examples: - Use "show page source" for viewing examples (if not binary)
                               - Click with right mouse button for download
    

    Non-interactive batch:

    [my_submit_host] ~ qsub -cwd my_test_job.sh # Batch example 1 in working directory
    [my_submit_host] ~ qsub -l arch=amd64 -l os=sld6 -cwd my_test_job.sh # Batch example 2 with architecture request
    

    Non-interactive batch with parallel environments:

    [my_submit_host] ~ qsub my_mpich2_job.sh # Distributed PE Batch example with MPICH support
    [my_submit_host] ~ qsub -cwd -pe local 4 my_pe_job.sh # Non-Distributed PE local with 4 cores
    
    
  • There is more info to this topic in section Parallel Environments.
  • Quick manual setup and test of non-interactive batch:

    [my_submit_host] ~ qsub -cwd << EOF
    #!/bin/sh
    #$ -l os=sld6
    hostname
    EOF
    
    
  • Note:
  • All scripts (incl. yours) have to define a valid shell at the first line otherwise your jobs fail to state Eqw with a message like: general searching requested shell because: execvlp failed: Exec format error

    Interactive Batch:

    With X11 Graphics (Care for proper DISPLAY setting and free access to X11/Xserver port): 
    [my_login_host] ssh -X pal # from Unix Login Host
    [my_login_host] xwin32 pal_xterm # from Windows Login Host
    [my_submit_host] export DISPLAY=my_login_host:0 # Set X11 DISPLAY properly
    [my_submit_host] /usr/sge/common/util/qterm # Start Interaktive Batch in xterm
    
    
  • Wenn der lokale Host ein SL6 oder Ubuntu ist, wird's etwas kniffliger, da diese im kdm/gdm per default keinen X11-TCP Zugriff erlauben ...
  • Für Debugging kann kurzfristig auch mal ein unsicheres "xhost +my_actual_workernode" helfen ...
  • Without Graphics:
    [my_login_host] ssh pal # Go to pal
    [my_submit_host] /usr/sge/common/util/qshell # Start Interactive Batch in shell
    
  • Care for proper DISPLAY setting and free access to X11/Xserver port
  • Add options like "-l h_vmem=1G" as needed
  • qterm and qshell are using qsh and qrsh respectively
  • Debugging:

    Setting the environment variable SGEPES to "1" or "e" makes the epilog and prolog 
    scripts provide (more) information about the job execution
    
    qsub -v SGEPES="1"
    qsub -v SGEPES="e"
    
    
  • Use rqmod instead of qmod to clear a jobs's error flag (replaces for security reasons).
  • For administration there is also a rqstat and a rqhostx [-show|-disable|-enable] [WorkerNode].

  • Typical Job Environment:

    GROUP=%Group%
    GROUPROOT=/etc/local/groups/%Group%
    HOST=%ExecHost%.desy.de
    HOSTNAME=%ExecHost%.desy.de
    HOSTTYPE=i386-linux
    JOB_ID=%JobID%
    JOB_NAME=%JobName%
    JOB_SCRIPT=/scratch/sge/default/spool/%ExecHost%/job_scripts/%JobID%
    LOGNAME=%User%
    MANPATH=/usr/sue/man:/opt/products/man:/usr/share/man:/usr/afsws/man:/usr/X11/man:/usr/local/X11/man:/usr/local/man:/usr/kerberos/man
    QUEUE=%Queue%
    PATH=/scratch/sge/tmp/%JobID%.%Queue%:/usr/local/bin:/bin:/usr/bin
    SGE_ACCOUNT=sge
    SGE_ARCH=lx24-x86
    SGE_BINARY_PATH=/usr/sge/bin/lx24-x86
    SGE_CELL=default
    SGE_CWD_PATH=/afs/desy.de/user/&UserI%/%User%/prgs/sge
    SGE_JOB_SPOOL_DIR=/scratch/sge/default/spool/%ExecHost%/active_jobs/%JobID%
    SGE_O_HOME=/afs/desy.de/user/&UserI%/%User%
    SGE_O_HOST=%SubmitHost%
    SGE_O_LOGNAME=%User%
    SGE_O_MAIL=/var/mail/%User%
    SGE_O_PATH=/usr/sge/bin/lx24-x86:/afs/desy.de/user/&UserI%/%User%/bin.Linux_RHEL:/afs/desy.de/user/&UserI%/%User%/bin:/etc/local/groups/%Group%/bin:/etc/local/groups/%Group%/scripts:/usr/sue/bin:/opt/products/scripts:/opt/products/bin:/bin:/usr/bin:/usr/bin/X11:/usr/local/X11/bin:/usr/local/bin:/usr/kerberos/bin:/cern/pro/bin:.:/usr/afsws/etc
    SGE_O_SHELL=/bin/tcsh
    SGE_O_WORKDIR=/afs/desy.de/user/&UserI%/%User%/prgs/sge
    SGE_ROOT=/usr/sge
    SGE_STDERR_PATH=/afs/desy.de/user/&UserI%/%User%/prgs/sge/sge_env.sh.e35
    SGE_STDIN_PATH=/dev/null
    SGE_STDOUT_PATH=/afs/desy.de/user/&UserI%/%User%/prgs/sge/sge_env.sh.o35
    SHELL=/bin/zsh
    TMP=/scratch/sge/tmp/%JobID%.%Queue%
    TMPDIR=/scratch/sge/tmp/%JobID%.%Queue%
    USER=%User%
    
    

    Queues:

    Klasse Zeitbegrenzung Gesamt-Slots Kommentar
    default.q 3 Stunden 100 % verfügbar als Standard
    (h_rt < 3:00:00, h_vmem < 2G/8G)
    short.q 1 Tag ca. 85 %
    (inkl. 50 %
    für long.q)
    verfügbar für mittlere Job-Grössen
    (h_rt < 24:00:00, h_vmem < 2G/16G)
    long.q 1 Woche verfügbar für Lang-Läufer und hohe Speicher-Anforderungen
    (24:00:00 < h_rt < 168:00:00, h_vmem < 4G/32G)
    login.q 1 Tag 50% nützlich für die Vorbereitung von Job-Skripten,
    unterstützt interaktive Jobs mit Graphik-Ausgabe

    Parallele Umgebungen:

    Parallel Umgebungen sind Programmier- und Laufzeit Umgebungen für das das Ausführen parallelisierter Anwendungen in einem gemeinsamen oder verteiltem Speicher. Parallele Umgebungen erfordern in der Regel eine Art von Setup des Betriebs vor dem Start paralleler Anwendungen. Beispiele für gemeinsame Parallel- Umgebungen sind "Betriebssysteme für gemeinsame Speichernutzung" und Betriebssysteme für verteilte Speicherumgebungen z.B. Parallel Virtual Machine (PVM) oder das Message Passing Interface (MPI). Wir haben verschiedene Schnittstellen konfiguriert zwischen den parallelen Umgebungen und dem Grid Engine System. Diese implementieren geeignete Start- und Stopp Verfahren für Ihre Programme. Derzeit unterstützen alle Warteschlangen(Queues) alle parallelen Umgebungen, aber es sollte klar sein, dass ältere Installationen nur MPICH Version 2 unterstützen, während neuere Installation beginnend mit sld6.6 nur MPICH Version 3 anbieten.

    PE Name Queues Konfiguration Kommentar
    make Alle Kerne werden auf so viele Maschinen wie möglich verteilt Keine spezielle Start-Konfiguration
    fill Alle Kerne werden auf so wenige Maschinen wie möglich verteilt Keine spezielle Start-Konfiguration
    local Alle Angeforderte Kerne werden auf einer einzigen Maschine angeboten Keine spezielle Start-Konfiguration
    Die maximale Anzahl der verfügbaren Kerne ist abhängig von der ausführenden Maschine.
    BIRD/NAF2-Maschinen gibt es derzeit mit 4, 8, 16 oder 24+ Kernen
    mpich2-1 Alle auf allen Maschinen mit Betriebsystem-Version vor sld6.6
    (MPICH Version 2)
    Angeforderte Kerne werden auf einer einzigen Maschine angeboten Die maximale Anzahl der verfügbaren Kerne ist abhängig von der ausführenden Maschine
    BIRD/NAF2-Maschinen gibt es derzeit mit 4, 8, 16 oder 24+ Kernen
    Die MPICH2-Dämonen werden automatisch gestartet und gestoppt
    MPICH2-kompatible Maschinen-Datei: $TMP/sge_mpdhosts
    mpich2 Alle auf allen Maschinen mit Betriebsystem-Version vor sld6.6
    (MPICH Version 2)
    Kerne werden auf so viele Maschinen wie möglich verteilt Die MPICH2-Dämonen werden automatisch gestartet und gestoppt
    MPICH2-kompatible Maschinen-Datei: $TMP/sge_mpdhosts
    mpich-1 Alle auf allen Maschinen mit Betriebsystem-Version sld6.6 oder höher
    (MPICH Version 3)
    Angeforderte Kerne werden auf einer einzigen Maschine angeboten Die maximale Anzahl der verfügbaren Kerne ist abhängig von der ausführenden Maschine
    BIRD/NAF2-Maschinen gibt es derzeit mit 4, 8, 16 oder 24+ Kernen
    Die MPICH3-Dämonen werden automatisch gestartet
    MPICH3-kompatible Maschinen-Datei: $MPIHOSTS=$TMP/sge_mpdhosts
    Slot-Verbindung über HYDRA_LAUNCHER_EXEC=$MPIRSH
    mpich Alle auf allen Maschinen mit Betriebsystem-Version sld6.6 oder höher
    (MPICH Version 3)
    Kerne werden auf so viele Maschinen wie möglich verteilt (Im Moment gibt es eine Begrenzung von maximal 5 Slots auf 5 Maschinen) Die MPICH3-Dämonen werden automatisch gestartet
    MPICH3-kompatible Maschinen-Datei: $MPIHOSTS=$TMP/sge_mpdhosts
    Slot-Verbindung über HYDRA_LAUNCHER_EXEC=$MPIRSH
    proof Alle Kerne werden auf so viele Maschinen wie möglich verteilt Grundsätzlich wie die make-Umgebung

    NSLOTS=4 # Anzahl der Kerne ...
    NHOSTS=1 # ... auf einer Anzahl von Maschinen
    PE=local
    PE_HOSTFILE=<local>/<path>/<to>/pe_hostfile
    
    

    Benutzung des Batch-Systems mit MPICH Parallel-Umgebungen:

  • Version MPICH 2
  • [my_submit_host] ~ qsub my_mpich2_job.sh # Beispiel für verteilten PE Batch [my_submit_host] ~ qsub my_mpich2-1_job.sh # Beispiel für nicht verteilten PE Batch
  • Version MPICH 3
  • [my_submit_host] ~ qsub my_mpich_job.sh # Beispiel für verteilten PE Batch [my_submit_host] ~ qsub my_mpich-1_job.sh # Beispiel für nicht verteilten PE Batch Quelle für MPI-Code: SL4/5/6 Binär-Code MPI C Quelle Makefile (für MPICH 2 unter sld5) Vorraussetznung für die Benutzung von mpich2: - Erzeuge eine Datei ~/.mpd.conf für den MPD-Dämon, die ein Passwort enthält wie: MPD_SECRETWORD=.... - Der Zugang zur Datei muss auf den Besitzer eingeschränkt werden: chmod 600 ~/.mpd.conf

    GPU Environments:

    Achtung: Die Dienste im GPU-Computing sind abgebaut und in das HPC-Angebot migriert worden!


    Using path aliases:

    Problem:

    If you are e.g. working on a submit host in directory /nfs/flc/lc3/pool/<myuserid>, which is an automount link to /pool/<myuserid> and if you then start a "qsub -cwd", your batch job will try to use a working directory /pool/<myuserid>, which does not exist on the batch host. The following config file would prepare the correct mapping for the above situation:

    ~/.sge_aliases

    # src-path      subm-host       exec-host       dest-path
    /pool           lc3.desy.de     *               /nfs/flc/lc3/pool
    /pool           lc4.desy.de     *               /nfs/flc/lc4/pool
    

    Quota and Fairshare:

    We use quota and fairshare settings to keep the batch cluster in a state where all resources can be shared in a fair manner. This includes that

    Quota

    There are people related quota settings insuring that a single user must not use more than 65 % of the cores of an os flavor at a time. Projects are limited to 75 % of a core set.

    There are queue related quota settings allowing 100 % jobs in the default queue which ensures scheduling at least every 3 hours. The longer queues like long, short and long+short are limited to 65, 75 and 85 % respectively. The interactive login queue is limited to 50 %.

    Host quotas are also used for draining hosts for the purpose of maintenance. Hosts which are (temporary) members of the host group @maintenance will not receive any new jobs.

    Fairshare

    BIRD/NAF2 will be shared by all DESY users and IT provides service and hardware to this facility. On top of this other DESY groups have dedicated project specific hardware to the BIRD/NAF2 cluster. This way, valuable resources have been made available. The contributing project will be granted fair share points: 222 for each GPU device, 10 for each compute core, 5 for each GByte memory and 1 for each GByte disk. These points will garantee access to this relative amount of batch resources to the project members. Because IT gives his own fairshare to the community and as batch is not continous over time this is a win-win situation for all, even for those without share points who are allowed to use the idle times and/or idle resources. Unused project shares even enhance your job priorities for the future weeks, so typically a project may use more resources than it could do in a stand-alone facility of it's own.

    Every user has additional 100 functional points to priorize his own jobs. Users who belong to more than one project should carefully set the job's project membership.


    Test Environments and New Features:

    Sometimes new features are being tested on BIRD/NAF2 nodes. They are part of the BIRD/NAF2 cluster but are not used by default. You have different choices to handle your personal access:

    Hyperthreading: HT

    The hosts are configured without Hyper threading unless they have a special tagging. Threading thus doubles the core numbers e.g providing 16 instead of 8 cores per hosts.

    Interactive Batch: qshell or qterm

    For job preparation or other interactive work you can work on real worker nodes with the same environment as a batch job would have. On top of this you can use graphic x11 output from your xterm and your application.
    Start /usr/sge/common/util/qterm or /usr/sge/common/util/qshell
    This feature will be configured on all nodes soon. We start on hosts running sld5 (-l os=sld5 or -l os=sld5).

    Kerberos 5 Environment

    The new nodes run with a reprogrammed token generator which provides a full kerberos 5 environment for running jobs. The new software should run with higher stability and availibility by using all machines of our take cluster and should minimize access to the main kerberos server by prolonging tokens locally.

    Manuals and other Information Sources:

    BIRD/NAF2 Flyer (from UCO):
    [Flyer]

    Guides Current Version:

    Administration(pdf): admin.pdf
    User Guide(pdf): user_guide.pdf

    Guides Next Version:

    Starting.pdf
    Planning.pdf
    Upgrading.pdf
    Installing.pdf
    Administrating.pdf
    Using.pdf

    Online-Statistik:

    Wir arbeiten noch an der entgültigen Lösung, aber die URL/Web-Addresse wird so bleiben.


    Zeuthen Batch Benutzer-Information

    Kontakt:

    Addresse Zweck Kommentar
    bird . service @ desy.de Betriebliche Anliegen in HH Generiert ein Ticket im RT system
    sge - general @ desy.de Diskussion und Fragen zu Design und Entwicklung  
    sge - users @ desy.de Benutzer-Ankündigungen und Support HH Mitgliedschaft ist Teil der Batch-Registrierung
    Imprint © 2013 Last update: 03. Apr. 2017 www-it@desy.de