Tpetra parallel linear algebra
Version of the Day
|
Part of the Work-around for not having MPI >= 3. More...
#include <Tpetra_Details_iallreduce.hpp>
Public Member Functions | |
DeferredActionCommRequest () | |
Default constructor (take no action on wait). More... | |
DeferredActionCommRequest (std::function< void() > action) | |
Constructor that takes an action to defer. More... | |
void | wait () |
Wait on this communication request to complete. More... | |
void | cancel () |
Cancel the pending communication request, without taking the specified action. More... | |
Part of the Work-around for not having MPI >= 3.
Substitute for MPI_Iallreduce (which requires MPI 3): defer calling MPI_Allreduce until wait. It's ugly, but it works.
Definition at line 169 of file Tpetra_Details_iallreduce.hpp.
Tpetra::Details::Impl::DeferredActionCommRequest::DeferredActionCommRequest | ( | ) |
Default constructor (take no action on wait).
Definition at line 177 of file Tpetra_Details_iallreduce.cpp.
Tpetra::Details::Impl::DeferredActionCommRequest::DeferredActionCommRequest | ( | std::function< void() > | action | ) |
Constructor that takes an action to defer.
action [in] An action to take on wait().
We only take that action the first time you call wait(). This means that wait() is idempotent.
Definition at line 183 of file Tpetra_Details_iallreduce.cpp.
|
virtual |
Wait on this communication request to complete.
Implements Tpetra::Details::CommRequest.
Definition at line 190 of file Tpetra_Details_iallreduce.cpp.
|
virtual |
Cancel the pending communication request, without taking the specified action.
Subsequent calls to wait() do nothing.
Implements Tpetra::Details::CommRequest.
Definition at line 200 of file Tpetra_Details_iallreduce.cpp.