Public Member Functions | |
void | calcStat () |
void | deleteModuleSamplingPtr () |
float | getDt () |
float | getEvtTime () |
float | getEvtTimeErr () |
float | getFracBusy () |
float | getFracCPUBusy () |
std::pair< unsigned int, unsigned int > * | getModuleSamplingPtr () |
unsigned int | getNSampledNonIdle () |
float | getOffenderFracAt (unsigned int x) |
std::vector< std::pair < unsigned int, unsigned int > > | getOffendersVector () |
float | getRate () |
float | getRateErr () |
float | getRateErrPerMachine () |
float | getRatePerMachine () |
unsigned int | getReports () |
lsStat (unsigned int ls, unsigned int nbSubs, unsigned int maxreps, unsigned int nmodulenames) | |
void | update (unsigned int nSampledNonIdle, unsigned int nSampledIdle, unsigned int nProc, unsigned int ncpubusy, unsigned int deltaTms) |
~lsStat () | |
Public Attributes | |
float | avgDeltaT2_ |
float | avgDeltaT_ |
double | evtTimeAvg |
double | evtTimeErr |
double | fracCPUBusy_ |
double | fracWaitingAvg |
unsigned int | ls_ |
std::pair< unsigned int, unsigned int > * | moduleSamplingSums |
unsigned int | nbSubs_ |
unsigned int | nCPUBusy_ |
unsigned int | nMaxReports_ |
unsigned int | nmodulenames_ |
unsigned int | nProc2_ |
unsigned int | nProc_ |
unsigned int | nReports_ |
unsigned int | nSampledIdle2_ |
unsigned int | nSampledIdle_ |
unsigned int | nSampledNonIdle2_ |
unsigned int | nSampledNonIdle_ |
double | rateAvg |
double | rateErr |
unsigned int | sumDeltaTms_ |
bool | updated_ |
evf::iDie::lsStat::lsStat | ( | unsigned int | ls, |
unsigned int | nbSubs, | ||
unsigned int | maxreps, | ||
unsigned int | nmodulenames | ||
) | [inline] |
Definition at line 355 of file iDie.h.
References i, moduleSamplingSums, and nmodulenames_.
: ls_(ls),updated_(true),nbSubs_(nbSubs), nSampledNonIdle_(0),nSampledNonIdle2_(0),nSampledIdle_(0),nSampledIdle2_(0), nProc_(0),nProc2_(0),nCPUBusy_(0),nReports_(0),nMaxReports_(maxreps),nmodulenames_(nmodulenames), sumDeltaTms_(0),avgDeltaT_(23),avgDeltaT2_(0) { moduleSamplingSums = new std::pair<unsigned int,unsigned int>[nmodulenames_]; for (unsigned int i=0;i<nmodulenames_;i++) { moduleSamplingSums[i].first=i; moduleSamplingSums[i].second=0; } }
evf::iDie::lsStat::~lsStat | ( | ) | [inline] |
Definition at line 368 of file iDie.h.
References moduleSamplingSums.
{ delete moduleSamplingSums; }
void evf::iDie::lsStat::calcStat | ( | ) | [inline] |
Definition at line 397 of file iDie.h.
References avgDeltaT2_, avgDeltaT_, evtTimeAvg, evtTimeErr, fracCPUBusy_, fracWaitingAvg, nbSubs_, nCPUBusy_, nProc2_, nProc_, nReports_, nSampledIdle2_, nSampledIdle_, nSampledNonIdle2_, nSampledNonIdle_, funct::pow(), rateAvg, rateErr, mathSSE::sqrt(), sumDeltaTms_, and updated_.
Referenced by getDt(), getEvtTime(), getEvtTimeErr(), getFracBusy(), getFracCPUBusy(), getNSampledNonIdle(), getOffenderFracAt(), getOffendersVector(), getRate(), getRateErr(), getRateErrPerMachine(), and getRatePerMachine().
{ if (!updated_) return; if (nReports_) { float tinv = 0.001/nReports_; fracCPUBusy_=nCPUBusy_*tinv; avgDeltaT_ = avgDeltaT2_ = sumDeltaTms_*tinv; if (avgDeltaT_==0.) { avgDeltaT_=23.;//default value avgDeltaT2_=0; } rateAvg=nProc_ / avgDeltaT_; rateErr=sqrt(fabs(nProc2_ - pow(nProc_,2)))/avgDeltaT_; } else { fracCPUBusy_=0.; rateAvg=0.; rateErr=0.; avgDeltaT_=23.; } evtTimeAvg=0.;evtTimeErr=0.;fracWaitingAvg=1.; unsigned int sampled = nSampledNonIdle_+nSampledIdle_; if (rateAvg!=0. && sampled) { float nAllInv = 1./sampled; fracWaitingAvg= nSampledIdle_*nAllInv; double nSampledIdleErr2=fabs(nSampledIdle2_ - pow(nSampledIdle_,2)); double nSampledNonIdleErr2=fabs(nSampledNonIdle2_ - pow(nSampledNonIdle_,2)); double fracWaitingAvgErr= sqrt( (pow(nSampledIdle_,2)*nSampledNonIdleErr2 + pow(nSampledNonIdle_,2)*nSampledIdleErr2))*pow(nAllInv,2); float rateAvgInv=1./rateAvg; evtTimeAvg=nbSubs_ * nReports_ * (1.-fracWaitingAvg)*rateAvgInv; evtTimeErr = nbSubs_ * nReports_ * sqrt(pow(fracWaitingAvg*rateErr*pow(rateAvgInv,2),2) + pow(fracWaitingAvgErr*rateAvgInv,2)); } updated_=false; }
void evf::iDie::lsStat::deleteModuleSamplingPtr | ( | ) | [inline] |
Definition at line 391 of file iDie.h.
References moduleSamplingSums, and nmodulenames_.
{ delete moduleSamplingSums; moduleSamplingSums=nullptr; nmodulenames_=0; }
float evf::iDie::lsStat::getDt | ( | ) | [inline] |
Definition at line 488 of file iDie.h.
References avgDeltaT2_, calcStat(), and updated_.
Referenced by evf::iDie::updateRollingHistos().
{ if (updated_) calcStat(); return avgDeltaT2_; }
float evf::iDie::lsStat::getEvtTime | ( | ) | [inline] |
Definition at line 459 of file iDie.h.
References calcStat(), evtTimeAvg, and updated_.
Referenced by evf::iDie::updateRollingHistos().
{ if (updated_) calcStat(); return evtTimeAvg; }
float evf::iDie::lsStat::getEvtTimeErr | ( | ) | [inline] |
Definition at line 464 of file iDie.h.
References calcStat(), evtTimeErr, and updated_.
{ if (updated_) calcStat(); return evtTimeErr; }
float evf::iDie::lsStat::getFracBusy | ( | ) | [inline] |
Definition at line 474 of file iDie.h.
References calcStat(), fracWaitingAvg, and updated_.
Referenced by evf::iDie::updateRollingHistos().
{ if (updated_) calcStat(); return 1.-fracWaitingAvg; }
float evf::iDie::lsStat::getFracCPUBusy | ( | ) | [inline] |
Definition at line 479 of file iDie.h.
References calcStat(), fracCPUBusy_, and updated_.
Referenced by evf::iDie::updateRollingHistos().
{ if (updated_) calcStat(); return fracCPUBusy_; }
std::pair<unsigned int,unsigned int>* evf::iDie::lsStat::getModuleSamplingPtr | ( | ) | [inline] |
Definition at line 387 of file iDie.h.
References moduleSamplingSums.
Referenced by evf::iDie::parseModuleHisto().
{ return moduleSamplingSums; }
unsigned int evf::iDie::lsStat::getNSampledNonIdle | ( | ) | [inline] |
Definition at line 469 of file iDie.h.
References calcStat(), nSampledNonIdle_, and updated_.
Referenced by evf::iDie::parseModuleHisto().
{ if (updated_) calcStat(); return nSampledNonIdle_; }
float evf::iDie::lsStat::getOffenderFracAt | ( | unsigned int | x | ) | [inline] |
Definition at line 518 of file iDie.h.
References calcStat(), first, i, moduleSamplingSums, nmodulenames_, nSampledIdle_, nSampledNonIdle_, pileupDistInMC::total, and updated_.
{ if (x<nmodulenames_) { if (updated_) calcStat(); float total = nSampledNonIdle_+nSampledIdle_; if (total>0.) { for (size_t i=0;i<nmodulenames_;i++) { if (moduleSamplingSums[i].first==x) return moduleSamplingSums[i].second/total; } } } return 0.; }
std::vector<std::pair<unsigned int, unsigned int> > evf::iDie::lsStat::getOffendersVector | ( | ) | [inline] |
Definition at line 493 of file iDie.h.
References calcStat(), prof2calltree::count, first, MODNAMES, moduleSamplingSums, nmodulenames_, run_regression::ret, and updated_.
Referenced by evf::iDie::parseModuleHisto().
{ std::vector<std::pair<unsigned int, unsigned int>> ret; if (updated_) calcStat(); if (moduleSamplingSums) { //make a copy for sorting std::pair<unsigned int,unsigned int> *moduleSumsCopy = new std::pair<unsigned int,unsigned int>[nmodulenames_]; memcpy(moduleSumsCopy,moduleSamplingSums,nmodulenames_*sizeof(std::pair<unsigned int,unsigned int>)); std::qsort((void *)moduleSumsCopy, nmodulenames_, sizeof(std::pair<unsigned int,unsigned int>), modlistSortFunction); unsigned int count=0; unsigned int saveidx=0; while (saveidx < MODNAMES && count<nmodulenames_) { if (moduleSumsCopy[count].first==2) {count++;continue;} ret.push_back(moduleSumsCopy[count]); saveidx++; count++; } delete moduleSumsCopy; } return ret; }
float evf::iDie::lsStat::getRate | ( | ) | [inline] |
Definition at line 435 of file iDie.h.
References calcStat(), rateAvg, and updated_.
Referenced by evf::iDie::updateRollingHistos().
float evf::iDie::lsStat::getRateErr | ( | ) | [inline] |
float evf::iDie::lsStat::getRateErrPerMachine | ( | ) | [inline] |
float evf::iDie::lsStat::getRatePerMachine | ( | ) | [inline] |
unsigned int evf::iDie::lsStat::getReports | ( | ) | [inline] |
Definition at line 484 of file iDie.h.
References nReports_.
Referenced by evf::iDie::updateRollingHistos().
{ return nReports_; }
void evf::iDie::lsStat::update | ( | unsigned int | nSampledNonIdle, |
unsigned int | nSampledIdle, | ||
unsigned int | nProc, | ||
unsigned int | ncpubusy, | ||
unsigned int | deltaTms | ||
) | [inline] |
Definition at line 372 of file iDie.h.
References nCPUBusy_, nProc2_, nProc_, nReports_, nSampledIdle2_, nSampledIdle_, nSampledNonIdle2_, nSampledNonIdle_, funct::pow(), sumDeltaTms_, and updated_.
Referenced by evf::iDie::parseModuleHisto().
{ nReports_++; nSampledNonIdle_+=nSampledNonIdle; nSampledNonIdle2_+=pow(nSampledNonIdle,2); nSampledIdle_+=nSampledIdle; nSampledIdle2_+=pow(nSampledIdle,2); nProc_+=nProc; nProc2_+=pow(nProc,2); nCPUBusy_+=ncpubusy; sumDeltaTms_+=deltaTms; updated_=true; }
Definition at line 352 of file iDie.h.
Referenced by calcStat(), and getDt().
Definition at line 351 of file iDie.h.
Referenced by calcStat().
Definition at line 345 of file iDie.h.
Referenced by calcStat(), and getEvtTime().
Definition at line 346 of file iDie.h.
Referenced by calcStat(), and getEvtTimeErr().
Definition at line 348 of file iDie.h.
Referenced by calcStat(), and getFracCPUBusy().
Definition at line 347 of file iDie.h.
Referenced by calcStat(), and getFracBusy().
unsigned int evf::iDie::lsStat::ls_ |
std::pair<unsigned int,unsigned int>* evf::iDie::lsStat::moduleSamplingSums |
Definition at line 353 of file iDie.h.
Referenced by deleteModuleSamplingPtr(), getModuleSamplingPtr(), getOffenderFracAt(), getOffendersVector(), lsStat(), and ~lsStat().
unsigned int evf::iDie::lsStat::nbSubs_ |
Definition at line 333 of file iDie.h.
Referenced by calcStat().
unsigned int evf::iDie::lsStat::nCPUBusy_ |
Definition at line 340 of file iDie.h.
Referenced by calcStat(), and update().
unsigned int evf::iDie::lsStat::nMaxReports_ |
unsigned int evf::iDie::lsStat::nmodulenames_ |
Definition at line 349 of file iDie.h.
Referenced by deleteModuleSamplingPtr(), getOffenderFracAt(), getOffendersVector(), and lsStat().
unsigned int evf::iDie::lsStat::nProc2_ |
Definition at line 339 of file iDie.h.
Referenced by calcStat(), and update().
unsigned int evf::iDie::lsStat::nProc_ |
Definition at line 338 of file iDie.h.
Referenced by calcStat(), and update().
unsigned int evf::iDie::lsStat::nReports_ |
Definition at line 341 of file iDie.h.
Referenced by calcStat(), getRateErrPerMachine(), getRatePerMachine(), getReports(), and update().
unsigned int evf::iDie::lsStat::nSampledIdle2_ |
Definition at line 337 of file iDie.h.
Referenced by calcStat(), and update().
unsigned int evf::iDie::lsStat::nSampledIdle_ |
Definition at line 336 of file iDie.h.
Referenced by calcStat(), getOffenderFracAt(), and update().
unsigned int evf::iDie::lsStat::nSampledNonIdle2_ |
Definition at line 335 of file iDie.h.
Referenced by calcStat(), and update().
unsigned int evf::iDie::lsStat::nSampledNonIdle_ |
Definition at line 334 of file iDie.h.
Referenced by calcStat(), getNSampledNonIdle(), getOffenderFracAt(), and update().
double evf::iDie::lsStat::rateAvg |
Definition at line 343 of file iDie.h.
Referenced by calcStat(), getRate(), and getRatePerMachine().
double evf::iDie::lsStat::rateErr |
Definition at line 344 of file iDie.h.
Referenced by calcStat(), getRateErr(), and getRateErrPerMachine().
unsigned int evf::iDie::lsStat::sumDeltaTms_ |
Definition at line 350 of file iDie.h.
Referenced by calcStat(), and update().
Definition at line 332 of file iDie.h.
Referenced by calcStat(), getDt(), getEvtTime(), getEvtTimeErr(), getFracBusy(), getFracCPUBusy(), getNSampledNonIdle(), getOffenderFracAt(), getOffendersVector(), getRate(), getRateErr(), getRateErrPerMachine(), getRatePerMachine(), and update().