Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
remove StateTrace from the CPU constructor
authorMartin Quinson <martin.quinson@loria.fr>
Sat, 19 Mar 2016 02:17:39 +0000 (03:17 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sun, 20 Mar 2016 00:01:28 +0000 (01:01 +0100)
This only bloats the CPU interface. People wanting to attach a trace
can do that after creation with setStateTrace.

src/surf/cpu_cas01.cpp
src/surf/cpu_cas01.hpp
src/surf/cpu_interface.hpp
src/surf/cpu_ti.cpp
src/surf/cpu_ti.hpp
src/surf/ptask_L07.cpp
src/surf/ptask_L07.hpp
src/surf/sg_platf.cpp
src/surf/vm_hl13.cpp

index deed4fd..1ccdcb8 100644 (file)
@@ -82,14 +82,12 @@ CpuCas01Model::~CpuCas01Model()
   delete p_cpuRunningActionSetThatDoesNotNeedBeingChecked;
 }
 
   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);
 {
   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*/)
 }
 
 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,
  * 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))
 : 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);
   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()
 }
 
 CpuCas01::~CpuCas01()
index 3a5a2b9..3934552 100644 (file)
@@ -27,8 +27,7 @@ public:
   CpuCas01Model();
   ~CpuCas01Model();
 
   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;
 };
   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,
 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;
   ~CpuCas01();
   void apply_event(tmgr_trace_iterator_t event, double value) override;
   CpuAction *execution_start(double size) override;
index bb4ceec..cdefec3 100644 (file)
@@ -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 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);
 
   void updateActionsStateLazy(double now, double delta);
   void updateActionsStateFull(double now, double delta);
index 81ca378..0bf0d25 100644 (file)
@@ -417,14 +417,12 @@ CpuTiModel::~CpuTiModel()
 Cpu *CpuTiModel::createCpu(simgrid::s4u::Host *host,
     xbt_dynar_t speedPeak,
     tmgr_trace_t speedTrace,
 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?");
 {
   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)
 }
 
 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,
  * 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");
   : 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);
 
   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) {
   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
     // 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);
   }
 }
 
   }
 }
 
index 2b37326..45f95fa 100644 (file)
@@ -110,9 +110,7 @@ typedef boost::intrusive::list<CpuTiAction, ActionTiListOptions > ActionTiList;
  ************/
 class CpuTi : public Cpu {
 public:
  ************/
 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;
   ~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,
   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;
 
   double next_occuring_event(double now) override;
   void updateActionsState(double now, double delta) override;
 
index 1a8eaaa..31d8c77 100644 (file)
@@ -276,10 +276,9 @@ Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst,
 }
 
 Cpu *CpuL07Model::createCpu(simgrid::s4u::Host *host,  xbt_dynar_t powerPeakList,
 }
 
 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,
 }
 
 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,
 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);
  : 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()
 }
 
 CpuL07::~CpuL07()
index 9315cd1..ea5c913 100644 (file)
@@ -55,8 +55,7 @@ public:
   ~CpuL07Model();
 
   Cpu *createCpu(simgrid::s4u::Host *host,  xbt_dynar_t speedPeakList,
   ~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;
 };
 
   HostL07Model *p_hostModel;
 };
 
@@ -80,8 +79,7 @@ public:
 
 class CpuL07 : public Cpu {
 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;
   ~CpuL07();
   bool isUsed() override;
   void apply_event(tmgr_trace_iterator_t event, double value) override;
index 11bbd18..c1b9bdf 100644 (file)
@@ -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,
   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)
   surf_host_model->createHost(host->id, netcard, cpu, host->properties)->attach(h);
 
   if (host->pstate != 0)
index b0952d3..8939028 100644 (file)
@@ -131,10 +131,9 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t hos
   CpuCas01 *sub_cpu = static_cast<CpuCas01*>(host_PM->pimpl_cpu);
 
   p_cpu = surf_cpu_model_vm->createCpu(host_VM, // the machine hosting the VM
   CpuCas01 *sub_cpu = static_cast<CpuCas01*>(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());
 
   if (sub_cpu->getPState() != 0)
     p_cpu->setPState(sub_cpu->getPState());