X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/45c3f1cfee86fb48c96d53f8267f99b6db6e3d7a..e9f0018b823e34405847177b25a85d3facc30ae1:/src/smpi/smpi_dvfs.c diff --git a/src/smpi/smpi_dvfs.c b/src/smpi/smpi_dvfs.c index a8ab0ae107..6b8d99e186 100644 --- a/src/smpi/smpi_dvfs.c +++ b/src/smpi/smpi_dvfs.c @@ -1,12 +1,14 @@ -/* Copyright (c) 2013-2014. The SimGrid Team. +/* Copyright (c) 2013-2015. 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 "src/internal_config.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_dvfs, smpi, "Logging specific to SMPI (experimental DVFS support)"); @@ -33,21 +35,29 @@ double smpi_get_host_current_power_peak(void) } /** - * \brief Return the number of pstates defined for host + * \brief Return the number of pstates defined for the current host */ int smpi_get_host_nb_pstates(void) { - return simcall_host_get_nb_pstates(SIMIX_host_self()); + return sg_host_get_nb_pstates(SIMIX_host_self()); } /** - * \brief Sets the speed of the processor (in flop/s) at a given pstate + * \brief Sets the pstate at which the processor should run * * \param pstate_index pstate to switch to */ -void smpi_set_host_power_peak_at(int pstate_index) +void smpi_set_host_pstate(int pstate_index) { - simcall_host_set_power_peak_at(SIMIX_host_self(), pstate_index); + sg_host_set_pstate(SIMIX_host_self(), pstate_index); +} +/** + * \brief Gets the pstate at which the processor currently running + * + * \param pstate_index pstate to switch to + */ +int smpi_get_host_pstate() { + return sg_host_get_pstate(SIMIX_host_self()); } /** @@ -55,14 +65,26 @@ void smpi_set_host_power_peak_at(int pstate_index) * * \return Returns the consumed energy */ -double smpi_get_host_consumed_energy(void) -{ - return simcall_host_get_consumed_energy(SIMIX_host_self()); +double smpi_get_host_consumed_energy(void) { + return sg_host_get_consumed_energy(SIMIX_host_self()); } -#include "smpi/smpif.h" -#ifdef SMPI_F2C +#ifdef 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; XBT_PUBLIC(doublereal) smpi_get_host_power_peak_at_(integer *pstate_index); doublereal smpi_get_host_power_peak_at_(integer *pstate_index) @@ -82,10 +104,10 @@ integer smpi_get_host_nb_pstates_(void) return (integer)smpi_get_host_nb_pstates(); } -XBT_PUBLIC(void) smpi_set_host_power_peak_at_(integer *pstate_index); -void smpi_set_host_power_peak_at_(integer *pstate_index) +XBT_PUBLIC(void) smpi_set_host_pstate_(integer *pstate_index); +void smpi_set_host_pstate_(integer *pstate_index) { - smpi_set_host_power_peak_at((int)*pstate_index); + smpi_set_host_pstate((int)*pstate_index); } XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(void);