Before you start#
Names beginning with $ are shell variables that resolve to paths. Follow one fictional project through its run; locations must still be owner-approved.
| Stage | Fictional item | Decision |
|---|---|---|
| Before submission | Reviewed code, measurements and configuration | Identify the commit, environment and unchanged input snapshot |
| During computation | Rebuildable mesh and intermediate files | Use $SCRATCH or job-local $TMPDIR, never the only important copy |
| After computation | Result, useful logs and run metadata | Verify the copy in approved durable project storage before cleanup |
$HOME is small private storage; /cluster/work/fuge is approved shared working storage. Neither a temporary directory nor a Slurm script replaces a run record. A reproducible run records code, environment, inputs, configuration and command so someone can identify what produced its result.
The job is pending while a collaborator edits its input. What must be stable before it starts? Make that decision before reading the explanation.
Why the pending job needs unchanged referenced files
The submitted batch script is captured, but external code/configuration/input files can still change. Use an immutable reviewed run snapshot and retain its identifiers. Copy useful results and metadata back to approved durable storage and verify them. A matching checksum establishes copy equality, not permission, backup or retention. The optional GitHub code-sync guide is extra practice after this lesson; it introduces no completion requirement.
Keeping the only result in temporary storage, or assuming that a commit ID freezes every file in a live working directory.