* under the terms of the license (GNU LGPL) which comes with this package. */
#include "cpu_ti.hpp"
+#include "src/surf/surf_interface.hpp"
#include "src/surf/trace_mgr.hpp"
-#include "xbt/utility.hpp"
-#include <algorithm>
+#include "surf/surf.hpp"
#ifndef SURF_MODEL_CPUTI_H_
#define SURF_MODEL_CPUTI_H_
delete [] integral_;
}
-CpuTiTgmr::~CpuTiTgmr()
+CpuTiTmgr::~CpuTiTmgr()
{
if (trace_)
delete trace_;
* \param b End of interval
* \return the integrate value. -1 if an error occurs.
*/
-double CpuTiTgmr::integrate(double a, double b)
+double CpuTiTmgr::integrate(double a, double b)
{
int a_index;
* \param amount Amount to be executed
* \return End time
*/
-double CpuTiTgmr::solve(double a, double amount)
+double CpuTiTmgr::solve(double a, double amount)
{
/* Fix very small negative numbers */
if ((a < 0.0) && (a > -EPSILON)) {
* \param a Time
* \return CPU speed scale
*/
-double CpuTiTgmr::get_power_scale(double a)
+double CpuTiTmgr::get_power_scale(double a)
{
double reduced_a = a - floor(a / last_time_) * last_time_;
int point = trace_->binary_search(trace_->time_points_, reduced_a, 0, trace_->nb_points_ - 1);
* \param value Percentage of CPU speed available (useful to fixed tracing)
* \return Integration trace structure
*/
-CpuTiTgmr::CpuTiTgmr(tmgr_trace_t speedTrace, double value) : speed_trace_(speedTrace)
+CpuTiTmgr::CpuTiTmgr(tmgr_trace_t speedTrace, double value) : speed_trace_(speedTrace)
{
double total_time = 0.0;
trace_ = 0;
speed_.peak = speedPerPstate->front();
XBT_DEBUG("CPU create: peak=%f", speed_.peak);
- speed_integrated_trace_ = new CpuTiTgmr(nullptr, 1 /*scale*/);
+ speed_integrated_trace_ = new CpuTiTmgr(nullptr, 1 /*scale*/);
}
CpuTi::~CpuTi()
if (speed_integrated_trace_)
delete speed_integrated_trace_;
- speed_integrated_trace_ = new CpuTiTgmr(trace, speed_.scale);
+ speed_integrated_trace_ = new CpuTiTmgr(trace, speed_.scale);
/* add a fake trace event if periodicity == 0 */
if (trace && trace->event_list.size() > 1) {
{
if (event == speed_.event) {
tmgr_trace_t speedTrace;
- CpuTiTgmr *trace;
+ CpuTiTmgr* trace;
XBT_DEBUG("Finish trace date: value %f", value);
/* update remaining of actions and put in modified cpu list */
delete speed_integrated_trace_;
speed_.scale = val.value_;
- trace = new CpuTiTgmr(TRACE_FIXED, val.value_);
+ trace = new CpuTiTmgr(TRACE_FIXED, val.value_);
XBT_DEBUG("value %f", val.value_);
speed_integrated_trace_ = trace;
} else if (event == stateEvent_) {
if (value > 0) {
- if(isOff())
+ if (is_off())
host_that_restart.push_back(getHost());
- turnOn();
+ turn_on();
} else {
- turnOff();
+ turn_off();
double date = surf_get_clock();
/* put all action running on cpu to failed */
action.get_state() == kernel::resource::Action::State::not_in_the_system) {
action.set_finish_time(date);
action.set_state(kernel::resource::Action::State::failed);
- model()->get_action_heap().remove(&action);
+ get_model()->get_action_heap().remove(&action);
}
}
}
}
/* add in action heap */
if (min_finish > NO_MAX_DURATION)
- model()->get_action_heap().update(&action, min_finish, kernel::resource::ActionHeap::Type::unset);
+ get_model()->get_action_heap().update(&action, min_finish, kernel::resource::ActionHeap::Type::unset);
else
- model()->get_action_heap().remove(&action);
+ get_model()->get_action_heap().remove(&action);
- XBT_DEBUG("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f", getCname(),
+ XBT_DEBUG("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f", get_cname(),
&action, action.get_start_time(), action.get_finish_time(), action.get_max_duration());
}
/* remove from modified cpu */
XBT_DEBUG("Flops total: %f, Last update %f", area_total, last_update_);
for (CpuTiAction& action : action_set_) {
/* action not running, skip it */
- if (action.get_state_set() != model()->get_running_action_set())
+ if (action.get_state_set() != get_model()->get_running_action_set())
continue;
/* bogus priority, skip it */
CpuAction *CpuTi::execution_start(double size)
{
- XBT_IN("(%s,%g)", getCname(), size);
- CpuTiAction* action = new CpuTiAction(static_cast<CpuTiModel*>(model()), size, isOff(), this);
+ XBT_IN("(%s,%g)", get_cname(), size);
+ CpuTiAction* action = new CpuTiAction(static_cast<CpuTiModel*>(get_model()), size, is_off(), this);
action_set_.push_back(*action);
if (duration > 0)
duration = std::max(duration, sg_surf_precision);
- XBT_IN("(%s,%g)", getCname(), duration);
- CpuTiAction* action = new CpuTiAction(static_cast<CpuTiModel*>(model()), 1.0, isOff(), this);
+ XBT_IN("(%s,%g)", get_cname(), duration);
+ CpuTiAction* action = new CpuTiAction(static_cast<CpuTiModel*>(get_model()), 1.0, is_off(), this);
action->set_max_duration(duration);
action->suspended_ = kernel::resource::Action::SuspendStates::sleeping;
if (duration == NO_MAX_DURATION) {
/* Move to the *end* of the corresponding action set. This convention is used to speed up update_resource_state */
simgrid::xbt::intrusive_erase(*action->get_state_set(), *action);
- action->state_set_ = &static_cast<CpuTiModel*>(model())->runningActionSetThatDoesNotNeedBeingChecked_;
+ action->state_set_ = &static_cast<CpuTiModel*>(get_model())->runningActionSetThatDoesNotNeedBeingChecked_;
action->get_state_set()->push_back(*action);
}
void CpuTi::set_modified(bool modified)
{
- CpuTiList& modifiedCpu = static_cast<CpuTiModel*>(model())->modified_cpus_;
+ CpuTiList& modifiedCpu = static_cast<CpuTiModel*>(get_model())->modified_cpus_;
if (modified) {
if (not cpu_ti_hook.is_linked()) {
modifiedCpu.push_back(*this);