32 destinationRank(destination),
33 run(const_cast<
G4Run*>(aRun)),
37 #define DMSG( LVL , MSG ) { if ( verbose > LVL ) { G4cout << MSG << G4endl; } }
41 DMSG( 2 ,
"Sending double from "<<val<<
" with size: "<<size);
44 DMSG( 2 ,
"Sent "<<( size > 1 ? val[0] : *val) );
49 DMSG( 2 ,
"Sending int from "<<val<<
" with size: "<<size);
52 DMSG( 2 ,
"Sent "<<( size > 1 ? val[0] : *val) );
57 DMSG( 2 ,
"Receiving double at "<<val<<
" with size "<<size );
59 DMSG( 2 ,
"Received "<<( size > 1 ? val[0] : *val) );
64 DMSG( 2 ,
"Receiving int at "<<val<<
" with size "<<size );
66 DMSG( 2 ,
"Received "<<( size > 1 ? val[0] : *val) );
72 DMSG( 1 ,
"G4MPIRunMerger::Send() : Sending a G4run ("
73 <<
run<<
") with "<<nevts<<
" events,");
75 DMSG( 1 ,
"G4MPIRunMerger::Send() : Done ");
79 DMSG( 1 ,
"G4MPIRunMerger::Receive(...) : Receiving from rank "<<rank);
99 DMSG(0,
"G4MPIRunMerger::Merge called");
100 G4int myrank = MPI::COMM_WORLD.Get_rank();
101 commSize = MPI::COMM_WORLD.Get_size();
116 DMSG(0,
"G4MPIRunMerger::Merge done");
virtual void Merge(const G4Run *)
void SendInt(G4int *val, G4int size=1)
G4int GetNumberOfEvent() const
void SendDouble(G4double *val, G4int size=1)
virtual void Receive(G4int rank)
void ReceiveInt(G4int rank, G4int *val, G4int size=1)
G4MPIRunMerger(const G4Run *aRun, G4int destination=G4MPImanager::kRANK_MASTER, G4int verbosity=0)
virtual void RecordEvent(const G4Event *)
MPI::Intracomm COMM_G4COMMAND_
void ReceiveDouble(G4int rank, G4double *val, G4int size=1)