Предыдущие ответы, хотя и правильные, не подходят для большинства крупномасштабных компьютерных кластеров.
Компьютерные кластеры не всегда следуют стандартным соглашениям для машин, обычно по уважительным причинам, и нет смысла обсуждать это с системными администраторами.
Ваш текущий каталог ссылается на центральную файловую систему, доступ к которой осуществляется через сеть. Это не только медленно, но и создает нагрузку на систему для остальных пользователей, поэтому вам не следует использовать ее, если вы не пишете много, и вы можете восстановить ее в случае сбоя задания.
Вычислительные узлы имеют свой собственный жесткий диск, это самая быстрая из доступных файловых систем и то, что вам следует использовать. В документации кластера должно быть указано, что это, как правило /scratch
, /tmp/[jobid]
или какая-то нестандартная переменная окружения ( $SNIC_TMP
в одной из тех, которые я использую).
Итак, я рекомендую сделать его настраиваемым пользователем. Значения по умолчанию могут быть первыми, к которым у вас есть доступ для записи:
Но при таком подходе ожидайте низкий процент успеха и убедитесь, что выдается большое жирное предупреждение.
Изменить: я добавлю еще одну причину, чтобы заставить его быть установленным пользователем. Один из моих кластеров $TMPDIR
настроен для /scratch
записи пользователем и находится на локальном жестком диске. Но в документации сказано, что все, что вы пишете вне, /scratch/[jobid]
может быть удалено в любой момент, даже в середине цикла. Так что, если вы будете следовать стандартам и доверять $TMPDIR
, вы столкнетесь со случайными сбоями, которые очень сложно отладить. Таким образом, вы можете принять $TMPDIR
, но не доверять этому.
В некоторых других кластерах эта переменная настроена правильно, поэтому вы можете добавить опцию для явного доверия $TMPDIR
, в противном случае выдает большое, жирное предупреждение.