Bologna Batch System (BBS) Franco Semeria Seminario di Sezione 28-06-2004
Cosa e BBS BBS e un sistema batch basato su Condor. L utente sottomette i job da una macchina e il sistema li distribuisce sulle altre macchine secondo una definita policy di accesso.
Cosa e Condor Condor e un sistema per il calcolo distribuito su larga scala. Lo scopo principale di Condor e quello di usare macchine non dedicate (pc personali) in un modo non invasivo Non richiede la modifica del codice
Il Matchmaking con ClassAds Metodo di allocazione delle risorse analogo ai Classified Advertising Due soggetti: i job che chiedono risorse (es: RAM disponibile, velocita di CPU) e le macchine che offrono risorse. Central Manager Submitting machine Executing machine
Richieste e preferenze Si possono specificare richieste e preferenze: Un job puo richiedere le macchina con > 512MB di RAM, o preferire quelle di un particolare esperimento Una macchina puo runnare job solo durante la notte, o dare priorita ad una serie di utenti
Ottimizzazione delle risorse Si possono per esempio unire le farm di due gruppi ogni gruppo può sempre accedere alle proprie macchine Tutti possono usare anche le altre macchine se libere
I classads vengono specificati: Per I job nel job description file Per le mcchine nel file di configurazione di Condor
Condor Universe Puo essere utilizzato in diversi ambienti chiamati Universe scelti dall utente: Standard, Vanilla, PVM, MPI, Globus, Java, Scheduler I principali sono Standard e Vanilla
Condor Standard L Universe Standard bisogna rilinkare I job con alcune librerie di Condor. Cosi si ottiengono: remote system calls: Si accede ai file remotamente e in modo trasparente all utente checkpointing: il job avanza migrando da macchina a macchina
Condor Standard: l INFN Pool Il Condor Pool dell INFN e basato sullo Standard Universe Circa 200 macchine per 80 anni di CPU equivalente all anno
Condor Vanilla Non bisogna rilinkare I job. Non esiste checkpoint (se il job si ferma su una macchina deve ripartire dall inizio) L accesso remoto ai file avviene: Tramite condivisione dei dischi (NFS), oppure I file vengono copiati sulla executing machine tramite il Condor Transfer Mechanism
Condor Vanilla (cont.) In questo ambiente Condor assomiglia a un normale job scheduler (tipo pbs) Il vantaggio di Condor e la grande flessibilita dei ClassAds e la disponibilita di tool accessori (vedi DagMan) E possibile definire un complessa policy di accesso alle risorse con cui costruire un Batch System adattato alle proprie esigenze
DAGman Si possono eseguire job secondo un certo ordine con DAGman: A Job A A.condor Job B B.condor Job C C.condor Job D D.condor PARENT A CHILD B C PARENT B C CHILD D Script PRE A top_pre.csh B D C
Bologna Batch System Le macchine con BBS sono un sottoinsieme del Pool Nazionale I job BBS hanno la priorita sugli altri. Partono indipendentemente dal carico della CPU Due tipi di job (due code): short e long I short hanno una migliore priorita Unix (girano piu velocemente) Il numero di short su una macchina e minore dei long I short runnano per 1 ora, i long all infinito Tutti questi parametri possono essere modificati
Trasferimento dei file di I/O Un altro vantaggio di Condor: tramite il Condor Transfer Mechanism non e necessario che i dischi delle macchine siano condivisi Condor trasferisce automaticamente i file di input dalla submitting machine alla exec. machine, e viceversa per i file di output.
CPU e job In Condor una CPU può di norma eseguire un solo job. MA per BBS: Le risorse devono essere garantite Almeno un job short e uno long devono poter essere eseguiti su ogni macchina Le risorse non devono essere sprecate Non ci devono essere CPU libere e job in coda Contraddizione?
Virtual Machines E necessario associare più di una Virtual Machine (VM) per ogni CPU, che quindi può eseguire più di un job. Ogni VM ha una diversa priorità: i job short hanno una priorità migliore dei long
Job e macchine Come specificare un job come job bbs (short o long) Come specificare una macchina come macchina bbs (deve trattare i job bbs in modo particolare)
Per i job BolognaBatchJob = True requirements = (BolognaBatchServer == True) Per le macchine: BolognaBatchServer = True IsBBJob = (BolognaBatchJob == True)
Per i job long LongRunningJob = True Per le macchine IsLongBBJob = ( $(IsBBJob) && (LongRunningJob == True) )
Per dare priorita' diverse ai job: JOB_RENICE_INCREMENT = (5+(10* ( LongRunningJob == True BolognaBatchJob =!= True))) se LongRunningJob == True JOB_RENICE_INCREMENT = 5+10*1 = 15 altrimenti JOB_RENICE_INCREMENT = 5+10*0 = 5
La farm di Sezione Attualmente la farm di Sezione su cui e utilizzabile BBS e composta da 19 macchine biprocessori: 7 macchine centrali. 7 macchine di Alice. 5 macchine di Grid. BBS e utilizzato da Alice Prossimamente anche dai Teorici
BBS: utilizzo Creare un job description file: Executable = prova Input = prova.in Output = prova.out Log = prova.log Queue Sottomettere il job: bbs_submit_long prova.jdf bbs_submit_short prova.jdf
BBS: utilizzo (cont.) Cancellare un job: condor_rm Controllare lo stato dei job: bbs_q Interfaccia grafica: bbs_gui