cncf / cncf/mentoring

[CNCF LFX Proposal] Volcano Generic xPU Topology-Aware Scheduling

Open
#1,985 20 comments 0 reactions 0 assignees View on GitHub
2026 CNCF Approved Exported lfx mentorship Maintainer/Contribex Approved Mentors Confirmed Proposal Term 3: Sept-Nov Validation Passed
Dominant language
JavaScript
Stars
3.1k
Forks
816
Avg merge
12h 32m
Merged PRs (30d)
8

Description

### CNCF Project

Volcano

### Term

2026 Term 3 (Sep-Nov)

### Program Name

Generic xPU Topology-Aware Scheduling

### Program Description

Volcano currently schedules xPU resources mainly by their aggregate quantity on each Node, without considering whether the available devices belong to the same physical interconnect domain. For example, a 16-NPU server may contain two independent 8-NPU HCCS domains: eight free devices split across both domains cannot satisfy an 8-device same-domain request. Similar constraints exist for NVLink-connected GPU groups, NVSwitch fabrics, ordinary multi-node clusters with only node-local xPU interconnects, and cross-node fabrics such as GB200 NVL72.

This project will add a generic scheduler-side xPU topology-aware plugin to Volcano. The scheduler will select an appropriate HyperNode or fabric domain, Node, local device domain, and concrete device IDs before binding. It will support required and preferred topology affinity, track device availability and reservations, and coordinate device planning and rollback for gang workloads.

Topology ingestion must be independent of scheduling policy. A generic provider interface will normalize data from Node annotations, topology CRDs, Device Plugin companion components, vendor APIs, or DRA `ResourceSlice`s into one scheduler-facing model. The initial implementation can use mock topology data and KWOK, without requiring physical NVL72 or other accelerator hardware.

**Expected outcomes**

1. Define a vendor-neutral topology model and provider interface for node-local device domains and cross-node fabric domains, including their relationship with HyperNode. The scheduling logic must remain independent of whether topology is reported through Node annotations, CRDs, Device Plugins, vendor APIs, or DRA.
2. Implement an optional topology-aware scheduling plugin that filters and scores placements using actual domain availability, selects concrete device IDs, and supports gang-level planning, reservation, and rollback. Topology state should be integrated into Volcano's existing scheduler cache and updated incrementally.
3. Validate correctness and performance with KWOK-based scenarios covering multi-domain Nodes, multi-node workloads without a cross-node xPU backplane, and an NVL72-style fabric. Deliver benchmark results, tests, documentation, and examples. Integration with a mock or real Device Plugin is desirable but not required for project validation.

### Technologies

Go, Kubernetes, Volcano, Kubernetes scheduling, Device Plugin, Dynamic Resource Allocation

### Skills same as Technologies?

- [ ] Yes, the required skills are the same as the technologies listed above.

### Required/Desirable Skills

Strong Go programming and hands-on Kubernetes experience; familiarity with scheduler; practical experience with GPUs or other xPUs, accelerator resource management; experience with Volcano, Kubernetes Device Plugins, DRA, NVLink, NVSwitch, HCCS, or similar accelerator interconnects is a plus

### Mentors

Zicong Chen(Jesse Stutler) | @JesseStutler | jessestutler97@gmail.com | jessestutler
Yang Wang | @wangyang0616 | wangyang8216@gmail.com | wangyang0616
João Azevedo | @devzizu | jazevedo960@gmail.com | joaoprazevedo
Hajnal Mate | @hajnalmt | hajnalmt@gmail.com | hajnalmt

### Upstream Issue URL

https://github.com/volcano-sh/volcano/issues/5751

### Application Prerequisites

- [x] Resume
- [x] Cover Letter
- [ ] School Enrollment Verification
- [ ] Participation Permission from school or employer
- [ ] Coding Challenge
- [ ] Custom Prerequisite (fill in details below)

### Coding Challenge URL

_No response_

### Custom Prerequisite Name

_No response_

### Custom Prerequisite Description

_No response_

### Custom Prerequisite — File Upload

- [ ] Yes — completion of this task requires the mentee to submit a file.

---
**LFX program:** [CNCF - Volcano: Generic xPU Topology-Aware Scheduling (2026 Term 3)](https://mentorship.lfx.linuxfoundation.org/project/087b7172-482e-4ae8-af7a-a27f56fbe09f)

Contributor guide

Open the contributing guide

Research direction

Start with upstream Volcano issue #5751 and the proposal's scheduler-side topology-aware plugin requirements. Review how the existing scheduler cache and Kubernetes resource mechanisms are organized before defining the vendor-neutral topology model and provider boundary. Done means topology-aware filtering, scoring, device selection, gang planning, reservation, rollback, KWOK validation, benchmarks, tests, documentation, and examples.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.