Domanda

Vorrei inviare lavori tramite qsub su Sun Grid Engine (ora:Oracle Grid Engine?).Non desidero utilizzare l'opzione -sync yes o qrsh, perché voglio che il mio programma di controllo sia a thread singolo e in grado di avviare molti lavori contemporaneamente.Queste opzioni bloccherebbero il thread del mio programma di controllo.

Vorrei però ricevere gli stati di uscita dei processi che lancio.Dalle pagine man, sembra che non ci sia modo di ottenere questo codice senza bloccare il mio thread.A meno di modificare i lavori che sto avviando per stampare i relativi codici di uscita su stdout, esiste un modo per ottenere questo stato?

È stato utile?

Soluzione

La risposta è 'qacct -j'. Un riassunto della storia del lavoro viene stampato sullo standard output, che possono poi essere analizzato per lo stato di uscita, inizio e fine, e una varietà di altre informazioni.

SGE deve essere configurato correttamente per questo comando per lavoro, comunque.

Altri suggerimenti

Se stai inviando i tuoi lavori all'interno della tua domanda, il modo più semplice e veloce (più veloce dell'invio con qsub) (e ottenendo lo stato di uscita in un secondo momento) è utilizzare l'API DRMAA.Questa semplice API è disponibile in C e in Java in Sun Grid Engine da molto tempo.Anche Univa Grid Engine (successore commerciale di Grid Engine) e Sun Grid Engine forniscono la libreria necessaria.Poiché si tratta di uno standard aperto è possibile sottomettersi anche a DRMS ​​completamente diversi come Condor/SLURM ecc.senza cambiare il tuo programma.Sono disponibili collegamenti linguistici per GO, Python o TCL (e altri).

Vedere:http://www.gridengine.eu/mangridengine/htmlman3/drmaa_wait.html

Alcune ulteriori informazioni e Go (#Golang) Drmaa Language Binding con esempi che puoi trovare qui:http://www.gridengine.eu/programming-apis

Saluti

Daniele

www.gridengine.eu

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top