Skip to main content

CommError

Enum CommError 

Source
pub enum CommError {
    CollectiveFailed {
        operation: &'static str,
        mpi_error_code: i32,
        message: String,
    },
    InvalidBufferSize {
        operation: &'static str,
        expected: usize,
        actual: usize,
    },
    InvalidRoot {
        root: usize,
        size: usize,
    },
    InvalidCommunicator,
    AllocationFailed {
        requested_bytes: usize,
        message: String,
    },
}
Expand description

Errors that can occur during collective communication or shared memory operations.

This type is returned by all fallible methods on Communicator and SharedMemoryProvider.

Variants§

§

CollectiveFailed

An MPI collective operation failed at the library level.

Contains the MPI error code and a human-readable description.

Fields

§operation: &'static str

Name of the collective operation that failed (e.g., "allgatherv").

§mpi_error_code: i32

MPI error code returned by the MPI library.

§message: String

Human-readable description of the failure.

§

InvalidBufferSize

The buffer sizes provided to a collective operation are inconsistent.

For example, recv.len() < sum(counts) in allgatherv, or send.len() != recv.len() in allreduce.

Fields

§operation: &'static str

Name of the collective operation (e.g., "allreduce").

§expected: usize

Expected buffer length.

§actual: usize

Actual buffer length supplied by the caller.

§

InvalidRoot

The root rank argument is out of range (root >= size()).

Fields

§root: usize

The out-of-range root rank value provided by the caller.

§size: usize

Total number of ranks in the communicator.

§

InvalidCommunicator

The communicator has been finalized or is in an invalid state.

This typically occurs if MPI_Finalize has been called before all collective operations have completed.

§

AllocationFailed

A shared memory allocation request was rejected by the OS.

This can occur if the requested size exceeds system shared memory limits (/proc/sys/kernel/shmmax on Linux), if the process lacks permissions for shared memory operations, or if the system is out of shared memory resources.

Fields

§requested_bytes: usize

Number of bytes that were requested.

§message: String

Human-readable description of why the allocation failed.

Trait Implementations§

Source§

impl Debug for CommError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for CommError

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for CommError

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.