From: Martin Quinson Date: Sat, 19 Mar 2016 02:17:39 +0000 (+0100) Subject: remove StateTrace from the CPU constructor X-Git-Tag: v3_13~373 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/b7191e0a0c80df374d7bc4d00696578d106bd03c remove StateTrace from the CPU constructor This only bloats the CPU interface. People wanting to attach a trace can do that after creation with setStateTrace. --- diff --git a/src/surf/cpu_cas01.cpp b/src/surf/cpu_cas01.cpp index deed4fd36b..1ccdcb8426 100644 --- a/src/surf/cpu_cas01.cpp +++ b/src/surf/cpu_cas01.cpp @@ -82,14 +82,12 @@ CpuCas01Model::~CpuCas01Model() delete p_cpuRunningActionSetThatDoesNotNeedBeingChecked; } -Cpu *CpuCas01Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t state_trace) +Cpu *CpuCas01Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, tmgr_trace_t speedTrace, int core) { xbt_assert(xbt_dynar_getfirst_as(speedPeak, double) > 0.0, "Speed has to be >0.0. Did you forget to specify the mandatory power attribute?"); xbt_assert(core > 0, "Invalid number of cores %d. Must be larger than 0", core); - Cpu *cpu = new CpuCas01(this, host, speedPeak, speedTrace, core, state_trace); - return cpu; + return new CpuCas01(this, host, speedPeak, speedTrace, core); } double CpuCas01Model::next_occuring_event_full(double /*now*/) @@ -101,7 +99,7 @@ double CpuCas01Model::next_occuring_event_full(double /*now*/) * Resource * ************/ CpuCas01::CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t stateTrace) + tmgr_trace_t speedTrace, int core) : Cpu(model, host, lmm_constraint_new(model->getMaxminSystem(), this, core * xbt_dynar_get_as(speedPeak, 0/*pstate*/, double)), speedPeak, core, xbt_dynar_get_as(speedPeak, 0/*pstate*/, double)) @@ -112,9 +110,6 @@ CpuCas01::CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t s coresAmount_ = core; if (speedTrace) speed_.event = future_evt_set->add_trace(speedTrace, 0.0, this); - - if (stateTrace) - stateEvent_ = future_evt_set->add_trace(stateTrace, 0.0, this); } CpuCas01::~CpuCas01() diff --git a/src/surf/cpu_cas01.hpp b/src/surf/cpu_cas01.hpp index 3a5a2b9dbf..393455224d 100644 --- a/src/surf/cpu_cas01.hpp +++ b/src/surf/cpu_cas01.hpp @@ -27,8 +27,7 @@ public: CpuCas01Model(); ~CpuCas01Model(); - Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t state_trace) override; + Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, tmgr_trace_t speedTrace, int core) override; double next_occuring_event_full(double now) override; ActionList *p_cpuRunningActionSetThatDoesNotNeedBeingChecked; }; @@ -40,7 +39,7 @@ public: class CpuCas01 : public Cpu { public: CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t stateTrace) ; + tmgr_trace_t speedTrace, int core); ~CpuCas01(); void apply_event(tmgr_trace_iterator_t event, double value) override; CpuAction *execution_start(double size) override; diff --git a/src/surf/cpu_interface.hpp b/src/surf/cpu_interface.hpp index bb4ceecacf..cdefec3f0e 100644 --- a/src/surf/cpu_interface.hpp +++ b/src/surf/cpu_interface.hpp @@ -46,11 +46,8 @@ public: * @param speedPeak The peak spead (max speed in Flops when no external load comes from a trace) * @param speedTrace Trace variations * @param core The number of core of this Cpu - * @param state_trace [TODO] */ - virtual Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, - tmgr_trace_t state_trace)=0; + virtual Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, tmgr_trace_t speedTrace, int core)=0; void updateActionsStateLazy(double now, double delta); void updateActionsStateFull(double now, double delta); diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index 81ca378472..0bf0d2503d 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -417,14 +417,12 @@ CpuTiModel::~CpuTiModel() Cpu *CpuTiModel::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, tmgr_trace_t speedTrace, - int core, - tmgr_trace_t stateTrace) + int core) { xbt_assert(core==1,"Multi-core not handled with this model yet"); xbt_assert(xbt_dynar_getfirst_as(speedPeak, double) > 0.0, "Speed has to be >0.0. Did you forget to specify the mandatory speed attribute?"); - CpuTi *cpu = new CpuTi(this, host, speedPeak, speedTrace, core, stateTrace); - return cpu; + return new CpuTi(this, host, speedPeak, speedTrace, core); } double CpuTiModel::next_occuring_event(double now) @@ -467,8 +465,7 @@ void CpuTiModel::updateActionsState(double now, double /*delta*/) * Resource * ************/ CpuTi::CpuTi(CpuTiModel *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, - tmgr_trace_t stateTrace) + tmgr_trace_t speedTrace, int core) : Cpu(model, host, NULL, core, 0) { xbt_assert(core==1,"Multi-core not handled by this model yet"); @@ -481,18 +478,12 @@ CpuTi::CpuTi(CpuTiModel *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, xbt_dynar_get_cpy(speedPeak, 0, &speed_.peak); XBT_DEBUG("CPU create: peak=%f", speed_.peak); - if (stateTrace) - stateEvent_ = future_evt_set->add_trace(stateTrace, 0.0, this); - if (speedTrace && xbt_dynar_length(speedTrace->event_list) > 1) { - s_tmgr_event_t val; + s_tmgr_event_t val; // add a fake trace event if periodicity == 0 - xbt_dynar_get_cpy(speedTrace->event_list, - xbt_dynar_length(speedTrace->event_list) - 1, &val); - if (val.delta == 0) { - speed_.event = - future_evt_set->add_trace(tmgr_empty_trace_new(), availTrace_->lastTime_, this); - } + xbt_dynar_get_cpy(speedTrace->event_list, xbt_dynar_length(speedTrace->event_list) - 1, &val); + if (val.delta == 0) + speed_.event = future_evt_set->add_trace(tmgr_empty_trace_new(), availTrace_->lastTime_, this); } } diff --git a/src/surf/cpu_ti.hpp b/src/surf/cpu_ti.hpp index 2b37326c97..45f95fa906 100644 --- a/src/surf/cpu_ti.hpp +++ b/src/surf/cpu_ti.hpp @@ -110,9 +110,7 @@ typedef boost::intrusive::list ActionTiList; ************/ class CpuTi : public Cpu { public: - CpuTi(CpuTiModel *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, - tmgr_trace_t stateTrace) ; + CpuTi(CpuTiModel *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, tmgr_trace_t speedTrace, int core); ~CpuTi(); void setSpeedTrace(tmgr_trace_t trace) override; @@ -150,7 +148,7 @@ public: CpuTiModel(); ~CpuTiModel(); Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t state_trace) override; + tmgr_trace_t speedTrace, int core) override; double next_occuring_event(double now) override; void updateActionsState(double now, double delta) override; diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index 1a8eaaaa35..31d8c77d62 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -276,10 +276,9 @@ Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst, } Cpu *CpuL07Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t powerPeakList, - tmgr_trace_t power_trace, int core, tmgr_trace_t state_trace) + tmgr_trace_t power_trace, int core) { - CpuL07 *cpu = new CpuL07(this, host, powerPeakList, power_trace, core, state_trace); - return cpu; + return new CpuL07(this, host, powerPeakList, power_trace, core); } Link* NetworkL07Model::createLink(const char *name, double bandwidth, double latency, @@ -300,16 +299,13 @@ Link* NetworkL07Model::createLink(const char *name, double bandwidth, double lat CpuL07::CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, tmgr_trace_t speedTrace, - int core, tmgr_trace_t state_trace) + int core) : Cpu(model, host, speedPeakList, core, xbt_dynar_get_as(speedPeakList,0,double)) { p_constraint = lmm_constraint_new(model->getMaxminSystem(), this, xbt_dynar_get_as(speedPeakList,0,double)); if (speedTrace) speed_.event = future_evt_set->add_trace(speedTrace, 0.0, this); - - if (state_trace) - stateEvent_ = future_evt_set->add_trace(state_trace, 0.0, this); } CpuL07::~CpuL07() diff --git a/src/surf/ptask_L07.hpp b/src/surf/ptask_L07.hpp index 9315cd1f95..ea5c913d80 100644 --- a/src/surf/ptask_L07.hpp +++ b/src/surf/ptask_L07.hpp @@ -55,8 +55,7 @@ public: ~CpuL07Model(); Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, - tmgr_trace_t speedTrace, int core, - tmgr_trace_t state_trace) override; + tmgr_trace_t speedTrace, int core) override; HostL07Model *p_hostModel; }; @@ -80,8 +79,7 @@ public: class CpuL07 : public Cpu { public: - CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, - tmgr_trace_t power_trace, int core, tmgr_trace_t state_trace); + CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, tmgr_trace_t power_trace, int core); ~CpuL07(); bool isUsed() override; void apply_event(tmgr_trace_iterator_t event, double value) override; diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 11bbd1879e..c1b9bdfe7d 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -116,8 +116,9 @@ void sg_platf_new_host(sg_platf_host_cbarg_t host) simgrid::surf::Cpu *cpu = surf_cpu_model_pm->createCpu( h, host->speed_peak, host->speed_trace, - host->core_amount, - host->state_trace); + host->core_amount); + if (host->state_trace) + cpu->setStateTrace(host->state_trace); surf_host_model->createHost(host->id, netcard, cpu, host->properties)->attach(h); if (host->pstate != 0) diff --git a/src/surf/vm_hl13.cpp b/src/surf/vm_hl13.cpp index b0952d3446..893902807d 100644 --- a/src/surf/vm_hl13.cpp +++ b/src/surf/vm_hl13.cpp @@ -131,10 +131,9 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t hos CpuCas01 *sub_cpu = static_cast(host_PM->pimpl_cpu); p_cpu = surf_cpu_model_vm->createCpu(host_VM, // the machine hosting the VM - sub_cpu->getSpeedPeakList(), // host->power_peak, - NULL, // host->power_trace, - 1, // host->core_amount, - NULL); // host->state_trace, + sub_cpu->getSpeedPeakList(), // host->speed_peak, + NULL, // host->speed_trace, + 1); // host->core_amount, if (sub_cpu->getPState() != 0) p_cpu->setPState(sub_cpu->getPState());