Manuale HTCondor. Indice

Documenti analoghi
Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Corso di Laboratorio di Sistemi Operativi

Esercitazione 1 la shell

Laboratorio di Algoritmi e Strutture Dati

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

Università degli Studi di Napoli Federico II Corso di Laurea in Informatica III Anno

Settima esercitazione. Shell scripting

Codice Corso: UNX010. Durata: 3 giorni

Il sistema operativo LINUX La shell

Argomenti. Architettura fisica di U-Lite Architettura software di U-Lite Comandi gestione job: NFS contro AFS Licenze software

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Lezione 3: Programmazione della Shell di Unix

ReCaS Datacenter cluster HPC, guida al suo utilizzo Febbraio, 2016 Alessandro Italiano

LABORATORIO DI SISTEMI OPERATIVI

Gestione dei processi

Un introduzione a. Condor Project Computer Sciences Department University of Wisconsin-Madison

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Bologna Batch System (BBS) Franco Semeria Seminario di Sezione

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Un introduzione a. II Parte

Interfaccia a Linea di Comando di Windows (Prompt dei comandi) Dott. Ing. Giuseppe Serano

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi

Laboratorio di Sistemi Operativi

Esercizi su permessi

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Controllo di flusso negli script: if-then-else

SCUOLA DI INGEGNERIA DELL INFORMAZIONE. Corso di Piattaforme Software per la rete MODULO 2 Anno Accademico Prof. William FORNACIARI

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

Lavoriamo ora in windows

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Gestione dei files in linguaggio C. Fondamenti

Uso del terminale in ambiente UNIX

Il sistema operativo LINUX Esercitazione 3

Nozioni Base di Linux

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

Linux e la shell Bash

Processi. Introduzione. Effective user/group id. Fork

Lezione XXII.I La gestione dei file Fondamenti

Richiami sui Concetti Fondamentali dei Processi

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

Manuale d uso della Posta TBS. Oracle Collaboration Suite

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

HPC e Cloud 4 giugno 2018 Alberto Sabaini Anna Perina Piattaforma Computazionale

Laboratorio Centro Calcolo

BASH: Bourne Again Shell (3)

Filtri e pipeline. qualsiasi comando unix ha a disposizione 3 file con cui comunicare con il resto del sistema: standard input in ingresso

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

LABORATORIO DI SISTEMI OPERATIVI

INPUT E OUTPUT DI VALORI NUMERICI

Condor e la Griglia. Jaskaran Singh CS-599 Introduction to Grid Computing. Cosa Fa Condor CONDOR

Sistemi Operativi e informatica 1

Introduzione ai sistemi GNU/Linux

SISTEMI DI ELABORAZIONE

Laboratorio Multimediale Lezione n. 1

FONDAMENTI DI INFORMATICA

Laboratorio in C su Processi e POSIX IPC (Inter Process Communications) Dalla nona lezione di laboratorio in avanti

File binari e file di testo

Laboratorio: Comandi CLI comuni di Windows

Shell BASH. Variabili Redirezione

INTRODUZIONE ALLA SHELL BASH (PARTE 1) Marica Antonacci INFN BARI

Unix - Shell dei comandi Sostituzioni

Guida all uso. Eureka Web

Gestione dei Processi

Array. // utente pippo $utente1 = array( username => pippo, password => pippo123, ruolo => amministratore );

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio

FILE SYSTEM 2. I-nodes (o Inodes)

a strange language, shaped as much by history as by design

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del Shell

Le presenti note si riferiscono esclusivamente alla procedura di installazione e di aggiornamento di Planet HR.

Processi. Esecuzione di programmi. Multi-tasking. Processo = programma in esecuzione

- comando sort: con chiavi di ordinamento -

Introduzione al sistema Linux

LINUX: struttura generale

Il sistema operativo LINUX Script di Shell

ANTIRICICLAGGIO SEGNALAZIONE OPERAZIONI SOSPETTE

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Esercitazione finale per il corso di Sistemi Operativi (A.A. 2003/2004) Descrizione dell esercitazione. Il demone messaged

Dos: script dell interprete dei comandi

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Introduzione alla. Alessandra Giordani Lunedì 11 marzo

Manuale Operativo. Release 1.1

Matlab: Script e Funzioni

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

Laboratorio Multimediale Lezione n. 1, gruppo A

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Progetto II: Il linguaggio C e le chiamate di sistema sui processi

Matlab 4. Operatori logici e Script. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Lab 1: Marzo 2013

LABORATORIO DI SISTEMI OPERATIVI

Il sistema operativo LINUX Esercitazione 3. Esercizio 1. Esercizio 2. Esercizio 5 - Soluzione. Il sistema operativo LINUX Esercitazione 4.

P2WW ALZ0. ScanSnap PDF Converter for S500 V1.0 Guida dell operatore

Il formato delle ricette Convenzioni tipografiche Versioni, ultima edizione ed errata corrige

Aggiornamento del firmware per il trasmettitore wireless WT 7

Gestione dei processi nel sistema operativo Unix

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab Shell. Lab-Shell 1

Transcript:

Manuale HTCondor Indice Login Sottomettere un job in HTCondor Perchè l opzione name<schedd>? Sottomettere un job Controllare lo stato dei job sottomessi Ottenere l ID e altre informazioni relative ad un job Visualizzare i job in esecuzione Visualizzare solo i propri job Visualizzare i job in attesa Visualizzare uno specifico job Perchè il job non completa la sua esecuzione? Controllare l output di un job in esecuzione Gestire un job Rimuovere un job dalla coda Porre un job in attesa Rilasciare un job Cambiare la priorità dei job Controllare lo stato del pool Visualizzare gli slot che eseguono i propri job Comandi obbligatori Comandi utili Aggiungere requisiti alle macchine che eseguiranno il job A proposito di Requirements and Rank Altri job di esempio 1. Sottomissione multipla 2. Altro esempio sulla sottomissione multipla 3. Lavorare con i file 4. Sottomissione multipla e file

Login Per effettuare il login è necessario usare il protocollo ssh mediante il seguente comando: >ssh i<path_private_key><username>@ frontend.recas.ba.infn.it Il login avviene sulla home dell utente: >pwd /lustrehome/<username>

Sottomettere un job in HTCondor Supponiamo di voler eseguire il comando echo per stampare a schermo la stringa Hello World!. Per sottomettere un job in HTCondor è necessario un submit descriprion file, un file di testo che descrive il job da sottomettere (percorso delle eseguibile, requisiti, ecc ). Una più dettagliata spiegazione relativa al submit description file e ai suoi comandi è riportata in seguito. #Thisisacommentinthesubmitfile #filename:submit_echo #universedescribesanexecutionenvirorment.setuniversetovanilla universe=vanilla #Pathoftheexecutable(itcanbeasystemcommand,yourownapplication,a script,etc...) executable=/bin/echo #Theargumenttopasstotheexecutable arguments="helloworld!" #Theoutputoftheremotemachinerunningthejobwillbeprintedon echo.out output=echo.out error=echo.error log=echo.log request_cpus=1 rank=memory Nota: se non vengono specificati request_cpus, request_disk, request_memory nel submit file, il job verrà eseguito su una quantità di default di cpu(1), memoria e spazio sul disco. Per sottomettere il job usiamo condor_submit passando come argomento il nome del submit file: >condor_submitsubmit_echo name ettore

Perchè l opzione name<schedd>? Al fine di sottomettere i comandi relativi ai job è necessario specificare uno schedd, ergo l opzione name<schedd> nella sottomissione del comando poco più in alto. Tutti i comandi descritti in questo documento necessitano dell opzione nameettore per funzionare, fatta eccezione per condor_status.

Sottomettere un job condor_submit è il comando per la sottomissione di job per l esecuzione attraverso HTCondor. >condor_submit<path_submit_file> >condor_submit<path_submit_file> interactive Indica che l utente vuole eseguire una shell interattiva sulla macchina remota che esegue il job.

Controllare lo stato dei job sottomessi Ottenere l ID e altre informazioni relative ad un job >condor_q Mostra informazioni di tutti i job in coda. Per ogni job è mostrato: id : id del job status : I idle (in attesa di una macchina che lo esegua), R in esecuzione, H in attesa, S sopseso, C completato, X rimosso, < trasferimento input, > trasferimento output altre informazioni (come tempo di esecuzione (RUNTIME), dimensione, priorità (PRI), nome dell eseguibile (CMD)) Visualizzare i job in esecuzione >condor_q run Visualizzare solo i propri job >condor_q constraint 'OWNER=="<username>"' Visualizzare i job in attesa >condor_q hold Visualizzare uno specifico job >condor_q<job_id> Perchè il job non completa la sua esecuzione? >condor_q better analyze <job_id> Effettua una dettagliata analisi di matchmaking per determinare quanti slot sono disponibili per eseguire il job Controllare l output di un job in esecuzione >condor_tail<job_id> Mostra le ultime righe di stdout di un job in esecuzione

Gestire un job Rimuovere un job dalla coda Un job può essere rimosso dalla coda in qualsiasi momento usando il comando condor_rm. >condor_rm<job_id> Porre un job in attesa Un job può essere posto in attesa mediante il comando condor_hold. Quando un job è posto in attesa, non verrà schedulato per l esecuzione finchè non viene rilasciato. Se il job è in esecuzione mentre condor_hold viene invocato, il job verrà rimosso dalla macchina sulla quale il job è in esecuzione. >condor_hold<job_id> Rilasciare un job A job può essere rilasciato mediante il comando condor_release. Quando un job posto in attesa viene rilascisto, tornerà allo stato idle, e varrà schedulato all esecuzione appena possibile. Solo i job posti in attesa possono essere rilasciati. >condor_release<job_id> Cambiare la priorità dei job La priorità dei job può essere cambiata mediante il comando condor_prio. La priorità di un job può essere un qualsiasi intero, dove numeri più grandi corrispondono a una priorità più alta; + value aumenta la priorità del job della quantità data da value. value riduce la priorità del job della quantità data da value. >condor_prio p <+ value><job_id>

Controllare lo stato del pool condor_status è un utile strumento che può essere usato per mostrare e monitorare il pool in HTCondor. Nota: condor_status non necessita dell opzione name<schedd> per funzionare. >condor_status available Mostra gli slot disponibili >condor_status available autoformat NameMemoryCpusDisk Mostra nome, memoria, cpu, spazio sul disco degli slot disponibili >condor_status run Mostra gli slot che eseguono job nel momento corrente Visualizzare gli slot che eseguono i propri job >condor_status constraint 'RemoteUser=="<username>@ReCaSCluster"'

Accedere a un job running È possibile accedere tramite ssh a un proprio job running attraverso il comando >condor_ssh_to_job name<schedd><job_id> in cui bisogna sostituire a <schedd>il nome dello schedd a cui è stato sottomesso il job (e.g. ettore), e a <job_id> l'id del job. Viene quindi avviata una connessione remota con lo stesso user del job e nella cartella da cui il comando è stato lanciato, e viene fornito un PID associato al job. Per uscire dalla sessione, digitare logout. Altre opzioni possono essere visualizzate con >condor_ssh_to_job help Ulteriori informazioni e alcuni esempi di utilizzo possono essere trovati a questo link.

Un submit description file è un file di testo che contiene tutto ciò che HTCondor ha bisogno di sapere sul job da essere sottomesso come il nome dell eseguibile, la working directory iniziale, argomenti da passare all eseguibile, ecc... Comandi obbligatori universe=vanilla universe rappresenta un ambiente di esecuzione. Impostare questo comando a vanilla. executable=<path_name> Percorso dell eseguibile Questo comando invia il job alla coda perciò dev essere l ultimo comando nel submit file Comandi utili input = <path_name> Questo file deve contenere tutti gli input da tastiera che il programma richiede (questo file è praticamente stdin ). Il carattere di fine linea equivale a premere INVIO sulla tastiera. output=<path_name> Questo file contiene l output che il programa scrive sulla macchina remota (questo file è praticamente stdout ). error=<path_name> Questo file contiene i messaggi di errore che il programma normalmente stamperebbe a schermo (questo file è praticamente stderr ). log=<path_name> Questo file contiene informazioni relative a ciò che succede mentre il job è in esecuzione. Se questo file è specificato nel submit file, HTCondor aggiungerà una log entry per svariati eventi, per esempio quando il job viene eseguito, viene spostato su un altra macchina, il job viene completato arguments=<argumentslist> Lista di argomenti da fornire all eseguibile come parte della linea di comando. In HTCondor ci sono due possibili formati per specificare gli argomenti, conosciuti come vecchia sintassi e nuova sintassi. Per dettagli ed esempi clicca qui. Digitando il seguente comando: >condor_q<job_id> long autoformat argsarguments Se è stata usata la vecchia sintassi verra mostrato a schermo l attributo args, se è stata usata la nuova sintassi verrà mostrato a schermo l attributo arguments priority=<+ value> Assegna una priorità al job. Maggiore il valore, più alta la priorità

Aggiungere requisiti alle macchine che eseguiranno il job request_cpus=<num_cpus> Numero di CPU richiesta per il job. Se non specificato, il numero di CPU per il job è 1. request_disk=<kilobytes> Quantità di spazio sul disco in KB richiesta per il job. Se non specificato, al job verrà assegnata una quantità di default di spazio sul disco. request_memory=<megabytes> Quantità di memoria in MB richiesta per il job. Se non specificato, al job verrà assegnata una quantità di default di memoria. requirements=<classadexpression> Esegui il job sulle macchine che soddisfano l espressione ClassAd rank=<classadexpression> Il comando rank assegna un ordine alle macchine in base all espressione ClassAd ed esegue il job sulla macchina che si posiziona più in alto nell ordine. Il comando rank e i comandi di requisiti descritti sopra possono coesistere nello stesso file: mentre i comandi di requisiti escludono una macchina che non soddisfano i criteri dell utente dall eseguire il job, il comando rank eseguirà il job sulla macchina migliore, sempre secondo i criteri dell utente, disponibile nel momento corrente. A proposito di requirements e rank Sia requirements che rank devono essere validi espressioni ClassAd. In una espressione ClassAd i nomi degli attributi sono case insensitive mentre i valori sono case sensitive. Perciò le seguenti espressioni ClassAd sono valide: Requirements=OpSys== LINUX &&Arch== INTEL requirements=opsys== LINUX &&arch== INTEL mentre la seguente no: requirements=opsys== linux &&arch== intel

Altri job di esempio 1. Sottomissione multipla Il submit file di seguito esegue 5 istanze del programma sleep ; per ogni esecuzione l id del processo relativo alla singola esecuzione è passato come argomento: universe executable arguments log 5 =vanilla =/bin/sleep =$(Process) =sleep.log Nota: Il job id in HTCondor è definito come Cluster.Process. Se vengono sottomessi più job dallo stesso submit file, ogni job avrà lo stesso Cluster ID 2. Altro sulla sottomissione multipla Il submit file di seguito esegue 3 istanze del programma echo e per ogni esecuzione viene stampato su stdout una stringa diversa universe executable output error log =vanilla =/bin/echo =job_$(cluster).$(process).out =job_$(cluster).$(process).err =job_$(cluster).log arguments arguments arguments ="String1" ="String2" ="String3" Per la x esecuzione: stdout verrà inviato a job_idcluster.x.out stderr verrà inviato a job_idcluster.x.err

3. Lavorare con i file Poichè il pool utilizza un file system condiviso non è necessario specificare nel submit file il trasferimento file da e verso la macchina remota che esegue il job. È sufficiente assicurarsi che i path dei file (assoluti o relativi) che il programma necessita siano validi. Supponiamo di voler eseguire un semplice bash script che stampa a schermo il contenuto di un file di testo: #!/bin/sh whilereadline;do echo"$line" done<file.txt universe =vanilla executable =script.sh log =script.log output =script.out 4. Sottomissione multipla e file Il submit file di seguito esegue 2 istanze di un programma chiamato myprogram che per funzionare necessita di input da stdin, un file di testo e di un argomento; una volta che la sua esecuzione è completa produce un file di output chiamato out.txt Utilizzando il comando initialdir è possible specificare una differente directory di partenza per ogni job evitando in questo esempio la sovrascrittura del file di output out.txt universe =vanilla executable =myprogram log =myprogram.log input =myprogram.in output =myprogram.out error =myprogram.err initialdir =run_1 arguments =a initialdir =run_2 arguments =w Per la x esecuzione: stdout(stderr) verrà inviato a run_x/myprogram.out(run_x/myprogram.err) stdin sarà letto da run_x/myprogram.in