![]() |
ATLAS Offline Software
|
A service managing communications within a cluster using MPI. More...
#include <MPIClusterSvc.h>
Public Member Functions | |
| MPIClusterSvc (const std::string &name, ISvcLocator *svcLoc) | |
| Constructor. | |
| virtual StatusCode | initialize () override final |
| Initialize. | |
| virtual StatusCode | finalize () override final |
| Finalize. | |
| virtual void | handle (const Incident &inc) override |
| IIncidentListener handle. | |
| virtual int | numRanks () const override final |
| Return number of ranks. | |
| virtual int | rank () const override final |
| Return our rank. | |
| virtual void | barrier () override final |
| Insert a barrier No rank will continue until all ranks reach this point. | |
| virtual void | abort () override final |
| Abort the MPI run. | |
| virtual void | sendMessage (int destRank, ClusterMessage message, ClusterComm communicator=ClusterComm::Default) override final |
| Send an MPI message. | |
| virtual ClusterMessage | waitReceiveMessage (ClusterComm communicator=ClusterComm::Default) override final |
| Block until we receive an MPI message. | |
| virtual mpi3::communicator & | data_communicator () override final |
| Return the data communicator. | |
| virtual void | log_addEvent (int eventIdx, std::int64_t run_number, std::int64_t event_number, std::int64_t request_time_ns, std::size_t slot) override final |
| Add (begin) an event in the log. | |
| virtual void | log_completeEvent (std::int64_t run_number, std::int64_t event_number, std::int64_t status) override final |
| Complete an event in the log. | |
Private Attributes | |
| std::unique_ptr< mpi3::environment > | m_env |
| mpi3::communicator | m_world |
| mpi3::communicator | m_datacom |
| int | m_rank = -1 |
| ServiceHandle< ISQLiteDBSvc > | m_mpiLog |
| SQLite::Statement | m_mpiLog_addEvent |
| SQLite::Statement | m_mpiLog_completeEvent |
| SQLite::Statement | m_mpiLog_addFile |
| std::int64_t | m_lastInputFileHash {} |
| std::map< std::size_t, std::int64_t > | m_inputFileSlotMap {} |
A service managing communications within a cluster using MPI.
Definition at line 26 of file MPIClusterSvc.h.
|
inline |
|
finaloverridevirtual |
Abort the MPI run.
Definition at line 119 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
Insert a barrier No rank will continue until all ranks reach this point.
Definition at line 114 of file MPIClusterSvc.cxx.
|
inlinefinaloverridevirtual |
|
finaloverridevirtual |
Finalize.
Definition at line 72 of file MPIClusterSvc.cxx.
|
overridevirtual |
IIncidentListener handle.
Handles BeginInputFile to keep track of which input file an event came from.
Definition at line 82 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
Initialize.
Definition at line 11 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
Add (begin) an event in the log.
Definition at line 202 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
Complete an event in the log.
Definition at line 211 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
Return number of ranks.
Definition at line 106 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
|
finaloverridevirtual |
Send an MPI message.
Definition at line 123 of file MPIClusterSvc.cxx.
|
finaloverridevirtual |
Block until we receive an MPI message.
Definition at line 165 of file MPIClusterSvc.cxx.
|
private |
Definition at line 82 of file MPIClusterSvc.h.
|
private |
Definition at line 79 of file MPIClusterSvc.h.
|
private |
Definition at line 94 of file MPIClusterSvc.h.
|
private |
Definition at line 93 of file MPIClusterSvc.h.
|
private |
Definition at line 86 of file MPIClusterSvc.h.
|
private |
Definition at line 88 of file MPIClusterSvc.h.
|
private |
Definition at line 90 of file MPIClusterSvc.h.
|
private |
Definition at line 89 of file MPIClusterSvc.h.
|
private |
Definition at line 83 of file MPIClusterSvc.h.
|
private |
Definition at line 80 of file MPIClusterSvc.h.