20#include "RConfigure.h" 
   60                    fNEvents(
nevents), fNTries(
ntries), fStart(start), fStop(stop),
 
   62                    fNodes(nodes), fListPerfPlots(0),
 
   63                    fCanvas(0), fProfile_perfstat_event(0), fHist_perfstat_event(0),
 
   64                    fProfile_perfstat_evtmax(0), fNorm_perfstat_evtmax(0),
 
   65                    fProfile_queryresult_event(0), fNorm_queryresult_event(0), fProfile_cpu_eff(0),
 
   66                    fProfLegend(0), fNormLegend(0), fName(0)
 
   69      Error(
"TProofBenchRunCPU", 
"problems validating PROOF session or enabling selector PAR");
 
 
  115      axtitle = 
"Active Workers/Node";
 
  170   title.
Form(
"Profile %s Normalized PerfStat Event - %s", 
namelab.Data(), 
sellab.Data());
 
  200   title.
Form(
"Profile %s Normalized QueryResult Event - %s", 
namelab.Data(), 
sellab.Data());
 
 
  246      Error(
"Run", 
"Proof not set");
 
  251   start = (start == -1) ? 
fStart : start;
 
  252   stop = (stop == -1) ? 
fStop : stop;
 
  253   step = (step == -1) ? 
fStep : step;
 
  276         Info(
"Run", 
"Uploading '%s' ...", par.
Data());
 
  278            Error(
"Run", 
"problems uploading '%s' - cannot continue", par.
Data());
 
  288            Error(
"Run", 
"you should load the class '%s' before running the benchmark", 
fSelName.
Data());
 
  294               Info(
"Run", 
"Uploading '%s' ...", par.
Data());
 
  296                  Error(
"Run", 
"problems uploading '%s' - cannot continue", par.
Data());
 
  299               Info(
"Run", 
"Enabling '%s' ...", par.
Data());
 
  301                  Error(
"Run", 
"problems enabling '%s' - cannot continue", par.
Data());
 
  330      Info(
"Run", 
"Running CPU-bound tests; %d ~ %d active worker(s)/node," 
  331                  " every %d worker(s)/node.", start, stop, step);
 
  333      Info(
"Run", 
"Running CPU-bound tests; %d ~ %d active worker(s)," 
  334                  " every %d worker(s).", start, stop, step);
 
  358         Error(
"Run", 
"could not activate the requested number of" 
  359                      " workers/node on the cluster; skipping the test point" 
  360                      " (%d workers/node)", 
nactive);
 
  367            Info(
"Run", 
"Running CPU-bound tests with %d active worker(s)/node;" 
  370            Info(
"Run", 
"Running CPU-bound tests with %d active worker(s);" 
  440                  Warning(
"Run", 
"cannot cd to subdirectory '%s' to store the results!", 
dirn.Data());
 
  449               Error(
"Run", 
"PROOF output list is empty!");
 
  454         const char *drawopt = t ? 
"LSAME" : 
"L";
 
  504            Warning(
"Run", 
"TQueryResult not found!");
 
  534         Warning(
"Run", 
"cannot cd to subdirectory '%s' to store the results!", 
dirn.Data());
 
 
  554      Error(
"FillPerfStatPerfPlots", 
"no perfstat profile found");
 
  560      Error(
"FillPerfStatPerfPlots", 
"no perfstat histogram found");
 
  572   for (
Long64_t k=0; k<entries; k++) {
 
  577      if (
pe.fEvtNode.Contains(
".")) 
continue;
 
  580         if (
pe.fProcTime != 0.0) {
 
 
  595   Printf(
"+++ TProofBenchRunCPU +++++++++++++++++++++++++++++++++++++++++");
 
  612      Printf(
"Performance Canvas: Name = %s Title = %s",
 
  614   Printf(
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
 
 
  690      Error(
"SetParameters", 
"proof not set; Doing nothing");
 
 
  707      Error(
"DeleteParameters", 
"proof not set; Doing nothing");
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
 
Option_t Option_t TPoint TPoint const char y1
 
const char *const kPROOF_BenchCPUSelPar
 
const char *const kPROOF_BenchSelCPUDef
 
const char *const kPROOF_BenchParDir
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
R__EXTERN TStyle * gStyle
 
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
 
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
 
void Clear(Option_t *option="") override
Remove all primitives from the canvas.
 
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
Write all objects in this collection.
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
 
void Print(Option_t *option="") const override
Default print for collections, calls Print(option, 1).
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
 
Describe directory structure in memory.
 
virtual TDirectory * GetDirectory(const char *namecycle, Bool_t printError=false, const char *funcname="GetDirectory")
Find a directory using apath.
 
virtual const char * GetPath() const
Returns the full path of the directory.
 
virtual Bool_t cd()
Change current directory to "this" directory.
 
virtual Bool_t IsWritable() const
 
virtual TDirectory * mkdir(const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE)
Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
 
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
Set the value of a resource or create a new resource.
 
virtual void SetDirectory(TDirectory *dir)
By default, when a histogram is created, it is added to the list of histogram objects in the current ...
 
virtual void SetMaximum(Double_t maximum=-1111)
 
void Draw(Option_t *option="") override
Draw this histogram with options.
 
virtual void SetMinimum(Double_t minimum=-1111)
 
virtual TH1 * DrawCopy(Option_t *option="", const char *name_postfix="_copy") const
Copy this histogram and Draw in the current pad.
 
2-D histogram with a double per channel (see TH1 documentation)
 
Int_t Fill(Double_t) override
Invalid Fill method.
 
This class displays a legend box (TPaveText) containing several legend entries.
 
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
 
void Draw(Option_t *option="") override
Draw this legend with its current attributes.
 
void Clear(Option_t *option="") override
Remove all objects from the list.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
void Add(TObject *obj) override
 
TObject * Remove(TObject *obj) override
Remove object from the list.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
const char * GetName() const override
Returns name of object.
 
Mother of all ROOT objects.
 
@ kOverwrite
overwrite existing object with same name
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
@ kInvalidObject
if object ctor succeeded but object should not be used
 
EHistType GetType() const
 
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
 
const char * GetTitle() const override
Returns title of object.
 
const char * GetName() const override
Returns name of object.
 
Double_t GetBinContent(Int_t bin) const override
Return bin content of a Profile histogram.
 
Double_t GetBinError(Int_t bin) const override
Return bin error of a Profile histogram.
 
Int_t Fill(const Double_t *v)
 
CPU-intensive PROOF benchmark test generates events and fill 1, 2, or 3-D histograms.
 
TH2 * fHist_perfstat_event
 
TString GetNameStem() const
Get name for this run.
 
void FillPerfStatPerfPlots(TTree *t, Int_t nactive)
 
TDirectory * fDirProofBench
 
Int_t DeleteParameters()
Delete parameters set for this run.
 
const char * GetName() const override
Returns name of object.
 
Int_t SetParameters()
Set parameters.
 
TProfile * fProfile_queryresult_event
 
void BuildHistos(Int_t start, Int_t stop, Int_t step, Bool_t nx)
Build histograms, profiles and graphs needed for this run.
 
TProfile * fNorm_queryresult_event
 
TProfile * fProfile_perfstat_evtmax
 
~TProofBenchRunCPU() override
Destructor.
 
TProfile * fNorm_perfstat_evtmax
 
TProfile * fProfile_cpu_eff
 
void DrawPerfPlots()
Draw Performance plots.
 
void Print(Option_t *option="") const override
Show settings.
 
TProfile * fProfile_perfstat_event
 
void Run(Long64_t nevents, Int_t start, Int_t stop, Int_t step, Int_t ntries, Int_t debug, Int_t draw) override
Run benchmark Input parameters nevents: Number of events to run per file.
 
void SetHistType(TPBHistType *histtype)
Set histogram type.
 
TProofBenchRunCPU(TPBHistType *histtype=0, Int_t nhists=16, TDirectory *dirproofbench=0, TProof *proof=0, TProofNodes *nodes=0, Long64_t nevents=1000000, Int_t ntries=2, Int_t start=1, Int_t stop=-1, Int_t step=1, Int_t draw=0, Int_t debug=0)
Default constructor.
 
Abstract base class for PROOF benchmark runs.
 
virtual const char * GetSelName()
 
PROOF worker node information
 
void Print(Option_t *option="") const override
Description: Print node information.
 
Int_t ActivateWorkers(Int_t nwrks)
Description: Activate 'nwrks' workers; calls TProof::SetParallel and rebuild the internal lists Input...
 
Int_t GetMinWrksPerNode() const
 
Int_t GetNWorkersCluster() const
 
Set of tools to analyse the performance tree.
 
This class controls a Parallel ROOT Facility, PROOF, cluster.
 
void Print(Option_t *option="") const override
Print status of PROOF cluster.
 
Int_t UploadPackage(const char *par, EUploadPackageOpt opt=kUntar, TList *workers=0)
Upload a PROOF archive (PAR file).
 
TQueryResult * GetQueryResult(const char *ref=0)
Return pointer to the full TQueryResult instance owned by the player and referenced by 'ref'.
 
void DeleteParameters(const char *wildcard)
Delete the input list parameters specified by a wildcard (e.g.
 
void SetParameter(const char *par, const char *value)
Set input list parameter.
 
TList * GetOutputList()
Get list with all object created during processing (see Process()).
 
virtual Long64_t Process(TDSet *dset, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process a data set (TDSet) using the specified selector (.C) file or Tselector object Entry- or event...
 
void AddInput(TObject *obj)
Add objects that might be needed during the processing of the selector (see Process()).
 
TList * GetInputList()
Get input list.
 
Int_t EnablePackage(const char *package, Bool_t notOnClient=kFALSE, TList *workers=0)
Enable specified package.
 
A container class for query results.
 
static const TString & GetEtcDir()
Get the sysconfig directory in the installation. Static utility function.
 
const char * Data() const
 
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
 
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
 
A TTree represents a columnar dataset.
 
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
 
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=nullptr)
Change branch address, dealing with clone trees properly.
 
virtual void SetDirectory(TDirectory *dir)
Change the tree's directory.
 
virtual Long64_t GetEntries() const
 
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
Write this object to the current directory.
 
void SetName(const char *name) override
Change the name of this tree.
 
Double_t Sqrt(Double_t x)
Returns the square root of x.