Le risposte precedenti, sebbene corrette, non sono valide per la maggior parte dei cluster di computer su larga scala.
I cluster di computer non sempre seguono le convenzioni standard per le macchine, di solito per buoni motivi, e non ha senso discutere con gli amministratori di sistema.
La directory corrente si riferisce al file system centrale, a cui si accede attraverso la rete. Questo non è solo lento, ma mette anche carichi sul sistema per il resto degli utenti, quindi non dovresti usarlo a meno che tu non stia scrivendo molto e tu possa recuperare da esso se il lavoro va in crash.
I nodi di calcolo hanno il proprio disco rigido, ovvero il file system più veloce disponibile e quello che dovresti usare. La documentazione del cluster dovrebbe dirti di cosa si tratta, in genere /scratch
, /tmp/[jobid]
o qualche variabile ambientale non standard ( $SNIC_TMP
in uno di quelli che uso).
Quindi, ciò che consiglio è renderlo configurabile dall'utente. I valori predefiniti possono essere i primi a cui si accede in scrittura:
Ma aspettati un basso tasso di successo con questo approccio e assicurati di emettere un grosso avvertimento.
Modifica: aggiungerò un altro motivo per imporre che sia impostato dall'utente. Uno dei miei cluster ha $TMPDIR
impostato su /scratch
, che è scrivibile dall'utente e sul disco rigido locale. Ma la documentazione dice che tutto ciò che scrivi al di fuori di /scratch/[jobid]
può essere cancellato in qualsiasi momento, anche nel mezzo della corsa. Quindi, se segui gli standard e confida in $TMPDIR
, incontrerai arresti anomali casuali, molto difficili da eseguire il debug. Pertanto, puoi accettare $TMPDIR
, ma non fidarti di esso.
Alcuni altri cluster hanno questa variabile correttamente configurata, quindi puoi aggiungere un'opzione per fidarti esplicitamente di $TMPDIR
, altrimenti, emettere un grosso avvertimento.