~CpuTiModel();
void parseInit(sg_platf_host_cbarg_t host);
- CpuTiPtr createResource(const char *name, double power_peak, double power_scale,
+ CpuTiPtr createResource(const char *name, xbt_dynar_t powerPeak,
+ int pstate, double power_scale,
tmgr_trace_t power_trace, int core,
e_surf_resource_state_t state_initial,
tmgr_trace_t state_trace,
void addTraces();
protected:
- void NotifyResourceTurnedOn(ResourcePtr r){};
- void NotifyResourceTurnedOff(ResourcePtr r){};
+ void NotifyResourceTurnedOn(ResourcePtr){};
+ void NotifyResourceTurnedOff(ResourcePtr){};
- void NotifyActionCancel(ActionPtr a){};
- void NotifyActionResume(ActionPtr a){};
- void NotifyActionSuspend(ActionPtr a){};
+ void NotifyActionCancel(ActionPtr){};
+ void NotifyActionResume(ActionPtr){};
+ void NotifyActionSuspend(ActionPtr){};
};
/************
class CpuTi : public Cpu {
public:
CpuTi() {};
- CpuTi(CpuTiModelPtr model, const char *name, double powerPeak,
- double powerScale, tmgr_trace_t powerTrace, int core,
+ CpuTi(CpuTiModelPtr model, const char *name, xbt_dynar_t powerPeak,
+ int pstate, double powerScale, tmgr_trace_t powerTrace, int core,
e_surf_resource_state_t stateInitial, tmgr_trace_t stateTrace,
xbt_dict_t properties) ;
- ~CpuTi() {};
+ ~CpuTi();
void updateState(tmgr_trace_event_t event_type, double value, double date);
void updateActionFinishDate(double now);
- bool isUsed();
+ bool isUsed();
void printCpuTiModel();
- CpuTiModelPtr getModel();
CpuActionPtr execute(double size);
+ CpuTiActionPtr _execute(double size);
CpuActionPtr sleep(double duration);
double getAvailableSpeed();
+ xbt_dynar_t getWattsRangeList() {THROW_UNIMPLEMENTED;};
+ double getCurrentWattsValue(double /*cpu_load*/) {THROW_UNIMPLEMENTED;};
+ void updateEnergy(double /*cpu_load*/) {THROW_UNIMPLEMENTED;};
+
+ double getCurrentPowerPeak() {THROW_UNIMPLEMENTED;};
+ double getPowerPeakAt(int /*pstate_index*/) {THROW_UNIMPLEMENTED;};
+ int getNbPstates() {THROW_UNIMPLEMENTED;};
+ void setPowerPeakAt(int /*pstate_index*/) {THROW_UNIMPLEMENTED;};
+ double getConsumedEnergy() {THROW_UNIMPLEMENTED;};
+
CpuTiTgmrPtr p_availTrace; /*< Structure with data needed to integrate trace file */
- e_surf_resource_state_t p_stateCurrent; /*< CPU current state (ON or OFF) */
tmgr_trace_event_t p_stateEvent; /*< trace file with states events (ON or OFF) */
- tmgr_trace_event_t p_powerEvent; /*< trace file with availabitly events */
+ tmgr_trace_event_t p_powerEvent; /*< trace file with availability events */
xbt_swag_t p_actionSet; /*< set with all actions running on cpu */
- s_xbt_swag_hookup_t p_modifiedCpuHookup; /*< hookup to swag that indicacates whether share resources must be recalculated or not */
+ s_xbt_swag_hookup_t p_modifiedCpuHookup; /*< hookup to swag that indicates whether share resources must be recalculated or not */
double m_sumPriority; /*< the sum of actions' priority that are running on cpu */
double m_lastUpdate; /*< last update of actions' remaining amount done */
+
+ int m_pstate; /*< Current pstate (index in the power_peak_list)*/
+ double current_frequency;
+
void updateRemainingAmount(double now);
};
/**********
* Action *
**********/
+
class CpuTiAction: public CpuAction {
public:
CpuTiAction() {};
- CpuTiAction(CpuTiModelPtr model, double cost, bool failed): CpuAction(model, cost, failed) {};
+ CpuTiAction(CpuTiModelPtr model, double cost, bool failed)
+ : Action(model, cost, failed), CpuAction(model, cost, failed) {
+ p_cpuListHookup.next = 0;
+ p_cpuListHookup.prev = 0;
+ };
void setState(e_surf_action_state_t state);
int unref();
void setMaxDuration(double duration);
void setPriority(double priority);
double getRemains();
+ void setAffinity(CpuPtr /*cpu*/, unsigned long /*mask*/) {};
+ void setBound(double /*bound*/) {};
+
CpuTiPtr p_cpu;
int m_indexHeap;
-
+ s_xbt_swag_hookup_t p_cpuListHookup;
+ int m_suspended;
private:
};