Les réponses précédentes, bien que correctes, ne sont pas valables pour la plupart des grappes d'ordinateurs à grande échelle.
Les clusters d’ordinateurs ne suivent pas toujours les conventions standard pour les machines, généralement pour de bonnes raisons, et il n’ya aucun intérêt à en discuter avec les administrateurs système.
Votre répertoire actuel fait référence au système de fichiers central, accessible via le réseau. Ce n'est pas seulement lent, mais cela charge également le système pour le reste des utilisateurs. Vous ne devez donc pas l'utiliser si vous n'écrivez pas beaucoup et vous pourrez le récupérer si le travail se bloque.
Les nœuds informatiques ont leur propre disque dur, le système de fichiers le plus rapide disponible, et ce que vous devriez utiliser. La documentation de cluster doit vous dire ce qu'il est, en général /scratch
, /tmp/[jobid]
ou une variable non enviroment standard ( $SNIC_TMP
dans l' un de ceux que j'utilise).
Donc, ce que je recommande, c'est de le rendre configurable par l'utilisateur. Les valeurs par défaut peuvent être les premières auxquelles vous avez accès en écriture:
Mais attendez-vous à un faible taux de réussite avec cette approche et veillez à émettre un gros avertissement.
Edit: Je vais ajouter une autre raison pour le forcer à être défini par l'utilisateur. L'un de mes clusters est $TMPDIR
défini sur /scratch
, c'est-à-dire qu'il est accessible en écriture pour l'utilisateur et sur le disque dur local. Cependant, la documentation indique que tout ce que vous écrivez en dehors de /scratch/[jobid]
peut être supprimé à tout moment, même au milieu de la course. Donc, si vous suivez les normes et que $TMPDIR
vous faites confiance , vous rencontrerez des plantages aléatoires, très difficiles à déboguer. Donc, vous pouvez accepter $TMPDIR
, mais ne pas y croire.
Dans certains autres clusters, cette variable est correctement configurée. Vous pouvez donc ajouter une option de confiance explicite $TMPDIR
, sinon, émettez un gros avertissement.