Expand description
Cluster readiness probe (fdl probe): GPU + libtorch arch +
shared-data path + NCCL discovery. Pre-training gate; the
foundation for fdl deploy and the transparent launcher dispatch.
fdl probe — check host readiness for training.
Single-host (default): probes the local box for GPU + libtorch +
shared-data path + NCCL. Cluster context (env overlay): each
configured host is probed via SSH and the per-host status is
aggregated into one report. See run.
§Design notes
flodl assumes shared storage is available to every node at the
same logical path (NAS / SMB / virtiofs / S3-FUSE / SSHFS). The
probe is the gate that confirms each host can see it BEFORE
training fans out, instead of discovering it mid-AllReduce when a
checkpoint write hangs on a stale mount. The convention default
(crate::config::DEFAULT_DATA_PATH) applies when a host does
not declare data_path: in fdl.cluster.yml.
Probe is intentionally thin — it reuses
crate::libtorch::detect and crate::util::system for the
existing detection logic and adds shared-mount + NCCL discovery
on top. The format is diagnose-style (text by default, --json
emits machine-readable output for fdl deploy / CI to consume).
Structs§
- Data
Path Status - Shared-data path visibility + filesystem-type detection.
- Libtorch
Status - libtorch directory + arch metadata + per-GPU compatibility verdict.
- Nccl
Status - NCCL discovery result. NCCL is loaded dynamically by libtorch, so
the probe just hunts for
libnccl.so*on the usual library paths — unlessSelf::via_dockeris set, in which case NCCL ships inside the container image and the host scan is skipped. - Probe
Report - Top-level probe verdict for one host.
green()is the aggregate gate.
Functions§
- probe_
local - Probe the local host.
data_path_override(from--data-pathCLI flag) overrides config;skip_mountshort-circuits the shared-data check (useful for single-host setups without a shared FS configured);libtorch_path_override(from--libtorch-path) points at a libtorch install outside the project tree (used by cluster-mode remote probes where libtorch lives on a dedicated share like/mnt/libtorch).via_docker(from--docker <svc>or the cluster.yml host’sdocker:field) tells the probe NCCL ships inside a container image, so host-level NCCL scanning is replaced by an informational “via Docker image<svc>” line. - run
- Run the probe.