/** @addtogroup MSG_examples
*
- * - <b>energy/e1/e1.c</b> Shows how a set of pstates can be defined for a host and how the current pstate can be
+ * - <b>energy-pstate/energy-pstate.c</b> Shows how a set of pstates can be defined for a host and how the current
+ * pstate can be
* accessed/changed with @ref MSG_get_host_current_power_peak and @ref MSG_set_host_pstate.
* Make sure to read the platform XML file for details on how to declare the CPU capacity for each pstate.
*/
static int dvfs(int argc, char *argv[])
{
double workload = 100E6;
- int new_peak_index=2;
msg_host_t host = MSG_host_self();
int nb = MSG_host_get_nb_pstates(host);
XBT_INFO("Task1 simulation time: %e", task_time);
// Change power peak
- if ((new_peak_index >= nb) || (new_peak_index < 0)){
- XBT_INFO("Cannot set pstate %d, host supports only %d pstates", new_peak_index, nb);
- return 0;
- }
+ int new_pstate = 2;
+ xbt_assert(new_pstate < nb, "Cannot set the host %s at pstate %d because it only provides %d pstates.",
+ MSG_host_get_name(host), new_pstate, nb);
- double peak_at = MSG_host_get_power_peak_at(host, new_peak_index);
- XBT_INFO("Changing power peak value to %f (at index %d)", peak_at, new_peak_index);
+ double peak_at = MSG_host_get_power_peak_at(host, new_pstate);
+ XBT_INFO("Changing power peak value to %f (at index %d)", peak_at, new_pstate);
- MSG_host_set_pstate(host, new_peak_index);
+ MSG_host_set_pstate(host, new_pstate);
current_peak = MSG_host_get_current_power_peak(host);
XBT_INFO("Current power peak=%f", current_peak);