pub trait SolverCommunicator {
// Required methods
fn rank(&self) -> usize;
fn size(&self) -> usize;
fn all_gather_fixed(
&self,
phase: u64,
local: &[f64],
) -> Result<Vec<Vec<f64>>, SolverError>;
fn abort(&self, reason: &str);
}Expand description
Ordered blocking communicator. All ranks call the same solve in the same order. all_gather_fixed returns one equally-sized buffer PER rank, in rank order. abort MUST wake pending peers (or transport must have a finite timeout).
Required Methods§
fn rank(&self) -> usize
fn size(&self) -> usize
fn all_gather_fixed( &self, phase: u64, local: &[f64], ) -> Result<Vec<Vec<f64>>, SolverError>
fn abort(&self, reason: &str)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".