| 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=().