pub struct SpawnProcs {
pub rank: Rank,
pub proc_mesh_id: ProcMeshId,
pub num_per_host: usize,
pub client_config_override: Attrs,
pub host_mesh_id: Option<HostMeshId>,
pub default_bootstrap_command: Option<BootstrapCommand>,
pub proc_bind: Option<Vec<ProcBind>>,
pub bootstrap_commands: Option<Vec<Option<BootstrapCommand>>>,
pub status_reply: Option<PortRef<StatusOverlay>>,
}Expand description
Cast to every HostAgent to spawn a mesh’s per-host proc slots in one message.
Identity is positional: each recipient derives its procs’ ids/ranks from its
stamped rank plus proc_mesh_id/num_per_host, since a shared cast payload
can’t carry a per-host id (unlike CreateOrUpdate).
Fields§
§rank: RankThis host’s ordinal within the cast region, stamped by the cast layer.
proc_mesh_id: ProcMeshIdProc mesh id used to deterministically derive per-host proc ids.
num_per_host: usizeNumber of procs to spawn on this host.
client_config_override: AttrsConfig values to set on each spawned proc’s global config, at the
ClientOverride layer.
host_mesh_id: Option<HostMeshId>The HostMesh that owns these procs (used by DrainHost for selective
drain).
default_bootstrap_command: Option<BootstrapCommand>Bootstrap command to use when no per-rank override applies.
proc_bind: Option<Vec<ProcBind>>Optional per-proc CPU/NUMA binding, indexed by per-host slot. HostMesh::spawn
already rejects a length that doesn’t match the per-host extent, so the
handler is deliberately tolerant of a missing slot (including an index
past the vec’s length): it spawns with no binding rather than panicking.
bootstrap_commands: Option<Vec<Option<BootstrapCommand>>>Optional per-rank bootstrap overrides, indexed by absolute proc rank
(num_per_host * host_rank + per_host_rank).
status_reply: Option<PortRef<StatusOverlay>>Spawn ack: the host posts one multi-rank overlay covering all of its
procs; the caller reduces these per-host overlays into a StatusMesh
barrier.
Trait Implementations§
Source§impl Clone for SpawnProcs
impl Clone for SpawnProcs
Source§fn clone(&self) -> SpawnProcs
fn clone(&self) -> SpawnProcs
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SpawnProcs
impl Debug for SpawnProcs
Source§impl<'de> Deserialize<'de> for SpawnProcs
impl<'de> Deserialize<'de> for SpawnProcs
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Handler<SpawnProcs> for HostAgent
impl Handler<SpawnProcs> for HostAgent
Source§impl Named for SpawnProcs
impl Named for SpawnProcs
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl Serialize for SpawnProcs
impl Serialize for SpawnProcs
impl Accepts<SpawnProcs> for HostAgentwhere
SpawnProcs: RemoteMessage,
impl RemoteHandles<SpawnProcs> for HostAgentwhere
SpawnProcs: RemoteMessage,
Auto Trait Implementations§
impl !Freeze for SpawnProcs
impl !RefUnwindSafe for SpawnProcs
impl Send for SpawnProcs
impl Sync for SpawnProcs
impl Unpin for SpawnProcs
impl UnsafeUnpin for SpawnProcs
impl !UnwindSafe for SpawnProcs
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].