1. 10 Aug, 2016 1 commit
    • Millian Poquet's avatar
      Towards dynamic jobs: memory management. · e8d4f5c2
      Millian Poquet authored
      Dynamic jobs are now added into Batsim data structures when the server
      received a JOB_SUBMITTED message if needed.
      To do so, methods have been added in the data structures (Jobs, Profiles,
      Furthermore, the JSON parsing is a bit cleaner now to avoid code redundancy.
  2. 04 Aug, 2016 2 commits
    • Millian Poquet's avatar
      Submitter/Server protocol improved. · b0a3b6a9
      Millian Poquet authored
      Submitters can now identify themselves, which allows
      a callback mechanism when jobs are completed.
      The submitters which want this callback mechanism
      should enable it when saying HELLO to the server,
      then, all jobs submiitted by this submitter will
      generate a callback once they complete.
    • Millian Poquet's avatar
      Major commit: multiple workloads. · 3ecccd22
      Millian Poquet authored
      This commit is a big step forward to handle multiple workloads at the same time.
      Protocol update. Jobs are no longer identified only by a unique number, but
      by a workload_name and a unique number within this workload_name. The separator
      between these two fields is '!'. The default workload, the one read from the
      input JSON file, is called "static". If the scheduler gives an order about
      a job by only calling it by its unique number, the 'static' workload is
      assumed, for compatibility reasons.
      Batsim code update. There is no longer "Jobs" and "Profiles" roaming in the
      BatsimContext. Now, Jobs and Profiles are grouped together inside one Workload
      instance. Different Workload instances can be stored into a Workloads (note
      the 's'!), which is just a map<string, Workload*> with wrapping methods
      to simplify job handling. A Workloads is instanciated in the BatsimContext.
      Batsim code update. Jobs are now identified by a structure JobIdentifier.
      This struct is just a string (the workload name) and an integer (the unique
      job number within its workload). JobIdentifier are used within most
      ipp messages now. Furthermore, jobs know in which workload they are,
      and Jobs know in which Workload they are.
      Batsim tests pass this commit, but a Redis server should be launched to
      avoid assertion fails. Redis is not yet used on the scheduler side,
      this part has not been tested yet. Travis has not been updated yet to
      install and execute Redis, so the tests won't work on Travis at the moment.
  3. 21 Jun, 2016 1 commit
  4. 02 May, 2016 1 commit
  5. 28 Apr, 2016 1 commit
  6. 29 Mar, 2016 1 commit
  7. 26 Jan, 2016 1 commit
    • Millian Poquet's avatar
      Machine: ranges are now used instead of sets. · 4567c6dd
      Millian Poquet authored
      This modification impacts all parts of Batsim in which machines were involved.
      The protocol has also been updated to allow the scheduler to send machine ranges
      in its allocations. The previous syntax is still supported. Now, each comma-separated
      value can either be 1 machineID or a range of machineIDs (syntax: machineIDa-machineIDb
      to represent the closed interval [machineIDa, machineIDb]).
      Please note that Batsim has been only been tested with old schedulers (that do not
      support the new protocol syntax).
  8. 11 Jan, 2016 1 commit
  9. 05 Jan, 2016 1 commit
  10. 19 Dec, 2015 1 commit
  11. 17 Dec, 2015 1 commit
    • 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.
  12. 14 Dec, 2015 1 commit
  13. 20 Nov, 2015 1 commit