Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:23

0001 #ifndef _PlotMEIFBenchmarks_
0002 #define _PlotMEIFBenchmarks_
0003 
0004 #include "Common.hh"
0005 
0006 #include "TGraph.h"
0007 
0008 struct EventOpts {
0009   EventOpts() {}
0010   EventOpts(const Int_t nev, const Color_t color) : nev(nev), color(color) {}
0011 
0012   Int_t nev;
0013   Color_t color;
0014 };
0015 typedef std::vector<EventOpts> EOVec;
0016 
0017 namespace {
0018   EOVec events;
0019   UInt_t nevents;
0020   void setupEvents() {
0021     // N.B.: Consult ./xeon_scripts/benchmark-cmssw-ttbar-fulldet-build.sh for matching MEIF to arch
0022 
0023     events.emplace_back(1, kBlack);
0024     events.emplace_back(2, kBlue);
0025     events.emplace_back(4, kGreen + 1);
0026     events.emplace_back(8, kRed);
0027     events.emplace_back((ARCH == SNB ? 12 : 16), kMagenta);
0028 
0029     if (ARCH == KNL || ARCH == SKL || ARCH == LNXG || ARCH == LNXS) {
0030       events.emplace_back(32, kAzure + 10);
0031       events.emplace_back(64, kOrange + 3);
0032     }
0033     if (ARCH == KNL) {
0034       events.emplace_back(128, kViolet - 1);
0035     }
0036 
0037     // set nevents once events is set
0038     nevents = events.size();
0039   }
0040 };  // namespace
0041 
0042 typedef std::vector<TGraph*> TGVec;
0043 
0044 class PlotMEIFBenchmarks {
0045 public:
0046   PlotMEIFBenchmarks(const TString& arch, const TString& sample, const TString& build);
0047   ~PlotMEIFBenchmarks();
0048   void RunMEIFBenchmarkPlots();
0049   void MakeOverlay(const TString& text,
0050                    const TString& title,
0051                    const TString& xtitle,
0052                    const TString& ytitle,
0053                    const Double_t xmin,
0054                    const Double_t xmax,
0055                    const Double_t ymin,
0056                    const Double_t ymax);
0057 
0058 private:
0059   const TString arch;
0060   const TString sample;
0061   const TString build;
0062 
0063   ArchEnum ARCH;
0064   TFile* file;
0065 };
0066 
0067 #endif