[Slurm] Run collection natively on CPU nodes and support portable publication
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- infrastructure
Línea de trabajo
Begin by tracing CollectionPlan, the generated collection scripts, the CPU Slurm job entry point, and the host-destination publication path described in the issue. Verify the existing unit, contract, security, formatting, and lint checks, then confirm that collection uses the captured interpreter and runtime bundle, avoids Enroot and client-SQSH, and publishes without overwriting existing destinations on unsupported filesystems.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Task Summary
Make the zero-GPU collection/merge job run through the submitting Data Designer shared Python environment instead of starting the pinned client SQSH with Enroot.
This removes an unnecessary dependency on Enroot, FUSE, and squashfuse on CPU-only nodes. Collection should have one native execution path, without a mode selector or fallback configuration.
The collection must also complete on filesystems that reject renameat2(RENAME_NOREPLACE) while preserving collision-safe, no-overwrite publication.
Technical Details & Implementation Plan
- Capture the submitting process's absolute Python executable in the immutable
CollectionPlan. - Verify inside the CPU allocation that:
- the interpreter exists and is executable;
- its installed
data-designer-slurmversion matches the resolved run plan; - the collection plan digest matches its persisted bytes;
- the content-addressed runtime bundle matches its recorded digest.
- Extract the pinned runtime bundle into allocation-local scratch and run the collection worker with the captured interpreter.
- Remove collection's client-SQSH, Enroot, container-mount, and container-destination dependencies.
- Operate directly on the profile-authorized host destination.
- When atomic no-replace rename is unsupported, reserve the absent destination with an exclusive private directory and atomically replace that reservation with the completed staging directory.
- Preserve existing collision detection and never use an
exists()followed by an unprotected rename. - Migration compatibility is out of scope because
data-designer-slurmis new and has no users.
Acceptance Criteria
- Collection remains a one-node, zero-GPU CPU Slurm job.
- Generated collection scripts contain no Enroot or client-SQSH invocation.
- There is no execution-mode option or fallback selector.
- The exact Python executable and pinned runtime code are immutable inputs.
- Collection reads and publishes through host paths only.
- Existing destinations are never overwritten.
- Publication succeeds when
RENAME_NOREPLACEreturns an unsupported-filesystem error. - Unit, contract, security, formatting, and lint checks pass.
Investigation / Context
Related work:
- #850 — Slurm epic
- #869 — deterministic CPU collection
- #870 — real-cluster acceptance
- #874 — public Slurm service/profile integration
- #938 — allocation-local Enroot scratch
No existing issue, pull request, branch, or discussion implements native collection or a safe unsupported-filesystem publication fallback.
Dependencies
None.
- Lenguaje dominante
- Python
- Estrellas
- 2.4k
- Forks
- 234
- Merge medio
- 20 h 48 min
- PR fusionados (30 d)
- 78
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA-NeMo/DataDesigner
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
NVIDIA-NeMo/DataDesigner#1092 ·
Los mantenedores suelen responder en 1 día
-
bug triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
NVIDIA-NeMo/DataDesigner#1089 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
`ValidationColumnConfig` misaligns rows and discards the whole batch after an upstream row is droppedPosiblemente ocupada @suryapilla la tomó hace 5 días. Abiertotriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NVIDIA-NeMo/DataDesigner#1073 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
docs: required_columns description is incomplete for LLM and multimodal columnsPosiblemente ocupada @rksharma-owg la tomó hace 11 días. Abiertobug triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NVIDIA-NeMo/DataDesigner#1002 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
enforce \from future import annotations` via ruff FA102 rule`Posiblemente ocupada @chethanuk la tomó hace 47 días. Abiertotask
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NVIDIA-NeMo/DataDesigner#760 ·
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA-NeMo/DataDesigner
Issues similares
-
parse names a key after a top-level multi() threshold Bitcoin Core v31.1 refuses as not validAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
btclib-org/btclib-wallet#587 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Judgment-Pack/judgment-pack-spec#275 ·
Los mantenedores suelen responder en 1 día
-
ai-generated
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 1 día
-
documentation good first issue priority: low size: XS
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
yeongseon/azure-functions-doctor-python#651 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Changaco/python-libarchive-c#146 ·