ROOT » PROOF » PROOFBENCH » TProofBench

class TProofBench: public TObject


TProofBench

Steering class for PROOF benchmarks


Function Members (Methods)

public:
virtual~TProofBench()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
voidCloseOutFile()
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Int_tCopyDataSet(const char* dset, const char* dsetdst, const char* destdir)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
static voidDrawCPU(const char* outfile, const char* opt = "std:", Bool_t verbose = kFALSE, Int_t dofit = 0, Int_t n0 = -1, Int_t n1 = -1)
static voidDrawDataSet(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)
static voidDrawEfficiency(const char* outfile, const char* opt = "", Bool_t verbose = kFALSE)
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Bool_tGetDebug()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static TList*GetGraphs()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*GetOutFileName() const
static voidGetPerfSpecs(const char* path = ".", Int_t degfit = 1)
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
Int_tMakeDataSet(const char* dset = 0, Long64_t nevt = -1, const char* fnroot = "event", Bool_t regenerate = kFALSE)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
Int_tOpenOutFile(Bool_t wrt = kFALSE, Bool_t verbose = kTRUE)
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TProofBench&operator=(const TProofBench&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
Int_tReleaseCache(const char* dset)
Int_tRemoveDataSet(const char* dset)
voidTObject::ResetBit(UInt_t f)
Int_tRunCPU(Long64_t nevents = -1, Int_t start = -1, Int_t stop = -1, Int_t step = -1)
Int_tRunCPUx(Long64_t nevents = -1, Int_t start = -1, Int_t stop = -1)
Int_tRunDataSet(const char* dset = "BenchDataSet", Int_t start = 1, Int_t stop = -1, Int_t step = 1)
Int_tRunDataSetx(const char* dset = "BenchDataSet", Int_t start = 1, Int_t stop = -1)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCPUPar(const char* par)
voidSetCPUSel(const char* sel)
voidSetDataGenPar(const char* par)
voidSetDataGenSel(const char* sel)
voidSetDataPar(const char* par)
voidSetDataSel(const char* sel)
voidSetDebug(Bool_t debug = kTRUE)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetHistType(TPBHistType* histtype)
voidSetNFilesWrk(Int_t nf = 0)
voidSetNHist(Int_t nh)
voidSetNTries(Int_t nt)
static voidTObject::SetObjectStat(Bool_t stat)
Int_tSetOutFile(const char* outfile, Bool_t verbose = kTRUE)
voidSetProofDS(TProof* p)
voidSetReadType(TPBReadType* readtype)
voidSetReleaseCache(Bool_t on = kTRUE)
voidSetSelOption(const char* opt)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TProofBench(const TProofBench&)
TProofBench(const char* url, const char* outfile = "<default>", const char* proofopt = 0)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
static voidAssertFittingFun(Double_t mi, Double_t mx)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
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)
voidTObject::MakeZombie()

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
TStringfCPUParList of par files to be loaded for CPU benchmarks
TStringfCPUSelSelector to be used for CPU benchmarks
TProofBenchDataSet*fDSInstance to handle datasets operations
TStringfDataGenParList of par files to be loaded to generate data for benchmarks
TStringfDataGenSelSelector to be used for generate data for benchmarks
TStringfDataParList of par files to be loaded for data benchmarks
TStringfDataSelSelector to be used for data benchmarks
TStringfDataSetName of the dataset
Bool_tfDebugDebug switch
TNamed*fDescriptionStrings describing the cluster for this test (saved in the output file)
TPBHistType*fHistTypeType of histograms for CPU runs
Int_tfNFilesWrkNumber of files generated files per worker
Int_tfNHistNumber of histograms to be created in default CPU runs
Int_tfNtriesNumber of times a measurement is repeated
Int_tfNumWrkMaxMax number of workers (required for dynamic setups)
TFile*fOutFileOutput file
TStringfOutFileNameName of the output file
TProof*fProofProof
TProof*fProofDSProof to be used for dataset actions
TPBReadType*fReadTypeType of read (partial, full)
Bool_tfReleaseCacheRelease cache for data reads between runs
TProofBenchRunCPU*fRunCPUInstance to run CPU scans
TProofBenchRunDataRead*fRunDSInstance to run data-read scans
TStringfSelOptionOption field for processing the selector
static TF1*fgFioFunction used for I/O rate fits
static TF1*fgFioVFunction used for I/O rate fits with non-constant Rcpu
static TF1*fgFp1Simple 1st degree polynomial
static TF1*fgFp1nNormalized 1st degree
static TF1*fgFp2Simple 2nd degree polynomial
static TF1*fgFp2nNormalized 2nd degree
static TF1*fgFp3Function with varying Rcpu
static TF1*fgFp3nNormalized Function with varying Rcpu
static TList*fgGraphsList of TGraphErrors created by Draw actions
private:
Bool_tfUnlinkOutfileWhether to remove empty output files

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TProofBench(const char* url, const char* outfile = "<default>", const char* proofopt = 0)
 Constructor: check PROOF and load selectors PAR
~TProofBench()
 Destructor
Int_t OpenOutFile(Bool_t wrt = kFALSE, Bool_t verbose = kTRUE)
 Set the otuput file
 Return 0 on success, -1 on error
Int_t SetOutFile(const char* outfile, Bool_t verbose = kTRUE)
 Set the output file
 Return 0 on success, -1 on error
void CloseOutFile()
 Close output file
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
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
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.
  opt = 'typewhat', e.g. 'std:max:'
    type = 'std:'      draw standard evt/s plot
           'stdx:'     draw standard evt/s plot, 1 worker per node
           'norm:'     draw normalized plot
           'normx:'    draw normalized plot, 1 worker per node
    what = 'max:'      draw max rate
           'avg:'      draw average rate
           'all:'      draw max and average rate on same plot (default)
  dofit =  0           no fit
           1           fit with the relevant '1st degree related' function
           2           fit with the relevant '2nd degree related' function
           3           fit with varying rcpu function
     n0 = for dofit == 3, number of real cores
     n1 = for dofit == 3, number of total cores (real + hyperthreaded)

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.
 Return also the max y in mx.
void AssertFittingFun(Double_t mi, Double_t mx)
 Make sure that the fitting functions are defined
void GetPerfSpecs(const char* path = ".", Int_t degfit = 1)
 Get performance specs. Check file 'path', or files in directory 'path'
 (default current directory).
 The degree of the polynomial used for the fit is 'degfit' (default 1).
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
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.
 Return 0 on success, -1 on error
 Open the file for the results
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.
  opt = 'typewhat', e.g. 'std:max:'
    type = 'std:'      draw standard plot
           'stdx:'     draw standard plot, 1 worker per node
           'norm:'     draw normalized plot
           'normx:'    draw normalized plot, 1 worker per node
    what = 'max:'      draw max rate
           'avg:'      draw average rate
           'all:'      draw max and average rate on same plot (default)
 type =    'mbs'           MB/s scaling plots (default)
           'evts'          Event/s scaling plots
  dofit =  0           no fit
           1           fit with default 3 parameter saturated I/O formula
           2           fit with 4 parameter saturated I/O formula (varying Rcpu)
     n0 = for dofit == 2, number of real cores
     n1 = for dofit == 2, number of total cores (real + hyperthreaded)

void DrawEfficiency(const char* outfile, const char* opt = "", Bool_t verbose = kFALSE)
 Draw the efficiency plot.
  opt = 'cpu' or 'data' (default the first found)

Int_t ReleaseCache(const char* dset)
 Release memory cache for dataset 'dset'
 Return 0 on success, -1 on error
Int_t RemoveDataSet(const char* dset)
 Physically remove the dataset 'dset', i.e. remove the dataset and the files
 it describes
 Return 0 on success, -1 on error
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.
 Defaults for
          dataset name, filename root
 are
          "BenchDataSet", "event"
 respectively.
 These can be changed via dset and fnroot, respectively.
 The string 'fnroot' defines the location of the files, interpreted as an URL.
 Examples:
          fnroot             files
          'event'            <datadir>/event_<ord>_<#>.root
          '/mss/event'       /mss/event_<ord>_<#>.root
          'root://srv//mss/event?remote=1'
                             root://srv//mss/event_<ord>_<#>?remote=1.root
 Default selector is TSelEventGen. Use SetDataGenSel and SetDataGenPar to change it
 and to pass the list of PARs defining the alternative selector.
 The argument 'nevt' controls the number of events per file (-1 for the default,
 which is 30000).
 Return 0 on success, -1 on error
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.
 Return 0 on success, -1 on error
void SetProofDS(TProof* p)
 Set the PROOF instance to be used for dataset operations, like releasing
 cache ...
 Use SetProofDS(0) to reset and using the default PROOF
TProofBench(const char* url, const char* outfile = "<default>", const char* proofopt = 0)
const char * GetOutFileName() const
{ return fOutFileName; }
void SetNFilesWrk(Int_t nf = 0)
{ fNFilesWrk = (nf > 0) ? nf : 4; }
void SetNTries(Int_t nt)
{ if (nt > 0) fNtries = nt; }
void SetHistType(TPBHistType* histtype)
{ fHistType = histtype; }
void SetNHist(Int_t nh)
{ fNHist = nh; }
void SetReadType(TPBReadType* readtype)
{ fReadType = readtype; }
void SetReleaseCache(Bool_t on = kTRUE)
{ fReleaseCache = on; }
void SetCPUSel(const char* sel)
{ fCPUSel = sel; }
void SetCPUPar(const char* par)
{ fCPUPar = par; }
void SetDataSel(const char* sel)
{ fDataSel = sel; }
void SetDataPar(const char* par)
{ fDataPar = par; }
void SetDataGenSel(const char* sel)
{ fDataGenSel = sel; }
void SetDataGenPar(const char* par)
{ fDataGenPar = par; }
void SetSelOption(const char* opt)
{ fSelOption = opt; }
void SetDebug(Bool_t debug = kTRUE)
{ fDebug = debug; }
Bool_t GetDebug()
{ return fDebug; }
TList * GetGraphs()
{ return fgGraphs; }