Come concordato con i coordinatori di gruppo e ribadito nel corso di vari incontri con gli utenti Unix in sezione, vi è la necessità di offrire una significativa capacità di elaborazione nei sistemi digital Unix. A tale scopo è stata resa disponibile una coda di elaborazione batch distribuita basata sul software di gestione Condor, installato, per il momento, su tutte le macchine Digital UNIX con sistema operativo versione 4.0 della sezione.
Condor è un sistema che sfrutta risorse di calcolo distribuite QUANDO ESSE NON SONO UTILIZZATE DAL "PROPRIETARIO" PRINCIPALE della CPU. La presenza di Condor non richiede dunque di allocare nessuna risorsa della macchina ospite in modo permanente (nè disco, nè CPU, nè una struttura di filesystem comune). Per consentire questa flessibilità, il lavoro in esecuzione su Condor può essere sospeso ed eliminato da una macchina ospite in qualunque momento senza perdere però il tempo di CPU accumulato. Maggiori informazioni su condor si possono ottenere dal sito: http://www.cs.wisc.edu/condor mentre il manuale completo è disponibile anche in: http://server11.infn.it/condor/condor-V6_1-Manual/Index.html
L'utilizzo di Condor richiede la ricompilazione del programma con opportune librerie e la successiva sottomissione del job nella coda. Di seguito sono riportate le istruzioni.
Nota: alcuni dei comandi qui descritti (submit_batch, show_batch, remove_batch) sono script aggiunti nell'installazione di Milano per facilitare l'accesso al sistema soprattutto all'utente occasionale, ed invocano i sottostanti comandi di Condor, preparando gli opportuni file di configurazione e sottomissione. Per la descrizione dettagliata dei corrispondenti comandi di Condor (condor_submit, condor_status e condor_rm), rivolta soprattutto agli utenti che vogliono utilizzare tutta la funzionalità del sistema, consultare il manuale.
condor_compile:
Per permettere la sospensione e la migrazione dei lavori in batch
senza che il progresso accumulato su una macchina ospite vada perduto,
Condor utilizza una libreria di "checkpoint" che consente di salvare
l'intero stato di esecuzione di un programma prima di interromperlo,
per poi riprendere l'esecuzione più tardi, eventualmente su un altra
macchina ospite. Per utilizzare questa libreria, i programmi devono
essere compilati con "condor_compile". Basta premettere "condor_compile"
al comando di compilazione utilizzato (qualsiasi esso sia: f77, cc, c++,
ma anche make o gmake). Ad esempio:
> condor_compile f77 programma.f -o programmaoppure
> condor_compile make programmaE' possibile eseguire con Condor anche programmi che *non* sono stati compilati con condor_compile. Il progresso dell'esecuzione in questo caso risulterà più lento, ed i job potrebbero non riuscire mai a completare se richiedono un impiego di CPU molto lungo (ad esempio superiore ad una notte o ad un weekend).
submit_batch:
Per sottomettere un lavoro al sistema di batch si utilizza il comando submit_batch. Questo comando invoca a sua volta gli opportuni comandi di Condor (è stato lasciato generico in modo che, in futuro, se necessario, il sistema di gestione dei lavori in batch possa essere cambiato in modo trasparente). Il comando restituisce uno o più Job ID che possono essere usati per identificare il lavoro nella lista prodotta da "show_batch" oppure per cancellarlo con "remove_batch" (vedi la descrizione di questi comandi più avanti). Questa la sintassi di submit_batch:
submit_batch [-env] [-nomail|-mail] [-in file] [-out file] [-log file] [-# copies] executable [arg1 arg2 arg3 ...]
-env | va specificato se il lavoro di Condor deve ereditare le variabili environment della sessione da cui viene sottomesso. |
executable | è il nome dell'eseguibile che deve essere fatto girare, e che può essere o non essere stato compilato con condor_compile. |
arg1 arg2 arg3 | sono gli argomenti che l'eseguibile eventualmente si aspetta sulla linea di comando |
-in <file> | va aggiunto per specificare dove il programma da eseguire in batch deve leggere il suo standard input. Se non viene specificato un file lo standard input viene letto da /dev/null. |
-out <file> | indica invece il file dove deve essere scritto lo standard output. Se questa opzione è assente l'output viene inviato a /dev/null. |
-log <file> | indica invece un file dove viene inviata la diagnostica di Condor nel corso dell'esecuzione del lavoro. Può essere utile in caso di problemi, o per analizzare lo stato del lavoro. In assenza di questa opzione non viene prodotto in file di log. |
-nomail | Questo flag va specificato se NON si desidera ricevere un messaggio mail al termine dell'esecuzione del lavoro in batch. |
-mail <user@host> | va aggiunto per specificare un indirizzo a cui mandare un messaggio mail al termine dell'esecuzione del lavoro in batch. Se questa opzione è assente e non è presente "-nomail" il mail viene mandato all'utente che sta sottomettendo il lavoro, sull'host locale. |
-# <copies> | serve per inviare, anziché un singolo lavoro, un gruppo di più lavori identici (ad esempio un gruppo di generazioni di eventi montecarlo). Condor può essere più efficiente a gestire molti lavori di durata ridotta, piuttosto che un singolo lavoro di lunga durata. |
-env | va specificato se il lavoro di Condor deve ereditare le variabili environment della sessione da cui viene sottomesso. |
remove_batchAd esempio:[job ID] [first ID,last ID]
> remove_batch 5.0 6.1 7.3Cancella tre job, identificati dagli ID 5.0, 6.1 e 7.3
> remove_batch 5Cancella tutti i job 5.x.
> remove_batch 5,7Cancella tutti i job 5.x, 6.x, 7.x
> remove_batch 8.2,8.18Cancella i job 8.2, 8.3, ... 8.18.
Altri comandi di Condor che possono tornare utili:
condor_status | Mostra lo stato di tutti gli host che fanno parte del sistema di batch. |
condor_status -claimed | Mostra lo stato degli host che stanno effettivamente eseguendo un lavoro per conto del sistema di batch. |
condor_q -analyze <Job ID> | Questo comando tenta di determinare perché un lavoro accodato al sistema di batch non è ancora passato in esecuzione. Può essere utile per determinare la causa di eventuali problemi. |
Per commenti su queste istruzioni mandare un mail a :
Francesco Prelz
Per problemi durante l'utilizzo del sistema di batch:
troubles@mi.infn.it