X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/347996b4a10c4e8579080692afa60e0afb88b60a..69fa0c6e72fedc8b1016965248dc3c5665c24292:/src/smpi/smpi_dvfs.cpp diff --git a/src/smpi/smpi_dvfs.cpp b/src/smpi/smpi_dvfs.cpp index c0b01ac9ed..c19e14e825 100644 --- a/src/smpi/smpi_dvfs.cpp +++ b/src/smpi/smpi_dvfs.cpp @@ -1,17 +1,20 @@ -/* Copyright (c) 2013-2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2013-2017. 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. */ -#include "simgrid/plugins/energy.h" // FIXME: this plugin should be separated from the core -#include "xbt/log.h" -#include "simgrid/simix.h" -#include "smpi/smpi.h" +#include + +// FIXME: this plugin should be separated from the core +#include "simgrid/s4u/Host.hpp" +#include +#include + +#include + #include "src/internal_config.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_dvfs, smpi, - "Logging specific to SMPI (experimental DVFS support)"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_dvfs, smpi, "Logging specific to SMPI (experimental DVFS support)"); /** * \brief Return the speed of the processor (in flop/s) at a given pstate @@ -21,7 +24,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_dvfs, smpi, */ double smpi_get_host_power_peak_at(int pstate_index) { - return simcall_host_get_power_peak_at(SIMIX_host_self(), pstate_index); + return sg_host_self()->getPstateSpeed(pstate_index); } /** @@ -29,17 +32,17 @@ double smpi_get_host_power_peak_at(int pstate_index) * * \return Returns the current processor speed */ -double smpi_get_host_current_power_peak(void) +double smpi_get_host_current_power_peak() { - return simcall_host_get_current_power_peak(SIMIX_host_self()); + return sg_host_self()->speed(); } /** * \brief Return the number of pstates defined for the current host */ -int smpi_get_host_nb_pstates(void) +int smpi_get_host_nb_pstates() { - return sg_host_get_nb_pstates(SIMIX_host_self()); + return sg_host_get_nb_pstates(sg_host_self()); } /** @@ -49,15 +52,11 @@ int smpi_get_host_nb_pstates(void) */ void smpi_set_host_pstate(int pstate_index) { - sg_host_set_pstate(SIMIX_host_self(), pstate_index); + sg_host_set_pstate(sg_host_self(), pstate_index); } -/** - * \brief Gets the pstate at which the processor currently running - * - * \param pstate_index pstate to switch to - */ +/** @brief Gets the pstate at which the processor currently running */ int smpi_get_host_pstate() { - return sg_host_get_pstate(SIMIX_host_self()); + return sg_host_get_pstate(sg_host_self()); } /** @@ -65,55 +64,58 @@ int smpi_get_host_pstate() { * * \return Returns the consumed energy */ -double smpi_get_host_consumed_energy(void) { - return sg_host_get_consumed_energy(SIMIX_host_self()); +double smpi_get_host_consumed_energy() { + return sg_host_get_consumed_energy(sg_host_self()); } - -#ifdef SMPI_FORTRAN +#if SMPI_FORTRAN #if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__) typedef int integer; -typedef unsigned int uinteger; #else typedef long int integer; -typedef unsigned long int uinteger; #endif typedef char *address; typedef short int shortint; typedef float real; typedef double doublereal; -typedef struct { real r, i; } complex; -typedef struct { doublereal r, i; } doublecomplex; +typedef struct { + real r; + real i; +} complex; +typedef struct { + doublereal r; + doublereal i; +} doublecomplex; extern "C" XBT_PUBLIC(doublereal) smpi_get_host_power_peak_at_(integer *pstate_index); doublereal smpi_get_host_power_peak_at_(integer *pstate_index) { - return (doublereal)smpi_get_host_power_peak_at((int)*pstate_index); + return static_cast(smpi_get_host_power_peak_at((int)*pstate_index)); } -extern "C" XBT_PUBLIC(doublereal) smpi_get_host_current_power_peak_(void); -doublereal smpi_get_host_current_power_peak_(void) +extern "C" XBT_PUBLIC(doublereal) smpi_get_host_current_power_peak_(); +doublereal smpi_get_host_current_power_peak_() { return smpi_get_host_current_power_peak(); } -extern "C" XBT_PUBLIC(integer) smpi_get_host_nb_pstates_(void); -integer smpi_get_host_nb_pstates_(void) +extern "C" XBT_PUBLIC(integer) smpi_get_host_nb_pstates_(); +integer smpi_get_host_nb_pstates_() { - return (integer)smpi_get_host_nb_pstates(); + return static_cast(smpi_get_host_nb_pstates()); } extern "C" XBT_PUBLIC(void) smpi_set_host_pstate_(integer *pstate_index); void smpi_set_host_pstate_(integer *pstate_index) { - smpi_set_host_pstate((int)*pstate_index); + smpi_set_host_pstate(static_cast(*pstate_index)); } -extern "C" XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(void); -doublereal smpi_get_host_consumed_energy_(void) +extern "C" XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(); +doublereal smpi_get_host_consumed_energy_() { - return (doublereal)smpi_get_host_consumed_energy(); + return static_cast(smpi_get_host_consumed_energy()); } #endif