Repository navigation
candide: no node excludes, tile store on each job's own /scratch - #997
Open
cailmdaley wants to merge 7 commits into
Open
cailmdaley wants to merge 7 commits into
cailmdaley wants to merge 7 commits into
Conversation
Removes the exclusions of n09, n23, n34, n35 and n36, and the --tmp floor, which only kept tile_shape off the TmpDisk=0 nodes now the store is on NFS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
The tile store is per-job intermediate data, so bind Slurm's per-job directory on the node's own disk (tile_store_root: /scratch/%u/%j) from the Snakefile, which every job parses in its allocation. This replaces sp's rewrite of the profile and the single user's NFS directory. Slurm logs go to the plain /nXXdata spelling, the one path that kills a job on the node owning the disk, so n17 needs no exclude. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
Both the job's working directory and its log derive from workdir_init, so fixing it there replaces the log-directory flag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
cailmdaley
added a commit
that referenced
this pull request
Nov 4, 2026
…cratch) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM
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.
ShapePipe now runs on every candide node I tested, with no node excludes. The tile store moves off one user's NFS directory onto each job's own
/scratch. Catalogues are bit-identical to the NFS-store run.One image-sim tile ran on each node, pinned there. SKiLLS
1z2z_grid_1tile 233.293 throughsp run, launched from a plain login shell. The reference is the same tile on n24 with the NFS store. The comparison covers all 74 columns offinal_cat, 3120 rows.final_catvs reference/n23data1/n17data, its own disk/n23data1, its own disk/tmpfilled/n23data1/tmpfilled/n23data1/n23data1n17 and n23 ran the working-directory change, and n17 passed the prepare stage again on the final commit, which only scopes that change to candide. The other four ran the store change from just before it, which doesn't affect jobs on nodes that don't own their state dir.
The n17 exclude was hiding a path bug.
/nXXdataworks on every node./automnt/nXXdatadoesn't exist on the node that owns the disk. Snakemake resolves its working directory to the/automntform and hands that to jobs in three places:0:53sbatch -D, which drops the job into/tmp.snakemake/tmp.*wait-for file, which makes the job wait 60 s and exit 0 having done nothingThe Snakefile now spells the working directory in the plain form before any of those paths exist, and the profile's relative
slurm-logdirjoins onto it. This patchesos.getcwdand a private Snakemake attribute, so a Snakemake upgrade could break it. An admin symlink/automnt/nXXdata -> /nXXdataon each disk-owning node would make it unnecessary.The tile store is per-job intermediate data, so it belongs on per-job disk. It holds one tile's vignets and WCS for one
tile_shapejob.tile_store_root: /scratch/%u/%jin themachines:table names Slurm's per-job directory on the node's own disk, which Slurm deletes when the job ends, including after a hard kill. Every job parses the Snakefile on its node, so the Snakefile binds that directory to/local/scratch.tile_local()is unchanged, so finished tiles aren't invalidated, andspno longer rewrites the profile. Anyone can now run on candide without a writable shared store. Nibi is unaffected.The
--tmp=16000floor is cleared on candide: it selects on Slurm'sTmpDisk, which is 0 on n23 even though n23 has/scratch./scratch/n23data1/n17dataLaunching from a shell with a node-local
XDG_CACHE_HOMEnow works. The profile leavessource-cacheout ofshared-fs-usageand the Snakefile drops the variable, as sp_validation already does.Before merging:
/scratchper-job directories are confirmed on n09, n17, n23, n34 and n36. n08, n18, n24 and n25 haven't reported because they're busy. Probes on n03 and n30 were cancelled by root after 2 minutes with no output, cause unknown. A node without/scratchwould fail at the store setup, loudly./scratchI measured is ~890 GB, but I haven't run real data on this store.workflow/README.mdrecords the rule: no candide node exclusions without a reproducible failure of a pinned job.— Claude Opus on behalf of Cail
🤖 Generated with Claude Code
https://claude.ai/code/session_01JK7o9EnraydJLhkzaVpLsM