Synchronization

Located in file: MEL.hpp

void MEL::Barrier(const Comm &comm)

Collective operation that forces all processes to wait until they are all at the barrier.

See
MPI_Barrier
Parameters
  • comm -

    The comm world to synchronize

void MEL::Wait(Request &rq)

Blocking operation to wait until a request object has completed.

See
MPI_Wait
Parameters
  • rq -

    The request object to wait for

bool MEL::Test(Request &rq)

Non-Blocking operation to test if a request object has completed.

See
MPI_Test
Parameters
  • rq -

    The request object to test

void MEL::Waitall(Request *ptr, int num)

Blocking operation to wait until all request objects in an array have completed.

See
MPI_Waitall
Parameters
  • ptr -

    Pointer to the array of request objects

  • num -

    The length of the array

void MEL::Waitall(std::vector<Request> &rqs)

Blocking operation to wait until all request objects in an array have completed.

Parameters
  • rqs -

    A std::vector of request objects to wait for

bool MEL::Testall(Request *ptr, int num)

Non-Blocking operation to test if all request objects in an array have completed.

See
MPI_Testall
Parameters
  • ptr -

    Pointer to the array of request objects

  • num -

    The length of the array

bool MEL::Testall(std::vector<Request> &rqs)

Non-Blocking operation to test if all request objects in an array have completed.

Parameters
  • rqs -

    A std::vector of request objects to wait for

int MEL::Waitany(Request *ptr, int num)

Blocking operation to wait until any of the request objects in an array have completed.

See
MPI_Waitany
Return
Returns the index of the completed request
Parameters
  • ptr -

    Pointer to the array of request objects

  • num -

    The length of the array

int MEL::Waitany(std::vector<Request> &rqs)

Blocking operation to wait until any of the request objects in an array have completed.

Return
Returns the index of the completed request
Parameters
  • rqs -

    A std::vector of request objects to wait for

std::pair<bool, int> MEL::Testany(Request *ptr, int num)

Any test.

Non-Blocking operation to test if any of the request objects in an array have completed

See
MPI_Testany
Return
Returns a std::pair of a bool and int representing if any had completed, and if so what index
Parameters
  • ptr -

    Pointer to the array of request objects

  • num -

    The length of the array

std::pair<bool, int> MEL::Testany(std::vector<Request> &rqs)

Non-Blocking operation to test if any of the request objects in an array have completed.

Return
Returns a std::pair of a bool and int representing if any had completed, and if so what index
Parameters
  • rqs -

    A std::vector of request objects to wait for

std::vector<int> MEL::Waitsome(Request *ptr, int num)

Blocking operation to wait until some of the request objects in an array have completed.

See
MPI_Waitsome
Return
Returns a std::vector of indices of the completed requests
Parameters
  • ptr -

    Pointer to the array of request objects

  • num -

    The length of the array

std::vector<int> MEL::Waitsome(std::vector<Request> &rqs)

Blocking operation to wait until some of the request objects in an array have completed.

Return
Returns a std::vector of indices of the completed requests
Parameters
  • rqs -

    A std::vector of request objects to wait for

std::vector<int> MEL::Testsome(Request *ptr, int num)

Non-Blocking operation to test if some of the request objects in an array have completed.

See
MPI_Testsome
Return
Returns a std::vector of indices of the completed requests
Parameters
  • ptr -

    Pointer to the array of request objects

  • num -

    The length of the array

std::vector<int> MEL::Testsome(std::vector<Request> &rqs)

Non-Blocking operation to test if some of the request objects in an array have completed.

Return
Returns a std::vector of indices of the completed requests
Parameters
  • rqs -

    A std::vector of request objects to wait for