pub struct ClusterController {
pub host: String,
pub port: u16,
pub path: String,
pub docker: Option<String>,
pub arch: Option<String>,
pub data_path: Option<String>,
pub join: Option<ClusterJoin>,
}Expand description
Controller-side cluster config. Holds the rendezvous bind point and pre-flight build context. The controller is the orchestrator host fdl-cli runs on; it is NOT a NCCL rank itself.
Rejected fields (via deny_unknown_fields): ranks,
local_devices, ssh* (controller is local to fdl-cli),
per-controller env (use cluster-scope env: instead) — and any
mistyped key.
Fields§
§host: StringBind address. Used as the rendezvous endpoint workers dial.
What was cluster.controller.host in the pre-Refactor-2 schema.
port: u16Bind port. What was cluster.controller.port in the pre-Refactor-2
schema. Defaults to DEFAULT_CONTROLLER_PORT when omitted.
path: StringController’s view of the shared project root. Used by the pre-
flight build phase to drive cargo invocations from the
controller’s filesystem perspective; the remote-side path (each
worker’s ClusterWorker::path) is used at runtime via SSH.
On homogeneous-mount rigs the controller’s view equals every
worker’s view; on heterogeneous rigs (different mount points
per host), the controller’s value diverges (e.g. the controller
sees /opt/flodl while a VM worker sees /mnt/flodl).
docker: Option<String>Docker compose service the controller runs the pre-flight build
inside (e.g. cuda, dev). Optional; affects build context
only.
arch: Option<String>libtorch variant subpath under <path>/libtorch/ for the
pre-flight build (e.g. precompiled/cu128,
builds/sm61-sm120). When unset, fdl-cli falls back to the
controller’s project-root .active file.
data_path: Option<String>Shared-storage path visible to the controller. flodl assumes a
shared filesystem reachable at the same logical path on every
node — training data, model checkpoints, and per-rank logs all
live here. When absent, the convention default
DEFAULT_DATA_PATH applies.
join: Option<ClusterJoin>Join-window quorum knobs (dial-in membership). fdl-cli carries the block through the launcher envelope verbatim; flodl owns validation and the capacity-derived defaults.
Implementations§
Source§impl ClusterController
impl ClusterController
Sourcepub fn effective_data_path(&self) -> &str
pub fn effective_data_path(&self) -> &str
Effective shared-data path: data_path if set, else
DEFAULT_DATA_PATH.
Trait Implementations§
Source§impl Clone for ClusterController
impl Clone for ClusterController
Source§fn clone(&self) -> ClusterController
fn clone(&self) -> ClusterController
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more