Running batch jobs on supercomputers Catello Di Martino Catello.dimartino@unina.it University of Naples Federico II, Dipartimento di Informatica e Sistemistica DIS Materiale a cura di Giulio Merolla (gmerolla@yahoo.it) 1
Riferimenti: Karl Czajkowski, Ian Foster, Nick Karonis, Carl Kesselman, Stuart Martin, Warren Smith, Steven Tuecke A Resource Management Architecture for Metacomputing Systems, Information Science Institute, University of Southern California Marina del Rey, CA 90292-6695 http://www.isi.edu Brett Bode, David M. Halstead, Ricky Kendall, and Zhou Lei The Portable Batch Scheduler and the Maui Scheduler on Linux Clusters, Scalable Computing Laboratory, Ames Laboratory, DOE Wilhelm Hall, Ames, IA 50011, USA, help@scl.ameslab.gov David Jackson, Maui High Performance Computing Center TORQUE Administrator Manual version 2.4.5, www.clusterresources.com Moab Workload Manager Administrator's Guide version 5.4, www.clusterresources.com OpenPBS Release 2.3 Administrator Guide 2
Contesto del lavoro svolto: Analisi FFDA dei supercalcolatori; Failure richiedono conoscenza del Workload; Informazioni sul workload sono nascoste nei log di sistema; Studio preventivo del particolare Batch System; Entità coinvolte, il loro funzionamento e come collaborano; 3
Alcune caratteristiche dell ambiente: Supercalcolatori eseguono soprattutto Batch Job; Incidono maggiormente sul workload; Non più architetture monolitiche ma cluster-like; Elaborazione su nodi differenti; Complessità maggiore; Problemi di gestione; Problemi di eterogeneità; Sono necessari Software di supporto: Resource Manager + Scheduler; 4
Roadmap: Panoramica sulle componenti del Batch System: Resource Manager; Scheduler; 5
Resource Manager: Resource Manager: componente principale del Batch System; Coordina tutte le altre componenti; Conserva un database di tutte le risorse disponibili, delle richieste di sottomissione dei job e dei running jobs; Forniscono alcuni meccanismi di scheduling di default; Alcune implementazioni well-known: IBM LoadLeveler; LSF (Load Sharing Facility); DQS (Distributed Queuing System); PBS (Portable Batch System); OpenPBS; TORQUE (Terascale Open-Source Resource and QUEue Manager); 6
PBS (Portable Batch System) Sviluppato dalla NASA all inizio degli anni 90; Aderisce allo standard POSIX; Gestisce code di batch jobs; Componenti di PBS: PBS_Commands; PBS_SERVER; PBS_MOM; PBS_SCHED; 7
I) PBS_COMMAND (1/3): Vengono utilizzati per sottomettere, monitorare, modificare e cancellare i job; Possono essere installati in un qualsiasi sistema che supporti PBS e non richiedono l installazione di PBS stesso; PBS supporta sia l esecuzione da riga di comando, sia il supporto di una interfaccia grafica, xpbs; I comandi possono essere classificati in: User commands; Operator commands; Administrator commands; 8
I) PBS_COMMAND (2/3): User commands: usati dall utente per sottomettere, controllare e modificare i job; qsub permette di sottomettere uno script al batch system; Risorse richieste; Attributi del job; qstat richiede lo stato di un job; qdel cancella il job dal sistema; qalter modifica gli attributi del job;... 9
I) PBS_COMMAND (3/3): Operator commands: controllo dei nodi; qenable abilita una destinazione ad accettare i batch jobs; qdisable disabilita una destinazione ad accettare i batch jobs; qrun forza il batch system ad eseguire un certo batch job; qstop forza l arresto dell esecuzione dei job in una destinazione; Administrator commands: controllo globale; qmgr apre una administrator interface relativa al batch system; pbsnodes modifica le proprietà dei vari nodi d esecuzione; Operator e Administrator commands richiedono privilegi di accesso particolare; 10
Scrivere uno script PBS: Sottomettere un job: scrivere un PBS job script; 11
II) PBS_SERVER: Risiede su un nodo amministrativo ; 12 Riceve/crea i batch jobs; Li modifica; Li protegge dai crash di sistema; Li mette nello stato di executable ; Gli utenti sottomettono i job al server tramite i PBS commands, attraverso una rete IP; Conosce la lista di tutti i nodi d eseuzione; Server gestisce una o più code, che possono essere di due tipologie: execution queue; routing queue;
III) PBS_MOM: PBS_MOM: è il job executor; Risiede su ogni nodo del supercalcolatore; In particolare, il pbs_mom: Esegue un job appena ne riceve una copia dal pbs_server; Crea una nuova sessione identica a quella dell utente; Monitora il job; Restituisce l output al server; 13
IV) PBS_SCHED: PBS fornisce un suo built-in scheduler; pbs_sched contiene le politiche di scheduling della macchina; Questo demone comunica costantemente con: i vari MOM, per controllare lo stato delle risorse disponibili; il pbs_server, per conoscere la disponibilità di job da eseguire. 14
Interazione tra le componenti di PBS: Host A Client Only PBS_COMMANDS 7) Submits the job; Executes the job! 8) MOM MOM 1) submits Host C Execution Host MOM 2) Host D Execution Host PBS_SERVER PBS_SCHED PBS_MOM Host E Execution Host Execution queues 15 6) 4) updates 5) Requests job info Resources database Host B Administrative Node - - -
Interazione tra le componenti di PBS: Host A Client Only 10) Returns output to the client PBS_COMMANDS 9) Returns output to the server MOM MOM Host C Execution Host MOM Host D Execution Host PBS_SERVER PBS_SCHED PBS_MOM Host E Execution Host Resources database - - - Execution queues Host B Administrative Node 16
Successore di PBS: TORQUE TORQUE: è un community effort PBS project (2003); Supportato da organizzazioni come NCSA, OSC, USC, TeraGrid e molte altre; Rilasciate oltre 1,200 patches; TORQUE provides enhancements over standard OpenPBS in the following areas: Fault Tolerance Additional failure conditions checked/handled Node health check script support Scheduling Interface Extended query interface providing the scheduler with additional and more accurate information Extended control interface allowing the scheduler increased control over job behavior and attributes Allows the collection of statistics for completed jobs Scalability Significantly improved server to MOM communication model Ability to handle larger clusters (over 15 TF/2,500 processors) Ability to handle larger jobs (over 2000 processors) Ability to support larger server messages Usability Extensive logging additions More human readable logging (i.e. no more 'error 15038 on command 42') 17
Roadmap: Panoramica sulle componenti del Batch System: Resource Manager; Scheduler; Sono diversi dagli scheduler di default che mette a disposizione il Resource Manager! 18
Scheduler: Problematiche relative ai built-in scheduler dei Resource Manager; Scarse prestazioni; Scarso utilizzo delle risorse; E giusto che l administrator possa implementare le sue politiche di scheduling; Un esempio: PBS_FIFO; Non è un FIFO in senso stretto; Scandisce la coda e seleziona il primo job che fitta le risorse disponibili; Sfavorisce i job più grandi; Implementa un meccanismo di starving dei job; Nascita scheduler Open Source MAUI; Fu integrato in PBS e in molti altri Resource Manager; Implementazione dello Scheduler fu separata dal Resource Manager; 19
MAUI (1/2) Scheduler MAUI: alcune caratteristiche; Reservation basata su wall-time; Scheduler a priorità; Meccanismo di backfill; High Priority reservations; Low Priority reservations; Future high priority reservations; backfill backfill backfill Riscosse un enorme successo: ottimo sfruttamento di risorse; Fornisce molti meccanismi di policy; Eventuali loro combinazioni, permettono schemi di scheduling particolarmente accurati e raffinati; Il file di configurazione maui.cfg contiene le policy, assieme ad altri parametri; 20 time
MAUI (2/2) Integrare MAUI nell architettura PBS: PBS_SERVER PBS_SCHED PBS_MOM MAUI Plug-in MAUI Policy Administrative Node 21
MOAB Scheduler MOAB: basato sullo scheduler MAUI, sviluppato da Cluster Resources; 22
Ricapitolando: Batch System = Resource Manager + Scheduler; Implementazioni osservate: PBS MAUI TORQUE MOAB (Resource Manager) (Scheduler) 23
Conclusioni e sviluppi futuri: Conoscere il funzionamento del batch system: Interpretare i log di sistema; Analisi del workload dai log di sistema; 24