lightcone.engine.site_registry¶
Site detection and deterministic per-site execution defaults. The active container, scratch, and asynchronous SLURM paths all consume this registry.
Source: src/lightcone/engine/site_registry.py.
Public data and helpers¶
The module exposes:
SITE_DEFAULTS— a dict mapping site keys ("perlmutter","local") to a structured defaults dict (display name, hostname patterns, suggested QoS / constraint / time-limit options, scratch paths, container runtime, andasync_slurmpolicies).detect_site(hostname_or_name) → str | Noneget_site_defaults(site_key) → dict | Nonelist_known_sites() → list[tuple[str, str]]get_site_scratch_deny_rules(site_key) → list[str]
The functions still work on their own; they just don't have a caller inside lightcone-cli right now.
Async SLURM policy¶
Perlmutter declares CPU and GPU node shapes, fractional shared limits, and
the 48-hour shared/regular caps under async_slurm. The submission
engine selects the CPU profile when no GPU is declared and the GPU profile
otherwise. Adding another site is a table extension rather than a new branch
in the renderer.