11#ifndef ROOT_Minuit2_MPIProcess
12#define ROOT_Minuit2_MPIProcess
33 if (MPI::Is_initialized() && !(MPI::Is_finalized())) {
34 std::cout <<
"Info --> MPITerminate:: End MPI on #"
35 << MPI::COMM_WORLD.Get_rank() <<
" processor"
48 MPIProcess(
unsigned int nelements,
unsigned int indexComm);
74 if (!(MPI::Is_initialized())) {
76 std::cout <<
"Info --> MPIProcess::StartMPI: Start MPI on #"
77 << MPI::COMM_WORLD.Get_rank() <<
" processor"
87 if (fgCommunicators[0]!=0 && fgCommunicators[1]!=0) {
88 delete fgCommunicators[0]; fgCommunicators[0] = 0; fgIndecesComm[0] = 0;
89 delete fgCommunicators[1]; fgCommunicators[1] = 0; fgIndecesComm[1] = 0;
105 fgCommunicator->Allreduce(&sub,&
total,1,MPI::DOUBLE,MPI::SUM);
113 void MPISyncVector(
double *ivector,
int svector,
double *ovector);
133 static MPI::Intracomm *fgCommunicator;
134 static int fgIndexComm;
135 static MPI::Intracomm *fgCommunicators[2];
136 static unsigned int fgIndecesComm[2];
static unsigned int total
Class describing a symmetric matrix of size n.
unsigned int fNumElements4JobIn
bool SyncVector(ROOT::Minuit2::MnAlgebraicVector &mnvector)
static bool SetCartDimension(unsigned int dimX, unsigned int dimY)
MPIProcess(unsigned int nelements, unsigned int indexComm)
static unsigned int fgCartSizeY
unsigned int fNumElements4JobOut
static unsigned int fgGlobalRank
unsigned int GetMPIRank() const
unsigned int NumElements4JobOut() const
unsigned int GetMPISize() const
unsigned int NumElements4Job(unsigned int rank) const
unsigned int StartElementIndex() const
static unsigned int GetMPIGlobalRank()
static void TerminateMPI()
bool SyncSymMatrixOffDiagonal(ROOT::Minuit2::MnAlgebraicSymMatrix &mnmatrix)
void SumReduce(const double &sub, double &total)
static unsigned int fgGlobalSize
static unsigned int GetMPIGlobalSize()
static unsigned int fgCartDimension
unsigned int NumElements4JobIn() const
static unsigned int fgCartSizeX
static bool SetDoFirstMPICall(bool doFirstMPICall=true)
unsigned int EndElementIndex() const
Namespace for new ROOT classes and functions.
void Init(TClassEdit::TInterpreterLookupHelper *helper)