Binarie Options Qsub Presentare


Sun Grid Engine sistema di accodamento (SGE) QuickStart The Sun Grid Engine è utile quando si ha un sacco di compiti da eseguire e si desidera distribuire i compiti su un cluster di macchine. Ad esempio, potrebbe essere necessario eseguire centinaia di simulationsexperiments con parametri variabili o bisogno di convertire 300 video da un formato ad un altro. Utilizzando un sistema di accodamento in queste situazioni presenta i seguenti vantaggi: Pianificazione - consente di pianificare una quantità praticamente illimitata di lavoro da eseguire quando le risorse diventano disponibili. Questo significa che si può semplicemente inviare il maggior numero di compiti (o posti di lavoro) come ti piace e sia eseguita dal sistema di accodamento tutti loro esecuzione. Bilanciamento del carico - distribuisce automaticamente le attività all'interno del cluster in modo tale che qualsiasi doesn8217t un nodo ottenere sovraccarico rispetto al resto. MonitoringAccounting - possibilità di monitorare tutti i lavori inviati e domanda che i nodi del cluster they8217re in esecuzione su, se they8217re finito, ha rilevato un errore, ecc permette anche l'interrogazione di storia di lavoro per vedere quali attività sono state eseguite ad una determinata data, da un determinato utente, etc. Naturalmente, solo perché un sistema di accodamento viene installato doesn8217t significa che devi usarlo affatto. È possibile eseguire le attività all'interno del cluster in qualsiasi modo si vede in forma e il sistema di accodamento non dovrebbero interferire. Tuttavia, è molto probabile che finire che necessitano di implementare le caratteristiche di cui sopra in qualche modo, al fine di utilizzare in modo ottimale il cluster. Invio Lavoro Un lavoro in SGE rappresenta un compito da eseguire su un nodo del cluster e contiene la riga di comando utilizzata per avviare l'attività. Un lavoro può avere i requisiti delle risorse specifiche, ma in generale dovrebbe essere agnostico alla quale nodo del cluster che gira su più a lungo i suoi requisiti delle risorse siano soddisfatte. Tutti i processi richiedono almeno uno slot disponibile su un nodo del cluster per l'esecuzione. La presentazione di posti di lavoro viene fatto usando il comando QSUB. Let8217s provare a inviare un lavoro semplice che esegue il comando hostname su un dato nodo del cluster: l'opzione - v per QSUB afferma che il lavoro dovrebbe avere le stesse variabili d'ambiente come il guscio di esecuzione QSUB (consigliato) L'opzione - b QSUB afferma che la comando in esecuzione potrebbe essere un singolo binario eseguibile o uno script bash. In questo caso il comando hostname è un singolo binario. Questa opzione ha un argomento Y o N che indica sia sì il comando è un binario o no non è un binario. L'opzione per - cwd QSUB dice Sun Grid Engine che il lavoro deve essere eseguito nella stessa directory in cui è stato chiamato QSUB. L'ultimo argomento di QSUB è il comando da eseguire (nome host in questo caso) Si noti che il comando QSUB, quando ha successo, viene stampato il numero di lavoro sullo standard output. È possibile utilizzare il numero di lavoro per monitorare lo stato di avanzamento job8217s e all'interno della coda come we8217ll vedere nella prossima sezione. Monitoraggio dei processi nella coda Ora che il nostro lavoro è stata presentata, let8217s dare un'occhiata allo stato job8217s nella coda con il comando qstat: Da questa uscita, possiamo vedere che il lavoro si trova nello stato QW che sta per in coda e in attesa . Dopo alcuni secondi, il lavoro sarà transizione verso r. o in esecuzione. stato a quel punto il lavoro inizierà l'esecuzione: una volta che il lavoro è finito, il lavoro verrà rimosso dalla coda e non apparirà più nella produzione di qstat: Ora che il lavoro è finito let8217s passare alla sezione successiva per vedere nostro modo di vedere un'uscita job8217s. Visualizzazione di una uscita Job8217s Sun Grid Engine crea file stdout e stderr nelle job8217s directory di lavoro per ogni lavoro eseguito. Se i file aggiuntivi vengono creati durante l'esecuzione di job8217s, essi dovranno anche essere collocati nelle job8217s directory di lavoro se non esplicitamente salvato altrove. I file stdout e stderr job8217s prendono il nome dal lavoro con l'estensione che termina con il numero job8217s. Per il semplice lavoro inoltrato sopra abbiamo: Si noti che Sun Grid Engine chiamato automaticamente il nome host di lavoro e ha creato due file di output: hostname. e1 e hostname. o1. L'e sta per stderr e l'o per stdout. Il 1 alla fine del prolungamento files8217 è il numero di posti di lavoro. Quindi, se il lavoro era stato nominato mynewjob ed era lavoro 23 presentati, i file di output sarà simile: il monitoraggio dell'utilizzo Cluster Dopo un po 'si può essere curiosi di vedere il carico di Sun Grid Engine. Per fare questo, si usa il comando Qhost: L'output mostra l'architettura (ARCH), numero di CPU (NCPU), il carico di corrente (LOAD), memoria totale (MEMTOT), e la memoria attualmente utilizzata (MemUse) e lo spazio di swap ( SWAPTO) per ogni nodo. È inoltre possibile visualizzare il carico medio (loadavg) per nodo utilizzando l'opzione 8216-f8217 a QStat: Creazione di uno script di lavoro nel 8216Submitting una sezione Job8217 abbiamo presentato un unico comando hostname. Questo è utile per lavori semplici, ma per lavori più complessi in cui abbiamo bisogno di incorporare una logica possiamo usare un cosiddetto script di lavoro. Uno script di lavoro è essenzialmente uno script bash che contiene una logica ed esegue qualsiasi numero di programsscripts esterni: Come si può vedere, questo script esegue semplicemente alcuni comandi (come l'eco, la data, gatto, etc.) ed esce. La stampa alla schermata sarà messo nel file stdout job8217s da Sun Grid Engine. Dal momento che questo è solo uno script bash, si può inserire qualsiasi forma di logica necessaria nello script del lavoro (vale a dire se le dichiarazioni, mentre i loop, per cicli, ecc) e si può chiamare qualsiasi numero di programmi esterni necessari per completare il lavoro. Let8217s vedere come si esegue questo nuovo script di lavoro. Salvare lo script di cui sopra per homesgeadminjobscript. sh sul Starcluster ed eseguire il seguente come utente sgeadmin: Ora che il lavoro è stato presentato, chiamata let8217s QStat periodicamente fino a quando il lavoro è finito dal momento che questo lavoro dovrebbe richiedere solo un secondo per eseguire una volta eseguito it8217s : Ora che il lavoro è finito, let8217s dare un'occhiata i file di output: vediamo da guardando l'uscita che il file stdout contiene l'output dell'eco, la data, e le dichiarazioni del gatto nello script del lavoro e che il file stderr è significato vuoto non ci sono stati errori durante l'esecuzione job8217s. Aveva qualcosa di fallito, come ad esempio un comando non trovato errore, ad esempio, questi errori si sarebbero apparsi nel file stderr. Eliminazione di un lavoro dalla coda Che cosa succede se un lavoro è bloccato nella coda, sta impiegando troppo tempo per l'esecuzione, o era semplicemente iniziato con parametri non corretti È possibile eliminare un lavoro dalla coda utilizzando il comando qdel a Sun Grid Engine. Di seguito lanciamo un semplice 8216sleep8217 lavoro che dorme per 10 secondi in modo che possiamo ucciderlo usando qdel: Dopo aver eseguito qdel you8217ll notare il lavoro è andato dalla coda: OpenMPI e Sun Grid Engine OpenMPI deve essere compilato con il supporto SGE (8211with-SGE ) di utilizzare la stretta integrazione tra OpenMPI e SGE come documentato in questa sezione. Questo è il caso in tutti StarCluster8217s pubblico AMI. OpenMPI supporta stretta integrazione con Sun Grid Engine. Questa integrazione permette Sun Grid Engine per gestire l'assegnazione di host di paralleli posti di lavoro e per tenere conto adeguatamente per i lavori paralleli. OpenMPI Parallel Environment Starcluster di default imposta un ambiente parallelo, chiamato 8220orte8221, che è stato configurato per l'integrazione OpenMPI all'interno SGE e ha un numero di slot pari al numero totale di processori nel cluster. È possibile ispezionare l'ambiente parallelo SGE eseguendo: Questa è la configurazione predefinita per un due nodi, gruppo c1.xlarge (16 core virtuali). Rotonde Modalità Robin vs riempire notare l'impostazione allocationrule nell'output del comando qconf nella sezione precedente. Questo definisce come assegnare gli slot a un posto di lavoro. Per impostazione predefinita Starcluster configura allocazione roundrobin. Ciò significa che se un lavoro richiede 8 slot per esempio, si andrà alla prima macchina, prendere un singolo slot, se disponibile, passare alla prossima macchina e prendere un singolo slot, se disponibile, e così via avvolgere intorno al gruppo di nuovo se necessario di destinare 8 slot al lavoro. È inoltre possibile configurare l'ambiente parallelo per cercare di localizzare gli slot il più possibile utilizzando la regola di allocazione fillup. Con questa regola, se un utente richiede 8 slot e una singola macchina dispone di 8 slot disponibili, che il lavoro verrà eseguito interamente su una sola macchina. Se 5 slot sono disponibili su un host e 3 su un altro, ci vorrà tutto 5 su tale host, e tutti e 3 sull'altro host. In altre parole, questa regola avidamente prendere tutti gli slot su un dato nodo fino a quando viene soddisfatta l'esigenza di slot per il lavoro. È possibile passare da una modalità RoundRobin e fillup utilizzando il seguente comando: Questo aprirà VI (o qualsiasi editor definito nella variabile EDITOR ENV) e consentono di modificare le impostazioni di ambiente parallelo. Per passare dalla roundrobin al fillup nell'esempio precedente, modificare la riga allocationrule da: Invio OpenMPI lavori utilizzando un ambiente parallelo Il flusso di lavoro generale per l'esecuzione di codice MPI è: Compilare il codice utilizzando mpicc, mpicxx, mpif77, mpif90, ecc Copiare il risultante eseguibile per lo stesso percorso su tutti i nodi o per una posizione NFS condiviso sul nodo master e 'importante che il percorso del file eseguibile è identica su tutti i nodi per mpirun per lanciare correttamente il codice parallelo. L'approccio più semplice è quello di copiare il file eseguibile da qualche parte sotto casa sul nodo principale da casa è NFS condiviso tra tutti i nodi del cluster. Eseguire il codice su un numero X di macchine utilizzando: dove l'HostFile simile a: Tuttavia, quando si utilizza un ambiente parallelo SGE con OpenMPI voi non è più necessario specificare il - np, - hostfile, - host, ecc opzioni per mpirun. Questo perché SGE assegnerà automaticamente gli host e processori da utilizzare per OpenMPI per il lavoro. Inoltre non è necessario passare le opzioni 8211byslot e 8211bynode a mpirun dato che questi meccanismi sono ora gestiti dalle modalità fillup e RoundRobin specificati nel ambiente parallelo SGE. Invece di usare la formulazione di cui sopra creare un semplice script di processo che contiene una chiamata mpirun molto semplificato: quindi inviare il processo utilizzando il comando QSUB e l'ambiente parallelo orte configurato automaticamente per voi da Starcluster: Le specie opzione - PE che ambiente parallelo da usare e quanti slot per richiedere. L'esempio precedente richiede 24 slot (o processori) utilizzando il ambiente parallelo orte. L'ambiente parallelo si occupa automaticamente di distribuire il lavoro tra i nodi MPI SGE utilizzando il allocationrule definito nelle impostazioni environment8217s. È anche possibile fare questo senza uno script di processo in questo modo: binari Invio in Grid Engine 6.x Grid Engine 6 supporta la presentazione diretta di file binari via QSUB e qrsh tramite il nuovo yn argomento - b. Il comportamento di default assume - b n. usare - b y per richiamare direttamente un binario eseguibile. workgroupcluster: www qrsh - b y usrbinuptime 07:49 fino 107 giorni, 35 minuti, 0 utenti, medie di carico: 0.12 0.03 0.01 workgroupcluster: Il QSUB di comando (1), non può essere utilizzato per inviare direttamente i file binari come posti di lavoro. Anche se si potrebbe scrivere un piccolo script wrapper binari di presentare loro, ci sono due tecniche conveniente per inviare file binari come posti di lavoro in modo molto semplice senza coinvolgere uno script separato. Digitare il comando QSUB, insieme a eventuali bandiere e opzioni desiderate, quindi premere il ritorno senza specificare uno script di processo. Si vedrà, quindi, una shell secondaria. A questo prompt, è possibile digitare il nome del binario. È quindi possibile premere il ritorno e continuare a inserire altri comandi binari o shell. Quando si è fatto specificando il vostro lavoro, premere Control-D. QSUB - l archsolaris64 sonno 60 ltctrl-Dgt vostro lavoro 47427 (quotSTDINquot) è stata presentata Digitare il comando QSUB, insieme a eventuali bandiere e opzioni desiderate, quindi utilizzare il STDIN reindirizzare costruzione LTLT ltMARKERgt. Digitare una o più righe contenenti una combinazione di binari e comandi della shell dal prompt secondario come sopra. Poi, su una riga da solo, digitare il ltMARKERgt e premere invio. QSUB - N prova LTLT EOF sonno 60 EOF vostro lavoro 47.428 (quottestquot) è stata presentata Entrambe le tecniche sopra prendere vantaggio dal fatto che QSUB utilizza il flusso STDIN come uno script di processo se non specificare un file di script come argomento. Per l'integrazione senza soluzione di continuità determinate applicazioni nel proprio ambiente con un cluster Grid Engine, potrebbe essere necessario scrivere uno script wrapper personalizzato che fa un certo lavoro di installazione prima di eseguire un lavoro. La seconda tecnica di cui sopra può essere incorporato in tali script wrapper. Esempio: creare wrapper per la presentazione di una processo batch binario da un SunRay in una fattoria di back-end. Per fare questo, è necessario modificare la variabile LDPRELOAD rimuovere la voce SunRay-specifica. Un binario generico presentare script wrapper quotqbsubquot si possono trovare a questo link. Può essere usato come un versionquot quotbinary di QSUB. Lo script wrapper consente al mittente di utilizzare le bandiere di presentazione normali, e spiega anche le bandiere specificate nel file qtask (che viene utilizzato da qtcsh quando in modo trasparente la presentazione binari al sistema). Un esempio di utilizzo di questo script è: Questo viene eseguito il file binario di Netscape, pur mantenendo esplicitamente la variabile d'ambiente DISPLAY. NOTA: è ovviamente necessario assicurarsi che il binario corrisponde l'architettura su cui verrà eseguito alla fine. È possibile specificare questo, ad esempio, facendo: per creare un lavoro è di presentare uno script eseguibile a un server batch. Il server lotto sarà il server di default a meno che non è specificata l'opzione - q. Il comando analizza uno script prima dell'esecuzione script vero che non esegue uno script stesso. Tutte le regole di scrittura di sceneggiature rimangono valide, tra cui il a capo del file (vedi la discussione di PBSDEFAULT sotto Variabili d'ambiente). In genere, lo script è uno script di shell che verrà eseguito da una shell di comando come sh o csh. Opzioni sul comando QSUB permettono la specifica di attributi che influiscono sul comportamento del lavoro. Il comando QSUB passerà alcune variabili d'ambiente nell'attributo variablelist del lavoro. Queste variabili saranno disponibili per il lavoro. Il valore delle seguenti variabili saranno presi dall'ambiente del comando QSUB: HOME, LANG, LOGNAME, PATH, MAIL, SHELL, e TZ. Questi valori saranno assegnati ad un nuovo nome che è il nome attuale prefisso con la stringa PBSO. Ad esempio, il lavoro avrà accesso a una variabile d'ambiente chiamata PBSOHOME che hanno il valore della casa variabili nell'ambiente di comando QSUB. In aggiunta a quanto sopra, le seguenti variabili d'ambiente saranno disponibili per il lavoro batch: Il nome dell'host su cui il comando QSUB è in esecuzione. Il nome host del pbsserver che QSUB sostiene il lavoro. Il nome della coda originale alla quale è stata presentata il lavoro. Il percorso assoluto della corrente directory di lavoro del comando QSUB. Ogni membro di una matrice lavoro viene assegnato un identificativo univoco (vedi opzione - t). Impostare PBSBATCH per indicare il lavoro è un processo batch, o per PBSINTERACTIVE per indicare il lavoro è un lavoro interattivo PBS (vedere l'opzione - I). Il nome del file che contiene l'elenco delle GPU assegnati. Per ulteriori informazioni su come impostare COPPIA con GPU, consultare la documentazione acceleratori Gestione Moab carico di lavoro. L'identificativo del lavoro assegnato al lavoro da parte del sistema batch. Può essere utilizzato nei percorsi stdout e stderr. COPPIA sostituisce PBSJOBID con il lavoro JobID (ad esempio, PBS - o tmpPBSJOBID. output). Il nome del lavoro fornito dall'utente. Il nome del file contiene l'elenco dei nodi assegnati al lavoro (per i sistemi paralleli e cluster). Dichiara il tempo dopo il quale il lavoro è idoneo per l'esecuzione. L'argomento datetime è in forma: dove CC è le prime due cifre dell'anno (secolo), YY è il secondo due cifre dell'anno, MM è le due cifre per il mese, DD è il giorno del mese, hh è l'ora, mm è il minuto, e la SS opzionale i secondi. Se il mese (MM) non è specificato, il valore predefinito per il mese corrente se il giorno specificato (DD) è nel futuro. Altrimenti, il mese verrà impostato al mese successivo. Allo stesso modo, se il giorno (DD) non è specificato, il valore predefinito diventa oggi se il tempo (hhmm) è nel futuro. In caso contrario, la giornata sarà impostato a domani. Ad esempio, se si invia un lavoro alle 11:15 con il tempo di - a 1110. il lavoro sarà idoneo per l'esecuzione alle 11:10 di domani. Definisce la stringa conto associato al lavoro. Il accountstring è una stringa di caratteri indefinita ed è interpretato dal server che esegue il lavoro. Vedere la sezione 2.7.1 del ERS PBS. Definisce il numero massimo di secondi QSUB bloccherà il tentativo di contattare pbsserver. Se pbsserver è giù, o per una serie di errori di comunicazione, QSUB continuamente riprovare la connessione al pbsserver per l'invio dei lavori. Questo valore sostituisce il parametro CLIENTRETRY in torque. cfg. Questa è un'estensione TORQUE non portatile. Portabilità utenti mentalità possibile utilizzare la variabile ambientale PBSCLIENTRETRY. Un valore negativo viene interpretato come infinito. Il valore predefinito è 0. definisce le opzioni che verranno applicate al lavoro. Se il lavoro viene eseguito su un host che non supporta checkpoint, queste opzioni saranno ignorate. opzioni checkpoint validi sono: nessuno Nessun checkpoint deve essere eseguito. abilitato Specificare che checkpoint permesso, deve essere esplicitamente richiamato sia dal qhold o comandi qchkpt. Specificare che l'arresto checkpoint che deve essere fatto su un lavoro allo spegnimento pbsmom. Specificare periodica checkpoint periodica sia attivata. L'intervallo predefinito è di 10 minuti e può essere modificato con l'opzione checkpointinterval nel file MOM di configurazione o specificando un intervallo quando il lavoro viene inviato intervalminutes Checkpoint deve essere eseguito ad un intervallo di minuti, che è il numero intero di minuti di muro il tempo utilizzato dal lavoro. Tale valore deve essere maggiore di zero. depthnumber Specificare un numero (profondità) di immagini checkpoint essere tenuti nella directory checkpoint. dirpath specificare una directory di checkpoint (di default è varspooltorquecheckpoint). Definisce il prefisso che dichiara una direttiva al comando QSUB all'interno del file di script. (Si veda il paragrafo sulle direttive di script sotto Descrizione estesa). Se l'opzione - C è presentato con un argomento directiveprefix che è la stringa nulla, QSUB non esegue la scansione del file di script per le direttive. Definisce il percorso directory di lavoro da utilizzare per il processo. Se l'opzione - d non è specificata, il valore predefinito directory di lavoro è la directory home. Questa opzione imposta la PBSOINITDIR variabile d'ambiente. Definisce la directory principale da utilizzare per il lavoro. Questa opzione imposta la PBSOROOTDIR variabile d'ambiente. Definisce il percorso da utilizzare per il flusso di errore standard della processo batch. L'argomento del percorso è di forma: dove hostname è il nome di un host a cui verrà restituito il file, e il percorso è il nome del percorso su tale host nella sintassi riconosciuta da POSIX. L'argomento verrà interpretato come segue: percorso dove percorso non è un percorso assoluto, quindi il comando QSUB si espanderà il percorso relativo alla directory di lavoro corrente del comando. Il comando fornirà il nome dell'host su cui è in esecuzione per il componente nome host. hostname: percorso dove percorso non è un percorso assoluto, quindi il comando QSUB non espandere il nome del percorso relativo alla directory di lavoro corrente del comando. Alla consegna della errore standard, il nome del percorso sarà ampliato relativo alla directory home dell'utente sul sistema host. percorso dove percorso specifica un nome percorso assoluto, quindi il QSUB fornirà il nome dell'host su cui è in esecuzione per il nome host. hostname: percorso dove percorso specifica un nome percorso assoluto, verrà utilizzato il percorso come indicato. Se l'opzione - e non viene specificata, verrà utilizzato il nome del file di default per lo stream standard error. Il nome di default ha la seguente forma: jobname. esequencenumber dove nomelavoro è il nome del processo (si veda l'opzione nome - n) e sequenceNumber è il numero di lavoro assegnato al momento della presentazione del lavoro. Lavoro è fatto fault tolerant. Processi in esecuzione su più nodi vengono periodicamente interrogati dalla madre superiora. Se uno dei nodi non si presenta, il processo viene annullato dalla madre superiora e un fallimento è segnalato. Se un lavoro è tolleranza di errore, non verrà annullato sulla base di sondaggi fallito (indipendentemente dal numero di nodi non riescono a segnalare). Questo può essere desiderabile se errori di rete transitori stanno causando grandi lavori non portare a termine, dove ignorando un tentativo fallito di polling può essere corretto al successivo tentativo di polling. Se la coppia non è compilato con PBSNOPOSIXVIOLATION (non esiste alcuna opzione di configurazione per questo), è necessario utilizzare - W faulttoleranttrue per contrassegnare il lavoro come tolleranza d'errore. Specifica gli argomenti che saranno passate allo script lavoro quando viene lanciato lo script. La sintassi è accettata: QSUB - F myarg1 myarg2 myarg3myarg3value myscript2.sh sono tenuti virgolette. QSUB fallirà con un messaggio di errore se l'argomento seguente - F non è un valore citato. Il server pbsmom passerà il valore citato come argomenti per lo script di processo quando si lancia lo script. L'opzione - W consente la specificazione di lavoro aggiuntivo attributi. La sintassi generale di - W è in forma: se lo spazio bianco si verifica in qualsiasi punto della stringa di argomento di opzione o il segno di uguale,, avviene all'interno di una stringa AttributeValue, allora la stringa deve essere racchiusa con virgolette singole o doppie virgolette. PBS attualmente supporta i seguenti attributi all'interno l'opzione - W: dependdependencylist Definisce la dipendenza tra questo e altri posti di lavoro. Il dependencylist è in forma: L'argomento è sia un conteggio numerico o un lavoro di id PBS a seconda del tipo. Se l'argomento è un conteggio, deve essere maggiore di 0. Se si tratta di un ID del processo e non pienamente specificato nella forma seqnumber. server. name. esso sarà ampliato in base alle regole del server di default che si applicano agli ID di lavoro sulla maggior parte dei comandi. Se l'argomento è nullo (il colon precedente non deve essere specificato), la dipendenza del tipo corrispondente viene cancellato (non impostato). Per ulteriori informazioni, vedere dependdependencylist dipendenze validi. grouplistglist Definisce il nome del gruppo con il quale il compito è quello di eseguire sul sistema di esecuzione. L'argomento GList è della forma: un solo nome di gruppo può essere dato per host specificato. Solo una delle specifiche gruppo può essere fornito senza la specifica host corrispondente. Quel nome del gruppo sarà utilizzato per l'esecuzione su qualsiasi host che non si chiami nella lista degli argomenti. Se non è impostato, le impostazioni predefinite groupList al gruppo primario dell'utente sotto il quale verrà eseguito il lavoro. interactivetrue Se è specificato l'attributo interattivo, il lavoro è un lavoro interattivo. L'opzione - I è un metodo alternativo di specificare questo attributo. jobradix ltintgt Da utilizzare con lavori paralleli. Dirige la Madre Superiora del lavoro per creare una radice distribuzione di ltintgt dimensioni tra sorelle. Vedere Gestione dei lavori multi-nodo. stageinfilelist stageoutfilelist specifica quali file sono in scena (copiato) in avvio di lavoro prima o messo in scena dopo il completamento del processo di esecuzione. Al termine del lavoro, il tutto messo in scena-in e file vengono rimossi dal sistema di esecuzione in scena-out. Il filelist è in forma: indipendentemente dalla direzione della copia. Il nome localfile è il nome del file sul sistema in cui il lavoro eseguito. Può essere un percorso assoluto o relativo alla home directory dell'utente. Il nome fileremoto è il nome della destinazione sull'host specificato da hostname. Il nome può essere assoluto o relativo alla directory home dell'utente sull'host di destinazione. L'uso di caratteri jolly nel nome del file non è raccomandato. I nomi dei file di mappa per una chiamata di programma di copia remota (RCP) sul sistema di esecuzione nel modo seguente: Per stagein: hostname RCP: fileremoto localfile Per stageout: RCP localfile hostname: RemoteFile esempi di gestione temporanea dei dati: se la coppia non è stato compilato con il supporto wordexp , allora le variabili possono essere utilizzati nei percorsi specificati. Attualmente solo PBSJOBID. CASA. e TMPDIR sono supportati per stagein. Imposta umaskXXX umask usati per creare i file stdout e stderr spool nella directory pbsmom spool. I valori che iniziano con 0 sono trattati come valori ottali, altrimenti il ​​valore viene trattato come un valore umask decimale. Per impostazione predefinita, se si invia un lavoro interattivo con uno script, lo script verrà analizzato per le direttive PBS ma il resto dello script verrà ignorato dalla sua un lavoro interattivo. L'opzione - x consente lo script da eseguire nel lavoro interattivo e quindi il lavoro completato. Per esempio: script. sh ls binbash --- --- copione fine QSUB - I script. sh QSUB: in attesa di lavoro 5.napali per iniziare dbeernapali: ltdisplays il contenuto della directory, a causa della LS commandgt QSUB: lavoro 5.napali completato Consente l'inoltro X11. La variabile di ambiente DISPLAY deve essere impostata. Quando questo lavoro termina l'esecuzione, i lavori in arrayid possono iniziare. Se uno dei prima vengono utilizzati moduli, i posti di lavoro a cui fa riferimento arrayid devono essere state sottoposte con un tipo di dipendenza su. Se si utilizza una delle forme precedenti, i posti di lavoro a cui fa riferimento arrayid devono avere lo stesso proprietario come il lavoro in corso di presentazione. Altrimenti, la dipendenza viene ignorato. Errore durante l'elaborazione dell'esistenza, stato o condizione del lavoro su cui il lavoro appena presentato è un servizio differito, vale a dire il controllo viene eseguito dopo che il lavoro viene messo in coda. Se viene rilevato un errore, il nuovo lavoro sarà cancellato dal server. Mail sarà inviata al mittente lavoro affermando l'errore. QSUB - W dependafterok: 123.big. iron tmpscript QSUB - W dependbefore: 234.hunk1: 235.hunk1 QSUB script. sh - W dependafterokarray: 427 (Questo assume ogni posto di lavoro in serie 427 deve finire con successo per la dipendenza di essere soddisfatto .) QSUB script. sh - W dependafterokarray: 4275 (Questo significa che 5 dei posti di lavoro in serie 427 devono terminare con successo in modo che la dipendenza di essere soddisfatto) il comando QSUB accetta un operando script che è il percorso dello script. del lavoro. Se il percorso è relativo, sarà ampliato rispetto alla directory di lavoro del comando QSUB. Se l'operando script non viene fornita o l'operando è il singolo carattere -, il comando QSUB legge lo script da standard input. Quando lo script viene letto dallo standard input, QSUB copierà il file in un file temporaneo. Questo file temporaneo viene passato all'interfaccia biblioteca pbssubmit di routine. Il file temporaneo viene rimosso dal QSUB dopo ritorna pbssubmit o al ricevimento di un segnale che causerebbe QSUB per terminare. Il comando QSUB legge lo script per il lavoro da standard input se l'operando script è mancante o è il singolo carattere -. Il file di script viene letto dal comando QSUB. QSUB agisce su eventuali direttive presenti nello script. Quando viene creato il lavoro, una copia del file script è fatto e tale copia non può essere modificato. A meno che l'opzione - z è impostata, l'identificatore di lavoro assegnato al lavoro verrà scritto sullo standard output se è stato creato con successo il lavoro. Il comando QSUB scriverà un messaggio di diagnostica per errore standard per ogni occorrenza di errore. I valori di alcune o tutte le variabili nell'ambiente comandi QSUB vengono esportati con il lavoro (vedere il - v e opzioni - v). Il PBSDEFAULT variabile d'ambiente definisce il nome del server predefinito. In genere, corrisponde al nome di sistema dell'host su cui il server è in esecuzione. Se PBSDEFAULT non è impostato, il valore predefinito è definito da un file dall'amministratore stabilita. Il PBSDPREFIX variabile d'ambiente determina la stringa di prefisso che identifica le direttive nello script. Il PBSCLIENTRETRY variabile d'ambiente definisce il numero massimo di secondi QSUB bloccano (vedere l'opzione - b). Nonostante il nome, attualmente QSUB è l'unico client che supporta questa opzione. Il file torque. cfg, con sede a PBSSERVERHOME (varspooltorque di default) controlla il comportamento del comando QSUB. Questo file contiene un elenco di parametri e valori separati da spazi bianchi. QSUBSLEEP prende un operando intero che specifica il tempo di dormire durante l'esecuzione QSUB comando. Usato per impedire agli utenti di sopraffare lo scheduler. SUBMITFILTER specifica il percorso al filtro presentare utilizzato per pre-processo di invio dei lavori. Il percorso predefinito è libexecdirqsubfilter, che ricade usrlocalsbintorquesubmitfilter per la compatibilità all'indietro. Questo parametro torque. cfg sovrascrive questa impostazione predefinita. ServerHost QSUBHOST QSUBSENDUID XAUTHPATH CLIENTRETRY VALIDATEGROUP DEFAULTCKPT ValidatePath RERUNNABLEBYDEFAULT Uno script di lavoro può essere costituito da direttive PBS, commenti e istruzioni eseguibili. Una direttiva PBS fornisce un modo di specificare attributi lavoro in aggiunta alle opzioni della riga di comando. Per esempio: PBS - l walltime10: 30, mem320kb step1 arg1 arg2 Step2 arg3 Arg4 Il comando QSUB analizza le righe del file di script per le direttive. Una linea iniziale dello script che inizia con i caratteri o il carattere. verrà ignorata e la scansione avrà inizio con la riga successiva. La scansione continuerà fino alla prima riga eseguibile, che è una linea che non è vuoto, non una linea direttiva, né una linea la cui prima non bianchi carattere di spazio è. Se direttive si verificano sulle righe successive, saranno ignorati. Una riga del file script verrà elaborato come una direttiva per QSUB se e solo se la stringa di caratteri che iniziano con il primo carattere diverso dallo spazio sulla linea e della stessa lunghezza come prefisso direttiva corrisponde al prefisso direttiva. Il resto della linea direttiva è costituito dalle opzioni per QSUB nella stessa sintassi come appaiono sulla riga di comando. Il carattere di opzione deve essere preceduto con il carattere -. Se l'opzione è presente sia una direttiva e sulla riga di comando, questa opzione e il suo argomento, se del caso, verranno ignorati nella direttiva. La riga di comando ha la precedenza. Se l'opzione è presente in una direttiva e non sulla riga di comando, questa opzione e il suo argomento, se presenti, saranno trattati come se fosse avvenuta sulla linea di comando. La stringa di direttiva del prefisso sarà determinato in ordine di preferenza da: Il valore dell'argomento opzione - c se l'opzione viene specificata nella riga di comando. Il valore della variabile di ambiente PBSDPREFIX se è definito. La stringa di quattro caratteri PBS. Se l'opzione - c si trova in una direttiva nel file di script, verrà ignorato. Quando l'utente invia un lavoro da un sistema diverso da quello su cui il server PBS è in esecuzione, il nome con cui il lavoro deve essere eseguito viene selezionato in base alle regole elencate sotto l'opzione - u. L'utente inoltra il processo deve essere autorizzato ad eseguire il lavoro sotto il nome utente esecuzione. Tale autorizzazione è fornito se: L'host su cui viene eseguito attendibile dal host di esecuzione QSUB (vedi etchosts. equiv). L'utente di esecuzione ha un file. rhosts denominazione dell'utente che inoltra sull'host richiedente. C-Shell. logout File: Il seguente avviso si applica per gli utenti del c-shell, csh. Se il lavoro viene eseguito sotto la csh e un file. logout esiste nella home directory in cui il lavoro viene eseguito, lo stato di uscita del lavoro è quello dello script. logout, non lo script di processo. Questo può avere un impatto di eventuali dipendenze inter-lavoro. Per preservare lo stato di uscita del lavoro, rimuovere il file. logout o inserire la seguente riga come la prima riga nel file. logout: impostare lo stato EXITVAL e la riga seguente come ultima riga eseguibile in. logout: Se l'opzione - I è specificato nella riga di comando o in una direttiva script o se l'attributo lavoro interattivo dichiarato vero tramite l'opzione - W, interactivetrue - W. either on the command line or in a script directive, the job is an interactive job. The script will be processed for directives, but will not be included with the job. When the job begins execution, all input to the job is from the terminal session in which qsub is running. When an interactive job is submitted, the qsub command will not terminate when the job is submitted. qsub will remain running until the job terminates, is aborted, or the user interrupts qsub with an SIGINT (the control-C key). If qsub is interrupted prior to job start, it will query if the user wishes to exit. If the user response yes, qsub exits and the job is aborted. One the interactive job has started execution, input to and output from the job pass through qsub. Keyboard generated interrupts are passed to the job. Lines entered that begin with the tilde ( ) character and contain special sequences are escaped by qsub. The recognized escape sequences are:

Comments