|
FEAT 3
Finite Element Analysis Toolbox
|
Ticket class for asynchronous global operations on scalars. More...
#include <synch_scal.hpp>
Public Member Functions | |
| SynchScalarTicket () | |
| standard constructor More... | |
| SynchScalarTicket (const SynchScalarTicket &)=delete | |
| Unwanted copy constructor: Do not implement! | |
| SynchScalarTicket (DT_ x, const Dist::Comm &comm, const Dist::Operation &op, bool sqrt=false) | |
| Constructor. More... | |
| SynchScalarTicket (SynchScalarTicket &&other) | |
| move constructor More... | |
| ~SynchScalarTicket () | |
| Destructor. More... | |
| SynchScalarTicket & | operator= (const SynchScalarTicket &)=delete |
| Unwanted copy assignment operator: Do not implement! | |
| SynchScalarTicket & | operator= (SynchScalarTicket &&other) |
| move-assign operator More... | |
| DT_ | wait () |
| wait method More... | |
Protected Attributes | |
| bool | _finished |
| signals, whether wait was already called More... | |
| double | _mpi_exec |
| holds our mpi execution toe More... | |
| double | _mpi_wait |
| holds our mpi reduction wait toe More... | |
| DT_ | _r |
| buffer containing the received data More... | |
| Dist::Request | _req |
| Our request for the corresponding iallreduce mpi call. More... | |
| bool | _sqrt |
| should we compute the sqrt of the result More... | |
| DT_ | _x |
| buffer containing the send data More... | |
Ticket class for asynchronous global operations on scalars.
Internally a cpp thread is used to process the mpi call and ensure proper processing by calling MPI_Wait ahead of the actual tickets wait call.
Definition at line 30 of file synch_scal.hpp.
|
inline |
standard constructor
Definition at line 63 of file synch_scal.hpp.
|
inlineexplicit |
Constructor.
| [in] | x | The value to be synchronized. |
| [in] | comm | The communicator to be used for synchronization. |
| [in] | op | The reduction operation to be applied. |
| [in] | sqrt | Specifies whether to apply the square-root onto the reduction result. |
Definition at line 99 of file synch_scal.hpp.
References FEAT::Global::SynchScalarTicket< DT_ >::_r, FEAT::Global::SynchScalarTicket< DT_ >::_req, FEAT::Global::SynchScalarTicket< DT_ >::_x, FEAT::TimeStamp::elapsed_now(), and FEAT::Dist::Comm::iallreduce().
|
inline |
|
inline |
Destructor.
Definition at line 218 of file synch_scal.hpp.
References FEAT::Global::SynchScalarTicket< DT_ >::_finished, and XASSERT.
|
inline |
move-assign operator
Definition at line 165 of file synch_scal.hpp.
References FEAT::Global::SynchScalarTicket< DT_ >::_finished, FEAT::Global::SynchScalarTicket< DT_ >::_mpi_exec, FEAT::Global::SynchScalarTicket< DT_ >::_mpi_wait, FEAT::Global::SynchScalarTicket< DT_ >::_r, FEAT::Global::SynchScalarTicket< DT_ >::_req, FEAT::Global::SynchScalarTicket< DT_ >::_sqrt, FEAT::Global::SynchScalarTicket< DT_ >::_x, and XASSERTM.
|
inline |
wait method
wait for completion barrier
Definition at line 198 of file synch_scal.hpp.
References FEAT::Global::SynchScalarTicket< DT_ >::_finished, FEAT::Global::SynchScalarTicket< DT_ >::_mpi_exec, FEAT::Global::SynchScalarTicket< DT_ >::_mpi_wait, FEAT::Global::SynchScalarTicket< DT_ >::_r, FEAT::Global::SynchScalarTicket< DT_ >::_req, FEAT::Global::SynchScalarTicket< DT_ >::_sqrt, FEAT::TimeStamp::elapsed_now(), FEAT::Math::sqrt(), FEAT::Dist::Request::wait(), and XASSERTM.
Referenced by FEAT::Global::Gate< LocalVector_, Mirror_ >::max(), FEAT::Global::Gate< LocalVector_, Mirror_ >::min(), FEAT::Global::Gate< LocalVector_, Mirror_ >::norm2(), and FEAT::Global::Gate< LocalVector_, Mirror_ >::sum().
|
protected |
signals, whether wait was already called
Definition at line 59 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::~SynchScalarTicket(), FEAT::Global::SynchScalarTicket< DT_ >::operator=(), and FEAT::Global::SynchScalarTicket< DT_ >::wait().
|
protected |
holds our mpi execution toe
Definition at line 40 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::operator=(), and FEAT::Global::SynchScalarTicket< DT_ >::wait().
|
protected |
holds our mpi reduction wait toe
Definition at line 42 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::operator=(), and FEAT::Global::SynchScalarTicket< DT_ >::wait().
|
protected |
buffer containing the received data
Definition at line 34 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::SynchScalarTicket(), FEAT::Global::SynchScalarTicket< DT_ >::operator=(), and FEAT::Global::SynchScalarTicket< DT_ >::wait().
|
protected |
Our request for the corresponding iallreduce mpi call.
Definition at line 55 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::SynchScalarTicket(), FEAT::Global::SynchScalarTicket< DT_ >::operator=(), and FEAT::Global::SynchScalarTicket< DT_ >::wait().
|
protected |
should we compute the sqrt of the result
Definition at line 38 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::operator=(), and FEAT::Global::SynchScalarTicket< DT_ >::wait().
|
protected |
buffer containing the send data
Definition at line 36 of file synch_scal.hpp.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::SynchScalarTicket(), and FEAT::Global::SynchScalarTicket< DT_ >::operator=().