Skip to content

Optional CUDA builds for UCX and OpenMPI; add UCX 1.22.0 and OpenMPI 5.0.11 - #191

Merged
kennedydane merged 5 commits into
masterfrom
update/optional-cuda-builds
Sep 23, 2026
Merged

kennedydane merged 5 commits into
masterfrom
update/optional-cuda-builds

Conversation

@kennedydane

@kennedydane kennedydane commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Ports the remaining build work from #168 onto master, and adds the current releases.

  • UCX: --skip-tags ucx_cuda builds without CUDA. UCX has one install dir, so instead of the duplicated build blocks in Dane/update/cromwell and other important stuff #168 (which both installed to the same place), the single configure task drops --with-cuda when the tag is skipped. Entries with no cuda_root (1.9.0) no longer trip on an undefined variable.
  • OpenMPI: --skip-tags openmpi_gpu builds only the plain variant. The 4.1.5+ build is split into a gpu block carrying the tag and a plain block. The gpu module task carries the same tag so no _gpu.lua is left pointing at a missing install. Verified with a throwaway playbook that a skip tag on an inner block inside a tagged include removes exactly those tasks.
  • Add UCX 1.22.0 against CUDA 12.9.1, like 1.19.0.
  • Add OpenMPI 5.0.11 with a checksum computed from the release tarball. CUDA 12.9.1 and PMIx 5.0.9 as for 5.0.8, UCX moved to 1.22.0.
  • OpenMPI follows the cluster's current Singularity. The per-entry singularity_version is gone; the directory derives from the group_vars singularity path. OpenMPI 5's configure does not recognise --with-singularity, so the flag was a silent no-op for 5.x entries and is now passed only to 4.x builds.

Test plan

  • uv run yamllint . and uv run ansible-lint (production profile) pass
  • ansible-playbook site.yaml --syntax-check passes
  • Skip-tag semantics checked on a minimal include/block playbook
  • On prod: ansible-playbook site.yaml -t ucx,ucx1.22.0 then -t openmpi,openmpi5.0.11
  • On a host without CUDA: the same with --skip-tags ucx_cuda,openmpi_gpu

🤖 Generated with Claude Code

https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG

kennedydane and others added 4 commits September 23, 2026 11:19
UCX has a single install dir, so rather than duplicating the build block
(as PR #168 did, where both blocks installed to the same place), the one
configure task drops --with-cuda when ucx_cuda is in ansible_skip_tags.
Entries without a cuda_root, such as 1.9.0, no longer fail on an
undefined variable and simply build without CUDA.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Split the 4.1.5+ build into a gpu block tagged openmpi_gpu and a plain
block, so --skip-tags openmpi_gpu builds only the plain variant. The gpu
module task carries the same tag so no module is left pointing at a
missing install. Verified with a throwaway playbook that a skip tag on
an inner block inside a tagged include drops exactly those tasks.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Built against CUDA 12.9.1 like 1.19.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Checksum computed from the release tarball. Companion versions mirror
the 5.0.8 entry (Singularity 4.2.2, CUDA 12.9.1, PMIx 5.0.9) with UCX
moved to 1.22.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Copilot AI lite review requested due to automatic review settings September 23, 2026 09:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Shared OpenMPI build state can cause later GPU configuration to be skipped after a plain build.

Review effort: Lite
Findings: None

What changed in this PR

Adds optional CUDA build paths for UCX/OpenMPI and registers UCX 1.22.0 and OpenMPI 5.0.11.

Changes:

  • Adds UCX CUDA skip-tag handling.
  • Separates OpenMPI GPU and plain builds.
  • Adds new versions, dependencies, and checksums.
File Description
ansible/​roles/​compiled/​tasks/​common/​ucx.yaml Supports CUDA and non-CUDA UCX builds.
ansible/​roles/​compiled/​tasks/​common/​openmpi.yaml Adds tagged GPU/plain OpenMPI build flows.
ansible/​roles/​compiled/​tasks/​common/​main.yml Registers UCX 1.22.0 and OpenMPI 5.0.11.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

… one

Derive the Singularity directory from the group_vars `singularity` path
instead of a per-entry singularity_version, so every build follows the
cluster default (4.4.1 today). OpenMPI 5's configure no longer
recognises --with-singularity, so the flag was a silent no-op for the
5.x entries; it is now passed only to 4.x builds.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
@kennedydane
kennedydane force-pushed the update/optional-cuda-builds branch from 20b0b81 to 8654939 Compare September 23, 2026 09:29
@kennedydane
kennedydane merged commit e4db785 into master Sep 23, 2026
1 check passed
@kennedydane
kennedydane deleted the update/optional-cuda-builds branch September 23, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants