fpmas 1.6
Public Member Functions | List of all members
fpmas::synchro::hard::ghost_link::HardSyncMode< T > Class Template Reference

#include <hard_sync_mode.h>

Inheritance diagram for fpmas::synchro::hard::ghost_link::HardSyncMode< T >:
Inheritance graph
[legend]
Collaboration diagram for fpmas::synchro::hard::ghost_link::HardSyncMode< T >:
Collaboration graph
[legend]

Public Member Functions

 HardSyncMode (fpmas::api::graph::DistributedGraph< T > &graph, fpmas::api::communication::MpiCommunicator &comm)
 
HardSyncLinker< T > & getSyncLinker () override
 
- Public Member Functions inherited from fpmas::synchro::hard::HardSyncModeBase< T >
 HardSyncModeBase (fpmas::api::graph::DistributedGraph< T > &graph, fpmas::api::communication::MpiCommunicator &comm, ServerPackBase &server_pack)
 
HardSyncMutex< T > * buildMutex (fpmas::api::graph::DistributedNode< T > *node) override
 
HardDataSync< T > & getDataSync () override
 
virtual Mutex< T > * buildMutex (api::graph::DistributedNode< T > *node)=0
 
virtual SyncLinker< T > & getSyncLinker ()=0
 
virtual DataSync< T > & getDataSync ()=0
 

Additional Inherited Members

- Protected Attributes inherited from fpmas::synchro::hard::HardSyncModeBase< T >
TerminationAlgorithm termination
 
MutexServer< T > mutex_server
 

Detailed Description

template<typename T>
class fpmas::synchro::hard::ghost_link::HardSyncMode< T >

Hard synchronization mode implementation.

ghost_link::HardSyncMode defines the strongest level of graph data synchronization, but relaxes the link operations synchronization.

At each DISTANT node data access, the HardSyncMutex instance performs distant communication with host processes to ensure :

  1. accessed data is always up to date
  2. a strict concurrent access management at the global execution level

Contrary to hard_link::HardSyncMode, DISTANT link() and unlink() operations are performed using collective communications upon synchronization, using the ghost_link::HardSyncLinker component, what is likely to be more efficient.

A TerminationAlgorithm is still used to finalize data synchronization operations.

Constructor & Destructor Documentation

◆ HardSyncMode()

template<typename T >
fpmas::synchro::hard::ghost_link::HardSyncMode< T >::HardSyncMode ( fpmas::api::graph::DistributedGraph< T > &  graph,
fpmas::api::communication::MpiCommunicator comm 
)
inline

HardSyncMode constructor.

Parameters
graphreference to managed graph
commMPI communicator

Member Function Documentation

◆ getSyncLinker()

template<typename T >
HardSyncLinker< T > & fpmas::synchro::hard::ghost_link::HardSyncMode< T >::getSyncLinker ( )
inlineoverridevirtual

Returns a reference to the internal GhostSyncLinker instance.

Returns
reference to the SyncLinker instance

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


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