OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Private Attributes | List of all members
MasterNode< SolutionState_t, NeighborStrategy_t > Class Template Reference

Implements a node in the network of all pilots, exposing store and collect operations on a specific set of neighbors. More...

#include <MasterNode.h>

Inherits NeighborStrategy_t.

Public Member Functions

 MasterNode (MPI_Comm master_comm, size_t buf_size_upper_bound, size_t dim, int island_id)
 
 ~MasterNode ()
 
void store (char *local_state, size_t buffer_size)
 store my best values More...
 
void collect (std::ostringstream &states)
 collect all best values from all other masters More...
 

Private Attributes

char * serialized_best_values_
 pointer to MPI window holding current best solution state More...
 
size_t buf_size_upper_bound_
 and upper bound on the allocated memory in the MPI window More...
 
size_t numMasters_
 
MPI_Comm master_comm_
 
MPI_Win win_
 
MPI_Win win_rev_
 
size_t myID_
 
std::set< size_t > collectFrom_
 neighbors we collect solution states from More...
 
size_t revision_
 my solution state revision number More...
 
std::vector< size_t > revision_state_
 revision numbers of my neighbors More...
 

Detailed Description

template<class SolutionState_t, class NeighborStrategy_t>
class MasterNode< SolutionState_t, NeighborStrategy_t >

Implements a node in the network of all pilots, exposing store and collect operations on a specific set of neighbors.

Using the neighbor strategy a set of neighbors we collect solution state from (and they collect from us) is defined. Using this set of neighbors the solution states propagate throughout the network. The store and collect operations are implemented using one sided MPI communication methods (simulating shared memory). A revision number is used to prevent receiving previously collected solution states from neighbors.

Definition at line 38 of file MasterNode.h.

Constructor & Destructor Documentation

template<class SolutionState_t , class NeighborStrategy_t >
MasterNode< SolutionState_t, NeighborStrategy_t >::MasterNode ( MPI_Comm  master_comm,
size_t  buf_size_upper_bound,
size_t  dim,
int  island_id 
)
inline
template<class SolutionState_t , class NeighborStrategy_t >
MasterNode< SolutionState_t, NeighborStrategy_t >::~MasterNode ( )
inline

Member Function Documentation

template<class SolutionState_t , class NeighborStrategy_t >
void MasterNode< SolutionState_t, NeighborStrategy_t >::collect ( std::ostringstream &  states)
inline
template<class SolutionState_t , class NeighborStrategy_t >
void MasterNode< SolutionState_t, NeighborStrategy_t >::store ( char *  local_state,
size_t  buffer_size 
)
inline

Member Data Documentation

template<class SolutionState_t , class NeighborStrategy_t >
size_t MasterNode< SolutionState_t, NeighborStrategy_t >::buf_size_upper_bound_
private

and upper bound on the allocated memory in the MPI window

Definition at line 144 of file MasterNode.h.

Referenced by MasterNode< SolutionState_t, NeighborStrategy_t >::collect(), and MasterNode< SolutionState_t, NeighborStrategy_t >::store().

template<class SolutionState_t , class NeighborStrategy_t >
std::set<size_t> MasterNode< SolutionState_t, NeighborStrategy_t >::collectFrom_
private

neighbors we collect solution states from

Definition at line 155 of file MasterNode.h.

Referenced by MasterNode< SolutionState_t, NeighborStrategy_t >::collect(), and MasterNode< SolutionState_t, NeighborStrategy_t >::MasterNode().

template<class SolutionState_t , class NeighborStrategy_t >
MPI_Comm MasterNode< SolutionState_t, NeighborStrategy_t >::master_comm_
private

Definition at line 146 of file MasterNode.h.

template<class SolutionState_t , class NeighborStrategy_t >
size_t MasterNode< SolutionState_t, NeighborStrategy_t >::myID_
private
template<class SolutionState_t , class NeighborStrategy_t >
size_t MasterNode< SolutionState_t, NeighborStrategy_t >::numMasters_
private
template<class SolutionState_t , class NeighborStrategy_t >
size_t MasterNode< SolutionState_t, NeighborStrategy_t >::revision_
private
template<class SolutionState_t , class NeighborStrategy_t >
std::vector<size_t> MasterNode< SolutionState_t, NeighborStrategy_t >::revision_state_
private
template<class SolutionState_t , class NeighborStrategy_t >
char* MasterNode< SolutionState_t, NeighborStrategy_t >::serialized_best_values_
private
template<class SolutionState_t , class NeighborStrategy_t >
MPI_Win MasterNode< SolutionState_t, NeighborStrategy_t >::win_
private
template<class SolutionState_t , class NeighborStrategy_t >
MPI_Win MasterNode< SolutionState_t, NeighborStrategy_t >::win_rev_
private

The documentation for this class was generated from the following file: