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>>>,
}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).
Trait Implementations§
impl Accepts<SpawnProcs> for HostAgentwhere
SpawnProcs: RemoteMessage,
Source§impl Clone for SpawnProcs
impl Clone for SpawnProcs
Source§fn clone(&self) -> SpawnProcs
fn clone(&self) -> SpawnProcs
1.0.0 (const: unstable) · 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§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
spawn: SpawnProcs,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
spawn: SpawnProcs,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn message_status_reporting() -> MessageStatusReporting
fn message_status_reporting() -> MessageStatusReporting
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
impl RemoteHandles<SpawnProcs> for HostAgentwhere
SpawnProcs: RemoteMessage,
Auto Trait Implementations§
impl !RefUnwindSafe for SpawnProcs
impl !UnwindSafe for SpawnProcs
impl Freeze for SpawnProcs
impl Send for SpawnProcs
impl Sync for SpawnProcs
impl Unpin for SpawnProcs
impl UnsafeUnpin for SpawnProcs
Blanket Implementations§
impl<M> Accepts<M> for Mwhere
M: RemoteMessage,
§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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].