• Millian Poquet's avatar
    Implementation of the energy mechanism. · f083f79d
    Millian Poquet authored
    If the energy is enabled (by setting the -p run option), the platform is assumed to contain energy information.
    Such information is read by SimGrid itself but another ones, such as the 'sleep_pstates' property, are read by Batsim.
    A lot of assertions has been put in the reading of the platform file which will help generating energy platforms.
    An example of such a platform can be found in platforms/energy_platform.xml. This platform follows the same rules
    that those of SimGrid energy platforms but assures pstate coherency via the 'sleep_pstates' property: it says
    which pstates are sleep pstates and which pstates are its associated virtual pstates (for switching ON and OFF
    each pstate). More information can be found in the file 'platforms/energy_platform.xml'
    The scheduler can now send messages of the form TIMESTAMP:P:M=S where M is a machineID and S the asked new pstate
    for machineID. Batsim does the stuff to simulate the time & energy consumptions of the switchON/OFF (if any, you
    can also switch from one computation state to another). Once the pstate of a machine has changed, Batsim sends
    it on the socket with messages of the form TIMESTAMP:p:M=S where M is a machineID and S the new pstate of the
    corresponding machine (note the lowercase 'p' instead of an uppercase 'P').
    To simulate the energy & time costs of the switch ON/OFF, the exact same mechanism as the one presented in
    SimGrid energy 1O1 is used: computing 1 flop on virtual pstates whose computational power and power
    consumption met our time and energy consumptions needs.