|
| Reduce (LocalIt local_begin, LocalIt local_end, GlobalIt global_begin, GlobalIt global_end) |
|
virtual void | size (void *&inbuf) const |
| Member function size returns the size in bytes needed to store the data for the reduction operation of this interface. The inbuf parameter should be advanced to provide enough aligned space for the data of the reduction. More...
|
|
virtual void | copyin (void *&inbuf) const |
| Member function copyin copies the data from the reduction interface to the inbuf pointer reference. The pointer should be advanced to point just beyond the space of the data. Be sure to align the pointer before storing the first element of data. More...
|
|
virtual void | copyout (void *&outbuf) const |
| Member function copyin copies the data from outbuf pointer reference to the reduction interface data. The pointer should be advanced to point just beyond the space of the data. Be sure to align the pointer before retrieving the first element of data. More...
|
|
virtual void | op (void *&inbuf, void *&outbuf) const |
| Member function op executes the operation on the data at inbuf pointer reference and outbuf pointer reference and placing the result in outbuf pointer reference. The pointers should be advanced to point just beyond the space of the correspondingdata. Be sure to align the pointer before retrieving the first element of data. More...
|
|
| ReduceInterface () |
|
virtual | ~ReduceInterface () |
|
template<class Op, class LocalIt, class GlobalIt = LocalIt>
struct sierra::MPI::Reduce< Op, LocalIt, GlobalIt >
Template class Reduce
implements the ReduceInterface interface for any operator and type. The operator is a functor and the iterator specifies the access to the data and its type.
The operator Op is a functor that accepts two pointers, one to the destination object of the iterator's value type and one to the source object of the iterator's value type. The It is an iterator for accessing the data. Remember that a pointer is an iterator, so using plain arrays, even of length one as in a pointer to a scalar meets the criteria.
Definition at line 564 of file MPI.hpp.
template<class Op, class LocalIt, class GlobalIt = LocalIt>
Member function size returns the size in bytes needed to store the data for the reduction operation of this interface. The inbuf parameter should be advanced to provide enough aligned space for the data of the reduction.
- Parameters
-
inbuf | a void reference to a pointer to the be advanced by the size needed to store the data for the reduction. |
Implements sierra::MPI::ReduceInterface.
Definition at line 583 of file MPI.hpp.
template<class Op, class LocalIt, class GlobalIt = LocalIt>
Member function copyin copies the data from the reduction interface to the inbuf pointer reference. The pointer should be advanced to point just beyond the space of the data. Be sure to align the pointer before storing the first element of data.
- Parameters
-
inbuf | a void reference to a pointer to start placing data after alignment and should be advance to just beyond the last element of stored data. |
Implements sierra::MPI::ReduceInterface.
Definition at line 589 of file MPI.hpp.
template<class Op, class LocalIt, class GlobalIt = LocalIt>
Member function copyin copies the data from outbuf pointer reference to the reduction interface data. The pointer should be advanced to point just beyond the space of the data. Be sure to align the pointer before retrieving the first element of data.
- Parameters
-
outbuf | a void reference to a pointer to start retrieving data after alignment and should be advance to just beyond the last element of retrieved data. |
Implements sierra::MPI::ReduceInterface.
Definition at line 596 of file MPI.hpp.
template<class Op, class LocalIt, class GlobalIt = LocalIt>
virtual void sierra::MPI::Reduce< Op, LocalIt, GlobalIt >::op |
( |
void *& |
inbuf, |
|
|
void *& |
outbuf |
|
) |
| const |
|
inlinevirtual |
Member function op executes the operation on the data at inbuf pointer reference and outbuf pointer reference and placing the result in outbuf pointer reference. The pointers should be advanced to point just beyond the space of the correspondingdata. Be sure to align the pointer before retrieving the first element of data.
- Parameters
-
inbuf | a void reference to a pointer to start retrieving data after alignment and should be advance to just beyond the last element of stored data. |
outbuf | a void reference to a pointer to start retrieving and storing data after alignment and should be advance to just beyond the last element of retrieved data. |
Implements sierra::MPI::ReduceInterface.
Definition at line 603 of file MPI.hpp.