As respostas anteriores, embora corretas, não são válidas para a maioria dos clusters de computadores em grande escala.
Os clusters de computadores nem sempre seguem as convenções padrão das máquinas, geralmente por boas razões, e não faz sentido discutir isso com os administradores de sistemas.
Seu diretório atual está se referindo ao sistema de arquivos central, que é acessado através da rede. Isso não é apenas lento, mas também sobrecarrega o sistema para o resto dos usuários; portanto, você não deve usá-lo, a menos que não esteja escrevendo muito e possa se recuperar se o trabalho falhar.
Os nós de computação têm seu próprio disco rígido, que é o sistema de arquivos mais rápido disponível e o que você deve usar. A documentação do cluster deve informar o que é, normalmente /scratch
, /tmp/[jobid]
ou alguma variável de ambiente não padrão ( $SNIC_TMP
em uma das que eu uso).
Então, o que eu recomendo é torná-lo configurável pelo usuário. Os padrões podem ser os primeiros aos quais você tem acesso de gravação:
Mas espere uma baixa taxa de sucesso com essa abordagem e certifique-se de emitir um grande aviso.
Editar: adicionarei outro motivo para forçá-lo a ser definido pelo usuário. Um dos meus clusters foi $TMPDIR
definido como /scratch
gravável pelo usuário e no disco rígido local. Porém, a documentação diz que tudo o que você escreve fora /scratch/[jobid]
pode ser excluído a qualquer momento, mesmo no meio da execução. Portanto, se você seguir os padrões e confiar $TMPDIR
, encontrará falhas aleatórias, muito difíceis de depurar. Portanto, você pode aceitar $TMPDIR
, mas não confiar nele.
Alguns outros clusters têm essa variável configurada corretamente; portanto, você pode adicionar uma opção para confiar explicitamente $TMPDIR
; caso contrário, emitir um aviso grande e gordo.