Skip to content
Snippets Groups Projects
Commit 93327f22 authored by Maël Madon's avatar Maël Madon
Browse files

test with old versions pybatsim

parent 4513e55a
Branches
No related tags found
No related merge requests found
from batsim.batsim import BatsimScheduler, Batsim
import sys
import os
from procset import ProcSet
from itertools import islice
class FillerSched(BatsimScheduler):
def onAfterBatsimInit(self):
self.nb_completed_jobs = 0
self.jobs_completed = []
self.jobs_waiting = []
self.sched_delay = 0.005
self.openJobs = set()
self.availableResources = ProcSet((0,self.bs.nb_compute_resources-1))
def scheduleJobs(self):
scheduledJobs = []
print('openJobs = ', self.openJobs)
print('available = ', self.availableResources)
# Iterating over a copy to be able to remove jobs from openJobs at traversal
for job in set(self.openJobs):
nb_res_req = job.requested_resources
if nb_res_req <= len(self.availableResources):
# Retrieve the *nb_res_req* first availables resources
job_alloc = ProcSet(*islice(self.availableResources, nb_res_req))
job.allocation = job_alloc
scheduledJobs.append(job)
self.availableResources -= job_alloc
self.openJobs.remove(job)
# update time
self.bs.consume_time(self.sched_delay)
# send to uds
if len(scheduledJobs) > 0:
self.bs.execute_jobs(scheduledJobs)
print('openJobs = ', self.openJobs)
print('available = ', self.availableResources)
print('')
def onJobSubmission(self, job):
if job.requested_resources > self.bs.nb_compute_resources:
self.bs.reject_jobs([job]) # This job requests more resources than the machine has
else:
self.openJobs.add(job)
self.scheduleJobs()
def onJobCompletion(self, job):
self.availableResources |= job.allocation
self.scheduleJobs()
test.nix 0 → 100644
{
kapack ? import
(fetchTarball "https://github.com/oar-team/nur-kapack/archive/901a5b656f695f2c82d17c091a55db2318ed3f39.tar.gz")
{}
, pkgs ? kapack.pkgs
, python3 ? pkgs.python3
, python3Packages ? pkgs.python3Packages
}:
let
jobs = rec {
evalys = kapack.evalys.overrideAttrs (attr: rec {
name = "evalys";
version = "d4d47bd2f4d076730b05f1345b1bf9032cd28753";
src = pkgs.fetchgit rec {
url = "https://github.com/Mema5/evalys.git";
rev = version;
sha256 = "sha256-eHGRNj2xWBoEgG2wvAZUoH1Us5d1yu9emu1Zyyms1JU=";
};
});
expe = pkgs.mkShell rec {
buildInputs = [
kapack.batsim-410
kapack.pybatsim-320
python3Packages.matplotlib
evalys
];
QT_QPA_PLATFORM_PLUGIN_PATH= with pkgs.libsForQt5.qt5; "${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms";
};
};
in
jobs
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment