View Single Post
Old 09-11-2012, 22:22   #3
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Quote:
Originariamente inviato da cdimauro Guarda i messaggi

Comunque su due piedi, potresti provare a leggere l'output subito dopo che hai lanciato il comando salloc?

Per adesso commenta tutte le altre righe, e vedi se riesci a intercettare l'output di salloc. Fatto questo, poi aggiungerai le rimanenti righe.
L'avevo già provato questo stratagemma ma non trovo l'output di salloc nel stdout del subprocesso. L'output di salloc, che presumo non venga da salloc in se, ma da un demone avviato da salloc, che è quindi un altro processo (che potrei definire il sub-subprocesso), me lo trovo invece nella console da cui lancio lo script python, è come se bypassasse il stdout del suprocesso.
Insomma, l'output del demone lanciato da salloc me lo becco direttamente nella shell più esterna e ignora la pipe del suprocesso (quello che ho chiamato "slurm").
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Altra cosa, mi sembra che ci sia qualche funziona (o metodo di Popen, purtroppo non ricordo bene adesso) che ti consente di lanciare un comando e di recuperare l'output. Può darsi che sia sufficiente per quello che ti serve.
Si, è il communicate() se non sbaglio. Il comando ha però un "problema": trasferisce una stringa (il comando) e ne riceve l'output, ma poi killa il subprocesso. Infatti se lo uso, ottengo pure la notifica della revoca dell'allocazione (quando il subprocesso muore, il manager slurm considera terminato il job e lo chiude...). E invece a me serve tenere allocato il nodo del cluster per tempo indeterminato per eseguire un arbitrario numero di srun (per questo uso slurm.stdin.write(), che è un modo di comunicare un po' più "grezzo" ).

Una bella gatta da pelare eh?
Purtroppo è inerente la mia tesi di laurea per cui devo riuscirci in qualche modo! grazie per la risposta
__________________
CPU Ryzen 5900X @ 4,7Ghz + Thermalright Phantom Spirit 120 SE / MB Asus X470-F Gaming / RAM 2x16GB DDR4 Corsair 3600 CL16 / VGA Sapphire RX 7900 XT Nitro+ / SSD Crucial T500 1TB + Samsung 970 Pro 512GB + Sandisk 960GB Ultra II / PSU FSP Hydro G PRO 1000W / Headset Kingston HyperX Flight

Ultima modifica di demos88 : 09-11-2012 alle 22:25.
demos88 è offline   Rispondi citando il messaggio o parte di esso