Temporäre Verzeichnisse ($TMPDIR)
Siehe auch: Dateisysteme, Disk-Quotas
Unter Unix/Linux ist das Standardverzeichnis für temporäre
Dateien /tmp
. Da alle Compute-Knoten (einschließlich der
Front-End-Knoten) diskless konfiguriert sind,
ist /tmp
klein (25 MB).
Über die Umgebungsvariable $TMPDIR
kann man ein anderes
Verzeichnis zur Speicherung temporärer Dateien setzen (die meisten
Programme werten diese Variable aus). Anwenderprogramme
werten $TMPDIR
oder für das Programm spezifische Variable
aus. Die passende Nutzung von TMPDIR-Verzeichnissen ist eine
wichtige Optimierung für Programme, die viel mit temporären Dateien
arbeiten, insbesondere für knoten-lokale Scratch-Dateien.
Auf Hummel werden sowohl für jede interaktive Sitzung als auch in
jedem Batch-Job Verzeichnisse für temporäre Dateien angelegt und nach
Beendigung der Sitzung bzw. des Jobs automatisch wieder gelöscht. Die
Namen der Verzeichnisse werden in dem Modul site/tmpdir
durch folgende Umgebungsvariable definiert:
$TMPDIR
$RRZ_GLOBAL_TMPDIR
$RRZ_LOCAL_TMPDIR
Das Module site/tmpdir
ist in interaktiven Sitzungen
autamatisch geladen. In Batch-Jobs (auch interaktiven) wird es
bei source
/sw/batch/init.[c]sh
geladen.
Die Variable $TMPDIR
ist also immer gesetzt (und sollte
immer gesetzt sein). Über die Variablen $RRZ_GLOBAL_TMPDIR
und $RRZ_LOCAL_TMPDIR
kann man insbesondere in Batch-Jobs
auf Verzeichnisse für globale Scratch-Dateien (in /work
)
und lokale Scratch-Verzeichnisse (in /scratch
)
zugreifen. In interaktiven Sitzungen und interaktiven Batch-Jobs sind
aus Kompatibilitätsgründen ebenfalls alle drei Variable gesetzt. Das
Modul site/tmpdir
definiert die Variablen
folgendermaßen:
Interaktive Sitzung | TMPDIR=/work/tmp/... RRZ_GLOBAL_TMPDIR=$TMPDIR RRZ_LOCAL_TMPDIR=$TMPDIR |
Batch-Job | RRZ_GLOBAL_TMPDIR=/work/scratch/... RRZ_LOCAL_TMPDIR=/scratch/... TMPDIR=$RRZ_LOCAL_TMPDIR |
Interaktiver Batch-Job ohne source /sw/batch/init.[c]sh |
wie Interaktive Sitzung (Variable werden übernommen) |
Interaktiver Batch-Job nach source /sw/batch/init.[c]sh |
TMPDIR=/work/tmp/... (wird übernommen)RRZ_GLOBAL_TMPDIR=$TMPDIR RRZ_LOCAL_TMPDIR=/scratch/... |