1 /* Copyright (c) 2013-2014. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
8 #include "simgrid/simix.h"
10 #include "internal_config.h"
12 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_dvfs, smpi,
13 "Logging specific to SMPI (experimental DVFS support)");
16 * \brief Return the speed of the processor (in flop/s) at a given pstate
18 * \param pstate_index pstate to test
19 * \return Returns the processor speed associated with pstate_index
21 double smpi_get_host_power_peak_at(int pstate_index)
23 return simcall_host_get_power_peak_at(SIMIX_host_self(), pstate_index);
27 * \brief Return the current speed of the processor (in flop/s)
29 * \return Returns the current processor speed
31 double smpi_get_host_current_power_peak(void)
33 return simcall_host_get_current_power_peak(SIMIX_host_self());
37 * \brief Return the number of pstates defined for host
39 int smpi_get_host_nb_pstates(void)
41 return simcall_host_get_nb_pstates(SIMIX_host_self());
45 * \brief Sets the speed of the processor (in flop/s) at a given pstate
47 * \param pstate_index pstate to switch to
49 void smpi_set_host_power_peak_at(int pstate_index)
51 simcall_host_set_power_peak_at(SIMIX_host_self(), pstate_index);
55 * \brief Return the total energy consumed by a host (in Joules)
57 * \return Returns the consumed energy
59 double smpi_get_host_consumed_energy(void)
61 return simcall_host_get_consumed_energy(SIMIX_host_self());
67 #if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
69 typedef unsigned int uinteger;
71 typedef long int integer;
72 typedef unsigned long int uinteger;
74 typedef char *address;
75 typedef short int shortint;
77 typedef double doublereal;
78 typedef struct { real r, i; } complex;
79 typedef struct { doublereal r, i; } doublecomplex;
81 XBT_PUBLIC(doublereal) smpi_get_host_power_peak_at_(integer *pstate_index);
82 doublereal smpi_get_host_power_peak_at_(integer *pstate_index)
84 return (doublereal)smpi_get_host_power_peak_at((int)*pstate_index);
87 XBT_PUBLIC(doublereal) smpi_get_host_current_power_peak_(void);
88 doublereal smpi_get_host_current_power_peak_(void)
90 return smpi_get_host_current_power_peak();
93 XBT_PUBLIC(integer) smpi_get_host_nb_pstates_(void);
94 integer smpi_get_host_nb_pstates_(void)
96 return (integer)smpi_get_host_nb_pstates();
99 XBT_PUBLIC(void) smpi_set_host_power_peak_at_(integer *pstate_index);
100 void smpi_set_host_power_peak_at_(integer *pstate_index)
102 smpi_set_host_power_peak_at((int)*pstate_index);
105 XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(void);
106 doublereal smpi_get_host_consumed_energy_(void)
108 return (doublereal)smpi_get_host_consumed_energy();