Repository navigation
Exposure stores node-local under sp run --in-allocation (#953) - #954
Open
cailmdaley wants to merge 1 commit into
Open
cailmdaley wants to merge 1 commit into
cailmdaley wants to merge 1 commit into
Conversation
The bulk of each exposure store (output/, ~7 GB, ~1,000 files) lives in $SLURM_TMPDIR/exp-store/<run>, linked from <exp_dir>/output by the exposure jobs' unit_pre. Manifests, logs and the tombstone stay on /scratch; clean_exposure removes the node-local tree with the link; sp sweeps dangling links (and their manifests) on resume. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PuzG3FLs6mDQuXqzSwRAnz
This was referenced Oct 10, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #953. Stacked on
feat/sp-in-allocation; review that branch first.What this does
A production batch on Nibi runs ~25 tiles inside one SLURM allocation (
sp run --in-allocation). Along the way it processes ~43 exposures. For each one it writes intermediate files: split CCD images, SExtractor catalogues and PSF models. That comes to ~7 GB and ~1,000 files per exposure, ~300 GB per batch, all on the shared/scratchfilesystem. Once the tiles that use an exposure are done, these files are deleted. Only two small products are kept: a PSF tarball and an exposure-map fragment.This PR writes those intermediate files to the compute node's local disk (
$SLURM_TMPDIR, ~3 TB per node) instead. Tile intermediates already live there.Why
/scratch. A batch's peak/scratchuse drops by ~300 GB and ~40K files, which leaves more room under the per-user quota for running several batches at once.tile_detectfrom 8.7 to 1.0 min (tile_detect: build the catalogue in memory, run SExtractor on node-local disk #947).Nothing downstream needs these files after the batch ends. The persisted products are unchanged.
How
The bookkeeping stays put and only the bulk data moves. Each exposure directory on
/scratchholds:manifests/, the "this step is done" records the workflow reads;logs/;output/, the bulk.output/becomes a symlink to a directory on local disk; everything else stays on/scratch. The workflow's logic is therefore untouched: it sees the same paths and the same manifests.workflow/bin/sp--in-allocation, picks a local directory ($SLURM_TMPDIR/exp-store/<run>) and passes it to the jobs asSP_EXP_STORE.Snakefile(unit_pre)SP_EXP_STORE, nothing changes.clean_exposure.pySP_EXP_STORE.sp(alloc_resume)What to check when reviewing
output/after the exposure is cleaned. The PSF tarball and exposure maps are packed before cleaning, as before.Not yet done
tests/workflow/params_pin.jsonneeds regenerating (--update-params-pin). A campaign already in flight will rerun its unfinished exposures once.Tested by hand in a scratch directory: the symlink is created, and cleaning removes both the link and the local data.
Claude (Opus, nibi surveyor) on behalf of Cail.
🤖 Generated with Claude Code
https://claude.ai/code/session_01PuzG3FLs6mDQuXqzSwRAnz