Polyaxon v3 is coming →

Multi-cluster GPU orchestration

Design multi-cluster GPU orchestration around workload eligibility, data locality, queue routing, recovery, and clear dispatch ownership.

August 21, 2026by Polyaxon
Multi-cluster GPU orchestration

One cluster has the right dataset but a long queue. Another has free accelerators but a different GPU-memory size. A third offers capacity for short experiments but cannot access the production artifact store.

Multi-cluster GPU orchestration coordinates work across these environments. The goal is not to send every job to whichever cluster looks emptiest. It is to route each workload to an eligible environment, preserve its execution context, and handle failure without losing track of work or creating conflicting attempts.

Route workloads before placing pods

Cluster routing and pod placement are separate decisions. Routing selects an execution environment. Within that environment, admission policy decides when work can consume capacity, and the local scheduler places its pods.

A global inventory is useful, but “24 free GPUs” is not a sufficient routing rule. Those devices may have incompatible memory sizes, belong to restricted resource pools, or be distributed across nodes that cannot satisfy the workload's shape.

Start with the distinctions in GPU orchestration. Adding clusters expands the eligibility and recovery problem; it does not remove local quota, scheduling, or application constraints.

Define hard eligibility before preferences

Maintain a workload contract that identifies which environments can run the job at all. Then rank the eligible choices by preferences such as queue delay, transfer overhead, or cost.

ConstraintWhat to verify before dispatch
Accelerator compatibilityDevice type, memory, supported software stack, and requested resource shape
Runtime supportRequired controllers, resource kinds, scheduler, and device-management components
Data accessDataset availability, storage performance, credentials, and allowed locations
Network requirementsConnectivity between workers and access to required internal services
Execution policyQueue access, quotas, priority rules, and whether interruption is acceptable
Recovery and outputsAccessible checkpoints, artifact destinations, and safe attempt isolation

Treat these checks as explicit policy, not information users must remember when choosing a cluster. Record why a target was eligible and why it was selected so a routing decision can be explained later.

Include data movement in the decision

A shorter queue does not guarantee an earlier result. Compare the complete path: queue wait, image and data preparation, startup, execution, and output transfer. Some phases can overlap, so use measured timelines rather than assuming every duration adds serially.

In a simplified example with sequential phases, the primary cluster has a two-hour queue and a one-hour run. A second cluster has immediate capacity, but copying the inputs takes three hours before its one-hour run. The idle cluster is not the faster option for that attempt.

Caching or replication can change the result for later runs, but those choices add storage cost, invalidation work, and access-control requirements. Identify datasets and images by immutable versions so two clusters do not silently run against different inputs under the same name.

Do not assume that dispatching to another cluster migrates an existing volume, a local checkpoint, or the credentials used in the original environment. Make those dependencies part of the readiness check.

Use Polyaxon queues and agents for explicit routing

Polyaxon's commercial queue functionality supports routing operations to namespaces or clusters, with queue priority, concurrency, and resource or cost restrictions. An agent manages execution in its environment and checks the queues assigned to it. A single control plane can coordinate multiple agents.

For an existing operation, the queue selection can be explicit:

# Operation fragment. Both names must exist in your deployment.
queue: onprem-gpu/training

Here, onprem-gpu is the example agent name and training is its queue. The operation specification documents the agent-name/queue-name form. This routes the operation; it is not a rule that automatically chooses the cheapest or least-busy cluster. It also does not implicitly select a Kueue, KAI, or Volcano queue; external scheduler metadata is separate configuration.

Agents can use different connections and artifact stores, which is useful for separate environments. That flexibility also means portability must be verified: a connection available to one agent may not be available to another.

Use reusable workload definitions with environment-specific configuration for resources, connections, and placement. Keep the scientific or application intent stable while making the execution target visible in the run record.

Give one component ownership of dispatch

Other systems can also coordinate work across clusters. For example, MultiKueue uses a manager cluster and worker clusters to dispatch supported workloads and synchronize their status. This is distinct from simply installing a pod scheduler on each cluster.

That upstream capability does not establish a supported Polyaxon integration for every workload type. Check the scheduler integration assessment and validate the emitted objects, metadata, and lifecycle before combining systems.

If more than one controller participates, define the handoff precisely. Which component chooses the destination? Who creates the executable job, retries it, cancels it, and declares completion? Avoid two independent dispatchers both acting on the same execution intent.

Prefer one dispatch owner for a given workload path, with the destination cluster responsible for local admission and placement. More sophisticated arrangements need explicit compatibility tests, especially around failure and cleanup.

Design for ambiguous failures and duplicate attempts

A lost connection does not prove that a remote job stopped. Starting a replacement immediately can leave two attempts running and writing to the same output location.

Define how the control plane distinguishes an unreachable execution from a terminated one. Establish cancellation confirmation or another fencing mechanism before allowing a replacement to publish authoritative results. Use attempt-specific output paths and an explicit promotion step for validated artifacts.

Checkpoint portability deserves its own test. Restore on the intended alternate environment using the same data version and a compatible runtime. Confirm that the application restores all necessary state and that resubmitting the operation does not repeat unsafe side effects.

This is recovery by restart or resume, not an assumption of live GPU-process migration. The distinction affects the time, cost, and progress lost during a move.

Keep distributed groups within a suitable execution domain

Multi-cluster orchestration does not mean a single synchronous training group should automatically span clusters. The communication path, network policy, controller behavior, and failure model must support that design.

For an initial deployment, route independent jobs or pipeline stages between clusters and keep each tightly coupled training group within a validated execution environment. Use gang scheduling where appropriate inside that environment.

If a workload genuinely needs cross-cluster execution, treat it as a separate architecture decision and benchmark it under realistic network and failure conditions. Do not infer that capability from a shared control plane or a global GPU count.

Start with one portable workload class

Choose a bounded workload such as independent evaluation jobs whose inputs are immutable and whose outputs can be isolated per attempt. Validate it on each eligible cluster before introducing fallback policy.

Test normal completion, unavailable capacity, missing credentials, lost connectivity, cancellation, and recovery from a checkpoint. Record queue delay, staging time, completion time, resource-hours, failed attempts, and cleanup behavior per destination.

Expand only when routing decisions are explainable and failures do not leave orphaned work. Multi-cluster capacity becomes useful when the entire execution path is portable—not merely when another cluster has a free GPU.