fpmas 1.6
Public Types | Public Member Functions | List of all members
fpmas::synchro::ghost::GhostDataSync< T > Class Template Reference

#include <ghost_mode.h>

Inheritance diagram for fpmas::synchro::ghost::GhostDataSync< T >:
Inheritance graph
[legend]
Collaboration diagram for fpmas::synchro::ghost::GhostDataSync< T >:
Collaboration graph
[legend]

Public Types

typedef api::communication::TypedMpi< NodeUpdatePack< T > > DataMpi
 
typedef api::communication::TypedMpi< DistributedIdIdMpi
 

Public Member Functions

 GhostDataSync (DataMpi &data_mpi, IdMpi &id_mpi, api::graph::DistributedGraph< T > &graph)
 
void synchronize () override
 
void synchronize (std::unordered_set< api::graph::DistributedNode< T > * > nodes) override
 
virtual void synchronize ()=0
 
virtual void synchronize (std::unordered_set< api::graph::DistributedNode< T > * > nodes)=0
 

Detailed Description

template<typename T>
class fpmas::synchro::ghost::GhostDataSync< T >

GhostMode DataSync implementation.

Data of each DISTANT node is fetched from host processes at each graph synchronization operation.

Member Typedef Documentation

◆ DataMpi

template<typename T >
typedef api::communication::TypedMpi<NodeUpdatePack<T> > fpmas::synchro::ghost::GhostDataSync< T >::DataMpi

TypedMpi used to transmit NodeUpdatePacks with MPI.

◆ IdMpi

TypedMpi used to transmit DistributedIds with MPI.

Constructor & Destructor Documentation

◆ GhostDataSync()

template<typename T >
fpmas::synchro::ghost::GhostDataSync< T >::GhostDataSync ( DataMpi data_mpi,
IdMpi id_mpi,
api::graph::DistributedGraph< T > &  graph 
)
inline

GhostDataSync constructor.

Parameters
data_mpiDataMpi instance
id_mpiIdMpi instance
graphreference to the associated DistributedGraph

Member Function Documentation

◆ synchronize() [1/2]

template<typename T >
void fpmas::synchro::ghost::GhostDataSync< T >::synchronize
overridevirtual

Fetches updated data for all the DISTANT nodes of the DistributedGraph from the corresponding host processes.

Implements fpmas::api::synchro::DataSync< T >.

◆ synchronize() [2/2]

template<typename T >
void fpmas::synchro::ghost::GhostDataSync< T >::synchronize ( std::unordered_set< api::graph::DistributedNode< T > * >  nodes)
overridevirtual

Performs a partial synchronization of the specified node set.

The actual behavior is highly dependent on the currently implemented SyncMode.

The specified nodes list might contain LOCAL and DISTANT nodes: it is the responsibility of the implemented SyncMode to eventually not do anything with LOCAL nodes.

Parameters
nodesnodes to synchronize

Implements fpmas::api::synchro::DataSync< T >.


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