Import Geant4 11.0.0 source tree
This commit is contained in:
committed by
Ben Morgan
parent
6399a014b6
commit
80e2389dd8
@@ -30,13 +30,24 @@
|
||||
#include "G4RootMpiNtupleFileManager.hh"
|
||||
#include "G4RootMpiNtupleManager.hh"
|
||||
#include "G4RootMpiPNtupleManager.hh"
|
||||
#include "G4AnalysisUtilities.hh"
|
||||
|
||||
#include <tools/impi>
|
||||
|
||||
using namespace G4Analysis;
|
||||
|
||||
//_____________________________________________________________________________
|
||||
G4RootMpiAnalysisManager::G4RootMpiAnalysisManager(G4bool isMaster)
|
||||
: G4RootAnalysisManager(isMaster)
|
||||
G4RootMpiAnalysisManager* G4RootMpiAnalysisManager::Instance()
|
||||
{
|
||||
return fgInstance;
|
||||
}
|
||||
|
||||
//_____________________________________________________________________________
|
||||
G4RootMpiAnalysisManager::G4RootMpiAnalysisManager(G4bool /*isMaster*/)
|
||||
: G4RootAnalysisManager()
|
||||
{
|
||||
fgInstance = this;
|
||||
|
||||
// Reset the ntuple file manager
|
||||
fNtupleFileManager.reset();
|
||||
|
||||
@@ -48,7 +59,9 @@ G4RootMpiAnalysisManager::G4RootMpiAnalysisManager(G4bool isMaster)
|
||||
|
||||
//_____________________________________________________________________________
|
||||
G4RootMpiAnalysisManager::~G4RootMpiAnalysisManager()
|
||||
{}
|
||||
{
|
||||
fgInstance = 0;
|
||||
}
|
||||
|
||||
//
|
||||
// public methods
|
||||
@@ -118,11 +131,7 @@ G4bool G4RootMpiAnalysisManager::WriteImpl()
|
||||
finalResult = finalResult && result;
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL2() ) {
|
||||
fState.GetVerboseL2()->Message("write", "slave files", "", finalResult);
|
||||
}
|
||||
#endif
|
||||
Message(kVL2, "write", "slave files", "", finalResult);
|
||||
|
||||
return finalResult;
|
||||
}
|
||||
@@ -144,11 +153,7 @@ G4bool G4RootMpiAnalysisManager::CloseFileImpl(G4bool reset)
|
||||
finalResult = finalResult && result;
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL2() ) {
|
||||
fState.GetVerboseL2()->Message("close", "slave files", "", finalResult);
|
||||
}
|
||||
#endif
|
||||
Message(kVL2, "close", "slave files", "", finalResult);
|
||||
|
||||
return finalResult;
|
||||
|
||||
|
||||
@@ -29,9 +29,11 @@
|
||||
#include "G4RootMpiNtupleFileManager.hh"
|
||||
#include "G4RootMpiNtupleManager.hh"
|
||||
#include "G4RootMpiPNtupleManager.hh"
|
||||
#include "G4AnalysisUtilities.hh"
|
||||
|
||||
#include <tools/impi>
|
||||
|
||||
using namespace G4Analysis;
|
||||
using std::make_shared;
|
||||
|
||||
//_____________________________________________________________________________
|
||||
@@ -56,11 +58,7 @@ G4RootMpiNtupleFileManager::~G4RootMpiNtupleFileManager()
|
||||
void G4RootMpiNtupleFileManager::SetMpiNtupleMergingMode(
|
||||
G4int nofNtupleFiles)
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL2() ) {
|
||||
fState.GetVerboseL2()->Message("set", "mpi ntuple merging mode", "");
|
||||
}
|
||||
#endif
|
||||
Message(kVL2, "set", "mpi ntuple merging mode");
|
||||
|
||||
auto canMerge = true;
|
||||
|
||||
@@ -98,11 +96,7 @@ void G4RootMpiNtupleFileManager::SetMpiNtupleMergingMode(
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL1() ) {
|
||||
fState.GetVerboseL1()->Message("set", "ntuple merging mode", mergingMode);
|
||||
}
|
||||
#endif
|
||||
Message(kVL1, "set", "mpi ntuple merging mode", mergingMode);
|
||||
}
|
||||
|
||||
|
||||
@@ -137,11 +131,7 @@ void G4RootMpiNtupleFileManager::SetMpiNtupleMerging(tools::impi* impi,
|
||||
//_____________________________________________________________________________
|
||||
std::shared_ptr<G4VNtupleManager> G4RootMpiNtupleFileManager::CreateNtupleManager()
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
fState.GetVerboseL4()->Message("create", "mpi ntuple managers", "");
|
||||
}
|
||||
#endif
|
||||
Message(kVL4, "create", "mpi ntuple manager");
|
||||
|
||||
std::shared_ptr<G4VNtupleManager> activeNtupleManager = nullptr;
|
||||
switch ( fNtupleMergeMode )
|
||||
@@ -172,23 +162,19 @@ std::shared_ptr<G4VNtupleManager> G4RootMpiNtupleFileManager::CreateNtupleManage
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL3() ) {
|
||||
G4String mergeMode;
|
||||
switch ( fNtupleMergeMode ) {
|
||||
case G4NtupleMergeMode::kNone:
|
||||
mergeMode = "";
|
||||
break;
|
||||
case G4NtupleMergeMode::kMain:
|
||||
mergeMode = "main ";
|
||||
break;
|
||||
case G4NtupleMergeMode::kSlave:
|
||||
mergeMode = "slave ";
|
||||
break;
|
||||
}
|
||||
fState.GetVerboseL3()->Message("create", mergeMode + "mpi ntuple managers", "");
|
||||
G4String mergeMode;
|
||||
switch ( fNtupleMergeMode ) {
|
||||
case G4NtupleMergeMode::kNone:
|
||||
mergeMode = "";
|
||||
break;
|
||||
case G4NtupleMergeMode::kMain:
|
||||
mergeMode = "main ";
|
||||
break;
|
||||
case G4NtupleMergeMode::kSlave:
|
||||
mergeMode = "slave ";
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
Message(kVL3, "create", mergeMode + "mpi ntuple manager");
|
||||
|
||||
fIsInitialized = true;
|
||||
|
||||
@@ -207,15 +193,12 @@ G4bool G4RootMpiNtupleFileManager::ActionAtOpenFile(const G4String& fileName)
|
||||
|
||||
if ( ! fNtupleBooked ) {
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
G4String objectType = "analysis file";
|
||||
if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) {
|
||||
objectType = "main analysis file";
|
||||
}
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
fState.GetVerboseL4()->Message("open", objectType, fileName);
|
||||
}
|
||||
#endif
|
||||
Message(kVL4, "open", objectType, fileName);
|
||||
|
||||
|
||||
if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) {
|
||||
// Creating files is triggered from CreateNtuple
|
||||
@@ -230,11 +213,7 @@ G4bool G4RootMpiNtupleFileManager::ActionAtOpenFile(const G4String& fileName)
|
||||
fBookingManager->GetNtupleBookingVector());
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL1() ) {
|
||||
fState.GetVerboseL1()->Message("open", objectType, fileName, finalResult);
|
||||
}
|
||||
#endif
|
||||
Message(kVL1, "open", objectType, fileName);
|
||||
|
||||
fNtupleBooked = true;
|
||||
}
|
||||
@@ -256,11 +235,7 @@ G4bool G4RootMpiNtupleFileManager::ActionAtWrite()
|
||||
if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) ntupleType = "main ntuples";
|
||||
if ( fNtupleMergeMode == G4NtupleMergeMode::kSlave ) ntupleType = "slave ntuples";
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
fState.GetVerboseL4()->Message("merge", ntupleType, "");
|
||||
}
|
||||
#endif
|
||||
Message(kVL4, "merge", ntupleType);
|
||||
|
||||
if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) {
|
||||
auto result = fNtupleManager->Merge();
|
||||
@@ -272,11 +247,7 @@ G4bool G4RootMpiNtupleFileManager::ActionAtWrite()
|
||||
finalResult = result && finalResult;
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL1() ) {
|
||||
fState.GetVerboseL1()->Message("merge", ntupleType, "");
|
||||
}
|
||||
#endif
|
||||
Message(kVL1, "merge", ntupleType, "", finalResult);
|
||||
|
||||
return finalResult;
|
||||
}
|
||||
@@ -326,7 +297,7 @@ G4bool G4RootMpiNtupleFileManager::Reset()
|
||||
auto finalResult = true;
|
||||
|
||||
if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) {
|
||||
auto result = fNtupleManager->Reset(false);
|
||||
auto result = fNtupleManager->Reset();
|
||||
finalResult = result && finalResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ G4bool G4RootMpiNtupleManager::WaitBuffer()
|
||||
|
||||
unsigned long numberOfEndFill = 0;
|
||||
|
||||
G4bool verbose = ( fState.GetVerboseL2() );
|
||||
G4bool verbose = IsVerbose(kVL2);
|
||||
|
||||
while ( true ) {
|
||||
fImpi->pack_reset();
|
||||
|
||||
@@ -34,9 +34,10 @@
|
||||
#include "tools/wroot/mpi_ntuple_row_wise"
|
||||
#include "tools/wroot/mpi_ntuple_column_wise"
|
||||
|
||||
using namespace G4Analysis;
|
||||
|
||||
const int kTAG_NTUPLE = 1004; // This constant is defined in G4MPImanager
|
||||
// (should be passed from the application)
|
||||
|
||||
namespace {
|
||||
|
||||
//_____________________________________________________________________________
|
||||
@@ -114,17 +115,12 @@ tools::wroot::base_pntuple* G4RootMpiPNtupleManager::GetNtupleInFunction(
|
||||
//_____________________________________________________________________________
|
||||
void G4RootMpiPNtupleManager::CreateNtuple(G4RootMpiPNtupleDescription* ntupleDescription)
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
fState.GetVerboseL4()
|
||||
->Message("create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
#endif
|
||||
Message(kVL4, "create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
|
||||
// Wait for the ntuple data from main
|
||||
|
||||
G4bool verbose = ( fState.GetVerboseL2() );
|
||||
G4bool verbose = IsVerbose(kVL2);
|
||||
|
||||
G4cout << "Go to wait_buffer from " << fDestinationRank << G4endl;
|
||||
fImpi->pack_reset();
|
||||
@@ -229,13 +225,8 @@ void G4RootMpiPNtupleManager::CreateNtuple(G4RootMpiPNtupleDescription* ntupleDe
|
||||
// pntuple object is not deleted automatically
|
||||
fNtupleVector.push_back(ntupleDescription->fNtuple);
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL3() ) {
|
||||
fState.GetVerboseL3()
|
||||
->Message("create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
#endif
|
||||
Message(kVL3, "create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
|
||||
//_____________________________________________________________________________
|
||||
@@ -266,13 +257,8 @@ void G4RootMpiPNtupleManager::CreateNtuplesFromBooking(
|
||||
// Do not create ntuple if it already exists
|
||||
if ( ntupleDescription->fNtuple ) continue;
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
fState.GetVerboseL4()
|
||||
->Message("create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
#endif
|
||||
Message(kVL4, "create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
|
||||
// create ntuple
|
||||
CreateNtuple(ntupleDescription);
|
||||
@@ -281,13 +267,8 @@ void G4RootMpiPNtupleManager::CreateNtuplesFromBooking(
|
||||
// (nothing to be done ?)
|
||||
// FinishTNtuple(ntupleDescription);
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL3() ) {
|
||||
fState.GetVerboseL3()
|
||||
->Message("create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
#endif
|
||||
Message(kVL3, "create from booking", "mpi pntuple",
|
||||
ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -338,13 +319,7 @@ G4bool G4RootMpiPNtupleManager::AddNtupleRow(G4int ntupleId)
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
G4ExceptionDescription description;
|
||||
description << " ntupleId " << ntupleId;
|
||||
fState.GetVerboseL4()->Message("add", "pntuple row", description);
|
||||
}
|
||||
#endif
|
||||
Message(kVL4, "add", "pntuple row", " ntupleId " + to_string(ntupleId));
|
||||
|
||||
auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "AddNtupleRow");
|
||||
if ( ! ntupleDescription ) return false;
|
||||
@@ -362,13 +337,7 @@ G4bool G4RootMpiPNtupleManager::AddNtupleRow(G4int ntupleId)
|
||||
"Analysis_W002", JustWarning, description);
|
||||
}
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL3() ) {
|
||||
G4ExceptionDescription description;
|
||||
description << " ntupleId " << ntupleId;
|
||||
fState.GetVerboseL3()->Message("add", "pntuple row", description);
|
||||
}
|
||||
#endif
|
||||
Message(kVL3, "add", "pntuple row", " ntupleId " + to_string(ntupleId));
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -390,13 +359,8 @@ G4bool G4RootMpiPNtupleManager::Merge()
|
||||
// (this happend when the main rank re-opens a new file for merged data)
|
||||
if ( ! ntupleDescription->fNtuple ) continue;
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL4() ) {
|
||||
fState.GetVerboseL4()
|
||||
->Message("end_fill", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
#endif
|
||||
|
||||
Message(kVL4, "merge", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
|
||||
// G4cout << "call end_fill " << fImpi
|
||||
// << " to rank " << ntupleDescription->fMainNtupleRank
|
||||
// << " pntuple: " << ntupleDescription->fNtuple << G4endl;
|
||||
@@ -415,17 +379,26 @@ G4bool G4RootMpiPNtupleManager::Merge()
|
||||
delete ntupleDescription->fNtuple;
|
||||
ntupleDescription->fNtuple = nullptr;
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if ( fState.GetVerboseL3() ) {
|
||||
fState.GetVerboseL3()
|
||||
->Message("end_fill", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
#endif
|
||||
Message(kVL3, "merge", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name());
|
||||
}
|
||||
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
//_____________________________________________________________________________
|
||||
void G4RootMpiPNtupleManager::Clear()
|
||||
{
|
||||
for ( auto ntupleDescription : fNtupleDescriptionVector ) {
|
||||
delete ntupleDescription->fNtuple;
|
||||
}
|
||||
|
||||
fNtupleDescriptionVector.clear();
|
||||
fNtupleVector.clear();
|
||||
|
||||
Message(kVL2, "clear", "pntuples");
|
||||
}
|
||||
|
||||
|
||||
//_____________________________________________________________________________
|
||||
G4bool G4RootMpiPNtupleManager::Reset(G4bool deleteNtuple)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user