• 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.
    3ecccd22
jobs.cpp 5.21 KB