This only bloats the CPU interface. People wanting to attach a trace
can do that after creation with setStateTrace.
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*/)
* 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))
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);
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;
};
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;
* @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);
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)
{
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)
* 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");
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) {
// 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);
************/
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;
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;
}
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,
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)
: 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);
~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;
};
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;
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)
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());