X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f409d6f711ba652a6fd78e185791cf7870b6765d..5ac15923176130dc8e7274efb80fe108cc4bed02:/src/plugins/host_dvfs.cpp diff --git a/src/plugins/host_dvfs.cpp b/src/plugins/host_dvfs.cpp index 4c203c2d02..5becbc1b3f 100644 --- a/src/plugins/host_dvfs.cpp +++ b/src/plugins/host_dvfs.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -121,7 +121,7 @@ public: const char* local_max_pstate_config = host_->get_property(cfg_max_pstate.get_name()); if (local_max_pstate_config != nullptr) { - max_pstate = std::stod(local_max_pstate_config); + max_pstate = std::stoi(local_max_pstate_config); } xbt_assert(max_pstate <= host_->get_pstate_count() - 1, "Value for max_pstate too large!"); xbt_assert(min_pstate <= max_pstate, "min_pstate is larger than max_pstate!"); @@ -206,7 +206,7 @@ public: */ // Load is now < freq_up_threshold; exclude pstate 0 (the fastest) // because pstate 0 can only be selected if load > freq_up_threshold_ - int new_pstate = get_max_pstate() - load * (get_max_pstate() + 1); + int new_pstate = static_cast(get_max_pstate() - load * (get_max_pstate() + 1)); if (new_pstate < get_min_pstate()) new_pstate = get_min_pstate(); get_host()->set_pstate(new_pstate); @@ -295,11 +295,11 @@ public: task_id = 0; } }); - simgrid::s4u::Exec::on_start.connect([this](simgrid::s4u::Actor const&, simgrid::s4u::Exec const& activity) { + simgrid::s4u::Exec::on_start.connect([this](simgrid::s4u::Exec const& activity) { if (activity.get_host() == get_host()) pre_task(); }); - simgrid::s4u::Exec::on_completion.connect([this](simgrid::s4u::Actor const&, simgrid::s4u::Exec const& activity) { + simgrid::s4u::Exec::on_completion.connect([this](simgrid::s4u::Exec const& activity) { // For more than one host (not yet supported), we can access the host via // simcalls_.front()->issuer->get_iface()->get_host() if (activity.get_host() == get_host() && iteration_running) { @@ -391,25 +391,20 @@ static void on_host_added(simgrid::s4u::Host& host) } auto governor = [&dvfs_governor, &daemon_proc]() -> std::unique_ptr { - if (dvfs_governor == "conservative") { + if (dvfs_governor == "conservative") return std::make_unique(daemon_proc->get_host()); - } else if (dvfs_governor == "ondemand") { + if (dvfs_governor == "ondemand") return std::make_unique(daemon_proc->get_host()); - } #if HAVE_SMPI - else if (dvfs_governor == "adagio") { + if (dvfs_governor == "adagio") return std::make_unique(daemon_proc->get_host()); - } #endif - else if (dvfs_governor == "performance") { - return std::make_unique(daemon_proc->get_host()); - } else if (dvfs_governor == "powersave") { + if (dvfs_governor == "powersave") return std::make_unique(daemon_proc->get_host()); - } else { + if (dvfs_governor != "performance") XBT_CRITICAL("No governor specified for host %s, falling back to Performance", daemon_proc->get_host()->get_cname()); - return std::make_unique(daemon_proc->get_host()); - } + return std::make_unique(daemon_proc->get_host()); }(); while (true) {