27 #include "RConfigure.h"
82 Double_t res = par[0] + par[1] * xx[0];
91 Double_t res = par[0] + par[1] * xx[0] + par[2] * xx[0] * xx[0];
100 Double_t res = par[0] / xx[0] + par[1];
109 Double_t res = par[0] / xx[0] + par[1] + par[2] * xx[0];
118 Double_t sat = par[0] / par[1] * (xx[0] * par[1] / par[2] - 1.);
119 if (xx[0] < par[2] / par[1]) sat = 0.;
120 Double_t res = par[0] * xx[0] / (1. + sat);
135 Double_t rio = par[0] / par[3] * xx[0];
136 if (xx[0] > par[3]) rio = par[0];
142 Double_t res = 1. / (1./par[4] + 1./rio + 1./rcpu);
185 : fUnlinkOutfile(
kFALSE), fProofDS(0), fOutFile(0),
186 fNtries(4), fHistType(0), fNHist(16), fReadType(0),
187 fDataSet(
"BenchDataSet"), fNFilesWrk(2), fReleaseCache(
kTRUE),
189 fRunCPU(0), fRunDS(0), fDS(0), fDebug(
kFALSE), fDescription(0)
193 Error(
"TProofBench",
"specifying a PROOF master url is mandatory - cannot continue");
197 Error(
"TProofBench",
"could not open a valid PROOF session - cannot continue");
206 Error(
"TProofBench",
"dynamic mode: you must specify the max number of workers");
214 Error(
"TProofBench",
"dynamic mode: wrong specification of the max number of"
222 Error(
"TProofBench",
"wrong max number of workers ('%d')",
fNumWrkMax);
240 Warning(
"TProofBench",
"problems opening '%s' - ignoring: use SetOutFile to try"
241 " again or with another file", outfile);
268 const char *mode = 0;
275 Warning(
"OpenOutFile",
"problems opening '%s' - ignoring: use SetOutFile to try"
281 if (!strcmp(mode,
"RECREATE")) {
317 Warning(
"SetOutFile",
"problems opening '%s' - ignoring: use SetOutFile to try"
318 " again or with another file", outfile);
413 if (!fout || (fout && fout->
IsZombie())) {
414 ::Error(
"DrawCPU",
"could not open file '%s' ...", outfile);
419 TString description(
"<not available>");
421 if (nmdesc) description = nmdesc->
GetTitle();
431 const char *dirn = (isX) ?
"RunCPUx" :
"RunCPU";
434 ::Error(
"DrawCPU",
"could not find directory '%s' ...", dirn);
442 const char *lx = (isX) ?
"_x" :
"";
443 const char *
ln = (isNorm) ?
"Norm" :
"Prof";
444 hprofn.
Form(
"%s%s_CPU_QR_Evts", ln, lx);
445 hmaxn.
Form(
"%s%s_CPU_PS_MaxEvts", ln, lx);
448 Double_t ami = -1., amx = -1., mmi = -1., mmx = -1.;
456 ::Error(
"DrawCPU",
"could not find '%s' ...", hprofn.
Data());
468 ::Warning(
"DrawCPU",
"could not find '%s': feature added in 5.34/11", hmaxn.
Data());
477 if (mmx > ymx) ymx = mmx;
478 if ((ymi > 0 && mmi < ymi) || (ymi < 0.)) ymi = mmi;
481 TProfile *pf = (doMax) ? pfmx : pfav;
482 Int_t kmx = (doMax) ? kmmx : kamx;
485 TCanvas *cpu =
new TCanvas(
"cpu",
"Rate vs wrks",204,69,1050,502);
486 cpu->
Range(-3.106332,0.7490716,28.1362,1.249867);
505 leg =
new TLegend(0.7, 0.8, 0.9, 0.9);
507 leg =
new TLegend(0.1, 0.8, 0.3, 0.9);
519 if (verbose) grav->
Print();
521 leg->
AddEntry(grav,
"Average",
"P");
531 if (verbose) grmx->
Print();
533 grmx->
Draw(
"lpSAME");
537 leg->
AddEntry(grmx,
"Maximum",
"P");
546 if (
nbins > 5) xmi = 1.5;
565 }
else if (dofit == 2) {
604 printf(
"* ************************************************************ *\n");
606 printf(
"* Cluster: %s\n", description.
Data());
607 printf(
"* Performance measurement from scalability plot: *\n");
609 printf(
"* rate max: %.3f\tmegaRNGPS (@ %d workers)\n", ymx/1000000, kmx);
611 printf(
"* per-worker rate: %.3f\tmegaRNGPS \n", normrate/1000000);
612 printf(
"* ************************************************************ *\n");
614 printf(
"* ************************************************************ *\n");
616 printf(
"* Cluster: %s\n", description.
Data());
618 printf(
"* Per-worker rate from normalized plot: %.3f\tmegaRNGPS\n", normrate/1000000);
619 printf(
"* ************************************************************ *\n");
637 if (!d || !pfn || (pfn && strlen(pfn) <= 0)) {
638 ::Error(
"TProofBench::GetGraph",
"directory or name not defined!");
645 while ((key = (
TKey *) nxk())) {
653 ::Error(
"TProofBench::GetGraph",
"TProfile for '%s' not found in directory '%s'", pfn, d->
GetName());
666 for (
Int_t k = 1;k <= nb; k++) {
676 if (yy < ymi) ymi = yy;
677 if (yy > ymx) { ymx = yy; kmx = k; }
735 class fileDesc :
public TNamed {
739 fileDesc(
const char *
n,
const char *o,
742 const fileDesc *fd =
static_cast<const fileDesc *
>(o);
743 if (!fd || (fd && fd->fMtime == fMtime))
return 0;
744 if (fMtime < fd->fMtime)
return -1;
761 ::Error(
"TProofBench::GetPerfSpecs",
"path '%s' could not be stat'ed - abort", pp.Data());
769 ::Error(
"TProofBench::GetPerfSpecs",
"directory path '%s' could nto be open - abort", pp.Data());
774 if (!strcmp(ent,
".") || !strcmp(ent,
".."))
continue;
775 fn.
Form(
"%s/%s", pp.Data(), ent);
778 fn +=
"?filetype=raw";
783 if (!strncmp(rr,
"root", 4)) {
787 TString desc(
"<no decription>");
789 if (nmdesc) desc = nmdesc->
GetTitle();
791 filels.
Add(
new fileDesc(fn,
"std:", st.
fMtime, desc.
Data()));
793 filels.
Add(
new fileDesc(fn,
"stdx:", st.
fMtime, desc.
Data()));
795 ::Warning(
"TProofBench::GetPerfSpecs",
"problems opening '%s'", fn.
Data());
802 ::Error(
"TProofBench::GetPerfSpecs",
803 "path '%s' not a regular file nor a directory - abort", pp.Data());
812 fn +=
"?filetype=raw";
817 if (!strncmp(rr,
"root", 4)) {
826 emsg.
Form(
"path '%s' does not contain the relevant dirs - abort", fn.
Data());
829 emsg.
Form(
"path '%s' cannot be open - abort", fn.
Data());
832 emsg.
Form(
"'%s' is not a ROOT file - abort", fn.
Data());
835 emsg.
Form(
"could not read first 4 bytes from '%s' - abort", fn.
Data());
839 emsg.
Form(
"path '%s' cannot be open in raw mode - abort", fn.
Data());
842 emsg.
Form(
"path '%s' cannot be stated - abort", fn.
Data());
845 ::Error(
"TProofBench::GetPerfSpecs",
"%s", emsg.
Data());
853 nm = (fileDesc *) filels.
First();
856 }
else if (filels.
GetSize() > 1) {
859 Printf(
"Several possible files found:");
860 while ((nm = (fileDesc *) nxf())) {
861 Printf(
" %d\t%s\t%s\t%s (file: %s)", idx++, nm->GetTitle(),
865 if (a.
IsNull() || a[0] ==
'\n') a.
Form(
"%d", idx-1);
867 if ((nm = (fileDesc *) filels.
At(idx))) {
871 ::Error(
"TProofBench::GetPerfSpecs",
"chosen index '%d' does not exist - abort", idx);
876 ::Error(
"TProofBench::GetPerfSpecs",
877 "path '%s' is a directory but no ROOT file found in it - abort", pp.Data());
978 if (!fout || (fout && fout->
IsZombie())) {
979 ::Error(
"DrawDataSet",
"could not open file '%s' ...", outfile);
984 TString description(
"<not available>");
986 if (nmdesc) description = nmdesc->
GetTitle();
996 const char *dirn = (isX) ?
"RunDataReadx" :
"RunDataRead";
999 ::Error(
"DrawCPU",
"could not find directory '%s' ...", dirn);
1007 const char *lx = (isX) ?
"_x" :
"";
1008 const char *
ln = (isNorm) ?
"Norm" :
"Prof";
1010 if (type && !strcmp(type,
"evts")) {
1011 hprofn.
Form(
"%s%s_DataRead_QR_Evts", ln, lx);
1012 hmaxn.
Form(
"%s%s_DataRead_PS_MaxEvts", ln, lx);
1015 hprofn.
Form(
"%s%s_DataRead_QR_IO", ln, lx);
1016 hmaxn.
Form(
"%s%s_DataRead_PS_MaxIO", ln, lx);
1020 Double_t ami = -1., amx = -1., mmi = -1., mmx = -1.;
1028 ::Error(
"DrawCPU",
"could not find '%s' ...", hprofn.
Data());
1040 ::Warning(
"DrawCPU",
"could not find '%s': feature added in 5.34/11", hmaxn.
Data());
1049 if (mmx > ymx) ymx = mmx;
1050 if ((ymi > 0 && mmi < ymi) || (ymi < 0.)) ymi = mmi;
1053 TProfile *pf = (doMax) ? pfmx : pfav;
1054 Int_t kmx = (doMax) ? kmmx : kamx;
1057 TCanvas *cpu =
new TCanvas(
"dataset",
"Rate vs wrks",204,69,1050,502);
1058 cpu->
Range(-3.106332,0.7490716,28.1362,1.249867);
1060 TH1F *hgr =
new TH1F(
"Graph-DataSet",
" Data Read speed-up",
nbins*4, xmin,
xmax);
1082 leg =
new TLegend(0.7, 0.8, 0.9, 0.9);
1084 leg =
new TLegend(0.1, 0.8, 0.3, 0.9);
1095 if (verbose) grav->
Print();
1097 leg->
AddEntry(grav,
"Average",
"P");
1107 if (verbose) grmx->
Print();
1109 grmx->
Draw(
"lpSAME");
1113 leg->
AddEntry(grmx,
"Maximum",
"P");
1123 if (
nbins > 5) xmi = 1.5;
1134 }
else if (dofit > 1) {
1152 printf(
"* ************************************************************ *\n");
1154 printf(
"* Cluster: %s\n", description.
Data());
1155 printf(
"* Performance measurement from scalability plot: *\n");
1158 printf(
"* rate max: %.3f\tMB/s (@ %d workers)\n", ymx, kmx);
1160 printf(
"* per-worker rate: %.3f\tMB/s \n", normrate);
1162 printf(
"* rate max: %.3f\tevts/s (@ %d workers)\n", ymx, kmx);
1164 printf(
"* ************************************************************ *\n");
1182 if (!fout || (fout && fout->
IsZombie())) {
1183 ::Error(
"DrawEfficiency",
"could not open file '%s' ...", outfile);
1188 TString description(
"<not available>");
1190 if (nmdesc) description = nmdesc->
GetTitle();
1194 const char *dirs[4] = {
"RunCPU",
"RunCPUx",
"RunDataRead",
"RunDataReadx"};
1195 const char *labs[4] = {
"CPU",
"CPU",
"DataRead",
"DataRead"};
1196 Int_t fst = 0, lst = 3;
1199 }
else if (oo ==
"cpux") {
1202 }
else if (oo.BeginsWith(
"data")) {
1203 if (oo.EndsWith(
"x")) {
1211 const char *dirn = 0;
1213 for (
Int_t i = fst; i <= lst; i++) {
1221 ::Error(
"DrawEfficiency",
"could not find directory ...");
1229 hprof.
Form(
"Prof_%s_CPU_eff", ln.
Data());
1238 ::Error(
"DrawEfficiency",
"could not find '%s' ...", hprof.
Data());
1245 TCanvas *cpu =
new TCanvas(
"efficiency",
"efficiency vs wrks",204,69,1050,502);
1246 cpu->
Range(-3.106332,0.7490716,28.1362,1.249867);
1248 TH1F *hgr =
new TH1F(
"Graph-Efficiency",
"CPU effectiveness",
nbins*4, xmin,
xmax);
1270 if (verbose) gr->
Print();
1274 printf(
"* ************************************************************ *\n");
1276 printf(
"* Cluster: %s\n", description.
Data());
1277 printf(
"* CPU effectiveness measurement: *\n");
1279 printf(
"* effectiveness max: %.3f (@ %d workers)\n", ymx, kmx);
1281 printf(
"* ************************************************************ *\n");
1334 if (dset && strlen(dset) > 0)
fDataSet = dset;
1341 #ifdef R__HAVE_CONFIG
1346 Info(
"MakeDataSet",
"uploading '%s' ...", par.
Data());
1348 Error(
"MakeDataSet",
"problems uploading '%s' - cannot continue", par.
Data());
1358 Error(
"MakeDataSet",
"you should load the class '%s' before running the benchmark",
fDataGenSel.
Data());
1366 Info(
"MakeDataSet",
"Uploading '%s' ...", par.
Data());
1368 Error(
"MakeDataSet",
"problems uploading '%s' - cannot continue", par.
Data());
1371 Info(
"MakeDataSet",
"Enabling '%s' ...", par.
Data());
1373 Error(
"MakeDataSet",
"problems enabling '%s' - cannot continue", par.
Data());
1387 if (fnroot && strlen(fnroot) > 0) {
1405 TIter nxnd(nodesmap);
1409 while ((obj = nxnd()) != 0) {
1410 if ((wli = dynamic_cast<TList *>(nodesmap->
GetValue(obj)))) {
1424 filesmap->
SetName(
"PROOF_FilesToProcess");
1431 Int_t oldnotass = -1;
1436 Long64_t ne = (nevt > 0) ? nevt : 30000;
1449 if (oldnotass != -1)
1465 while ((obj = nxout())) {
1481 Warning(
"MakeDataSet",
"problems registering '%s'", dset);
1483 Warning(
"MakeDataSet",
"dataset '%s' is empty!", dset);
1486 Warning(
"MakeDataSet",
"PROOF output list is empty!");
1514 Error(
"CopyDataSet",
"no PROOF found - cannot continue");
1518 Error(
"CopyDataSet",
"dataset '%s' does not exist", dset);
1522 if (isatty(0) != 0 && isatty(1) != 0) {
1523 Printf(
"Target dataset '%s' exists already:"
1524 " do you want to remove it first?", dsetdst);
1525 const char *
a = Getline(
"[Y,n] ");
1527 if (a[0] ==
'Y' || a[0] ==
'y' || a[0] ==
'\n') {
1528 Info(
"CopyDataSet",
"removing dataset '%s' ...", dsetdst);
1534 Error(
"CopyDataSet",
"destination dataset '%s' does already exist: remove it first", dsetdst);
1542 Error(
"CopyDataSet",
"problems retrieving TFileCollection for dataset '%s'", dset);
1551 Info(
"CopyDataSet",
"adding info for file '%s'", fn.
Data());
1559 Error(
"CopyDataSet",
"problems copying files of dataset '%s' to dest dir '%s'", dset, destdir);
1568 Error(
"CopyDataSet",
"problems registering and verifying '%s'", dsetdst);
1585 Error(
"SetProofDS",
"trying to set an invalid PROOF instance");
const char * GetHost() const
virtual void SetSelOption(const char *opt)
virtual ~TProofBench()
Destructor.
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
Fit this graph with function with name fname.
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title Offset is a correction factor with respect to the "s...
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual const char * GetTitle() const
Returns title of object.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual Bool_t IsAbsoluteFileName(const char *dir)
Return true if dir is an absolute pathname.
Long64_t GetNFiles() const
void fcn(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag)
TProofBenchRunCPU * fRunCPU
virtual void SetMaximum(Double_t maximum=-1111)
This class displays a legend box (TPaveText) containing several legend entries.
TProofBench(const char *url, const char *outfile="<default>", const char *proofopt=0)
Constructor: check PROOF and load selectors PAR.
virtual void Print(Option_t *chopt="") const
Print graph and errors values.
virtual Bool_t ExistsDataSet(const char *dataset)
Returns kTRUE if 'dataset' exists, kFALSE otherwise.
CPU-intensive PROOF benchmark test generates events and fill 1, 2, or 3-D histograms.
Int_t CopyFiles(const char *dset, const char *destdir)
Copy the files of dataset 'dset' to another directory Return 0 on success, -1 on error.
Int_t EnablePackage(const char *package, Bool_t notOnClient=kFALSE, TList *workers=0)
Enable specified package.
Int_t RunCPU(Long64_t nevents=-1, Int_t start=-1, Int_t stop=-1, Int_t step=-1)
Perform the CPU run Return 0 on success, -1 on error.
virtual const char * WorkingDirectory()
Return working directory.
virtual const char * GetName() const
Return name of this collection.
const char * AsString(const Option_t *option="") const
Return the date & time as a string.
virtual Bool_t RegisterDataSet(const char *name, TFileCollection *dataset, const char *optStr="")
Register the 'dataSet' on the cluster under the current user, group and the given 'dataSetName'...
virtual TList * GetListOfKeys() const
virtual TObject * Get(const char *namecycle)
Return pointer to object identified by namecycle.
virtual void SetParNames(const char *name0="p0", const char *name1="p1", const char *name2="p2", const char *name3="p3", const char *name4="p4", const char *name5="p5", const char *name6="p6", const char *name7="p7", const char *name8="p8", const char *name9="p9", const char *name10="p10")
Set up to 10 parameter names.
Collectable string class.
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
This class represents a WWW compatible URL.
TString & ReplaceAll(const TString &s1, const TString &s2)
R__EXTERN TStyle * gStyle
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
virtual void SetName(const char *name)
Change (i.e.
virtual TList * GetListOfKeys() const
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual void Draw(Option_t *option="")
Draw this legend with its current attributes.
const char * GetProtocol() const
void SetParameter(const char *par, const char *value)
Set input list parameter.
Int_t SetOutFile(const char *outfile, Bool_t verbose=kTRUE)
Set the output file Return 0 on success, -1 on error.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
static const TList * GetEnvVars()
Get environemnt variables.
Double_t funio(Double_t *xx, Double_t *par)
I/O saturated rate function.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
virtual Bool_t ReadBuffer(char *buf, Int_t len)
Read a buffer from the file.
virtual TFileCollection * GetDataSet(const char *dataset, const char *optStr="")
Get a list of TFileInfo objects describing the files of the specified dataset.
TList * GetOutputList()
Get list with all object created during processing (see Process()).
virtual TObject * Get(const char *namecycle)
Return pointer to object identified by namecycle.
void Add(TObject *obj)
This function may not be used (but we need to provide it since it is a pure virtual in TCollection)...
virtual void SetMinimum(Double_t minimum=-1111)
static void DrawEfficiency(const char *outfile, const char *opt="", Bool_t verbose=kFALSE)
Draw the efficiency plot.
1-D histogram with a float per channel (see TH1 documentation)}
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
const char *const kPROOF_BenchParDir
Handle operations on datasets used by ProofBench.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
virtual Int_t GetNbinsX() const
void CenterTitle(Bool_t center=kTRUE)
Center axis title.
virtual void SetParList(const char *pars)
Double_t funiov(Double_t *xx, Double_t *par)
I/O saturated rate function with varying Rcpu.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
virtual void Draw(Option_t *chopt="")
Draw this graph with its current attributes.
Double_t funcpuvn(Double_t *xx, Double_t *par)
Function with varying Rcpu normalized.
Bool_t R_ISREG(Int_t mode)
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
void Run(Long64_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t)
void Run(Long64_t nevents, Int_t start, Int_t stop, Int_t step, Int_t ntries, Int_t debug, Int_t draw)
Run benchmark Input parameters nevents: Number of events to run per file.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0)
Create / open a file.
virtual Double_t GetBinWidth(Int_t bin) const
return bin width for 1D historam Better to use h1.GetXaxis().GetBinWidth(bin)
Int_t RunCPUx(Long64_t nevents=-1, Int_t start=-1, Int_t stop=-1)
Perform the CPU run scanning over the number of workers per node Return 0 on success, -1 on error.
const char * Data() const
Int_t RemoveDataSet(const char *dset)
Physically remove the dataset 'dset', i.e.
static struct mg_connection * fc(struct mg_context *ctx)
Int_t Update(Long64_t avgsize=-1)
Update accumulated information about the elements of the collection (e.g.
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
Int_t RemoveFiles(const char *dset)
Physically remove the dataset 'dset', i.e.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
The TNamed class is the base class for all named ROOT classes.
static void DrawCPU(const char *outfile, const char *opt="std:", Bool_t verbose=kFALSE, Int_t dofit=0, Int_t n0=-1, Int_t n1=-1)
Draw the CPU speedup plot.
const char * GetMaster() const
virtual void SetMarkerColor(Color_t mcolor=1)
A sorted doubly linked list.
std::vector< std::vector< double > > Data
TObject * GetValue(const char *keyname) const
Returns a pointer to the value associated with keyname as name of the key.
Int_t Atoi() const
Return integer value of string.
static TProof * Open(const char *url=0, const char *conffile=0, const char *confdir=0, Int_t loglevel=0)
Start a PROOF session on a specific cluster.
Book space in a file, create I/O buffers, to fill them, (un)compress them.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Int_t ReleaseCache(const char *dset)
Release memory cache for dataset 'dset' Return 0 on success, -1 on error.
TObject * GetParameter(const char *par) const
Get specified parameter.
virtual Int_t Compare(const TObject *obj) const
Compare two TNamed objects.
Double_t funp1(Double_t *xx, Double_t *par)
Simple polynomial 1st degree.
void SetReleaseCache(Bool_t on=kTRUE)
Double_t funp2n(Double_t *xx, Double_t *par)
Normalized 2nd degree.
Int_t UploadPackage(const char *par, EUploadPackageOpt opt=kUntar, TList *workers=0)
Upload a PROOF archive (PAR file).
virtual void SetLineColor(Color_t lcolor)
Double_t funcpuv(Double_t *xx, Double_t *par)
Function with varying Rcpu.
virtual Double_t GetBinCenter(Int_t bin) const
return bin center for 1D historam Better to use h1.GetXaxis().GetBinCenter(bin)
const char *const kPROOF_BenchDataSelPar
R__EXTERN TSystem * gSystem
virtual void SetFillColor(Color_t fcolor)
virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Set world coordinate system for the pad.
Int_t Add(TFileInfo *info)
Add TFileInfo to the collection.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
Double_t funp2(Double_t *xx, Double_t *par)
Simple polynomial 2nd degree.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
static void GetPerfSpecs(const char *path=".", Int_t degfit=1)
Get performance specs.
virtual const char * GetName() const
Returns name of object.
virtual void SetMarkerStyle(Style_t mstyle=1)
const char * GetTitle() const
Returns title of object.
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...
Int_t RunDataSet(const char *dset="BenchDataSet", Int_t start=1, Int_t stop=-1, Int_t step=1)
Perform a test using dataset 'dset' Return 0 on success, -1 on error Open the file for the results...
void SetName(const char *name)
void SetProofDS(TProof *p)
Set the PROOF instance to be used for dataset operations, like releasing cache ...
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels The size is expressed in per cent of the pad width.
static void AssertFittingFun(Double_t mi, Double_t mx)
Make sure that the fitting functions are defined.
virtual void SetMarkerSize(Size_t msize=1)
void AddInput(TObject *obj)
Add objects that might be needed during the processing of the selector (see Process()).
Double_t funp1n(Double_t *xx, Double_t *par)
Normalized 1st degree.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title The size is expressed in per cent of the pad width.
virtual Double_t GetBinError(Int_t bin) const
Return bin error of a Profile histogram.
Int_t ReleaseCache(const char *dset)
Release memory cache for dataset 'dset' Return 0 on success, -1 on error.
virtual void Print(Option_t *option="") const
Default print for collections, calls Print(option, 1).
Int_t RunDataSetx(const char *dset="BenchDataSet", Int_t start=1, Int_t stop=-1)
Perform a test using dataset 'dset' scanning over the number of workers per node. ...
virtual Double_t GetBinContent(Int_t bin) const
Return bin content of a Profile histogram.
virtual Double_t Derivative(Double_t x, Double_t *params=0, Double_t epsilon=0.001) const
Returns the first derivative of the function at point x, computed by Richardson's extrapolation metho...
TList * GetInputList()
Get input list.
Steering class for PROOF benchmarks.
void Close(Option_t *option="")
Close all open slave servers.
virtual Int_t GetSize() const
void DeleteParameters(const char *wildcard)
Delete the input list parameters specified by a wildcard (e.g.
virtual const char * GetName() const
Returns name of object.
virtual const char * HostName()
Return the system's host name.
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
Bool_t UseDynamicStartup() const
Describe directory structure in memory.
virtual void Print(Option_t *option="") const
Print TNamed name and title.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
const char *const kPROOF_BenchSelDataGenDef
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
The TTimeStamp encapsulates seconds and ns since EPOCH.
This class controls a Parallel ROOT Facility, PROOF, cluster.
TMap * GetMapOfNodes() const
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 OpenOutFile(Bool_t wrt=kFALSE, Bool_t verbose=kTRUE)
Set the otuput file Return 0 on success, -1 on error.
const char * GetName() const
Returns name of object.
virtual Double_t GetParameter(Int_t ipar) const
Mother of all ROOT objects.
void Print(Option_t *option="") const
Prints the contents of the TFileCollection.
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
TProofBenchRunDataRead * fRunDS
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
TUrl * GetCurrentUrl() const
Return the current url.
Bool_t R_ISDIR(Int_t mode)
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
virtual void Add(TObject *obj)
Class that contains a list of TFileInfo's and accumulated meta data information about its entries...
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
void CloseOutFile()
Close output file.
A TGraphErrors is a TGraph with error bars.
void SetOptTitle(Int_t tit=1)
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
virtual void SetHistogram(TH1F *h)
Int_t CopyDataSet(const char *dset, const char *dsetdst, const char *destdir)
Copy the files of dataset 'dset' to 'destdir' and create a new dataset named 'dsetdst' decribing them...
Class describing a generic file including meta information.
virtual void SetParameter(Int_t param, Double_t value)
Int_t GetDate() const
Return date in form of 19971224 (i.e. 24/12/1997)
virtual void SetPointError(Double_t ex, Double_t ey)
Set ex and ey values for point pointed by the mouse.
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
Int_t MakeDataSet(const char *dset=0, Long64_t nevt=-1, const char *fnroot="event", Bool_t regenerate=kFALSE)
Create the largest dataset for the run.
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
const char * GetFile() const
I/O-intensive PROOF benchmark test reads in event files distributed on the cluster.
PROOF worker node information.
static TGraphErrors * GetGraph(TDirectory *d, const char *pfn, Int_t &nb, Double_t &xmi, Double_t &xmx, Double_t &ymi, Double_t &ymx, Int_t &kmx, TProfile *&pf)
Get from TDirectory 'd' the TProfile named 'pfn' and create the graph.
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
virtual void Close(Option_t *option="")
Close a file.
static void DrawDataSet(const char *outfile, const char *opt="std:", const char *type="mbs", Bool_t verbose=kFALSE, Int_t dofit=0, Int_t n0=-1, Int_t n1=-1)
Draw the CPU speedup plot.
virtual void SetSelName(const char *sel)
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.