From b63e95fad46962572b1f1d6db5bda979ca20dae0 Mon Sep 17 00:00:00 2001 From: Mael Madon <mael.madon@irit.fr> Date: Tue, 25 Jan 2022 10:21:05 +0100 Subject: [PATCH] clean nix file and update README --- README.md | 12 +++++----- default.nix | 64 ----------------------------------------------------- 2 files changed, 7 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 889e271..143fe0a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +# batmen Forked from https://framagit.org/batsim/batsched ## Install @@ -10,15 +11,16 @@ ninja -C build # compile the project into the build directory ``` ## What differs from the master version of batsched? +New paradigm: we implemented a "cloud broker" allowing to model the interaction with the users. This cloud broker is able to dynamically register new jobs to sumbit on top of the static workload during the scheduling. This way we can represent different category of users and model their behavior in response to feedback. +For now this paradigm is supported by all the schedulers inheriting from the class `DynScheduler` ie all the custom schedulers located in folder `src/algo_perso`. It uses the modules in the folder in folder `src/broker`: +- *dynscheduler*: superclass managing the interaction with the broker from which the scheduling algorithms inherit +- *cloud_broker*: implement the broker itself, submitting the jobs on behalf of the users +- *user*: an individual user, submitting her jobs to the broker + New algorithms implemented (in folder `src/algo_perso`): - *multicore_filler*: one job at a time on only one multicore host. Developped for testing the multicore management in batsim/simgrid - *bin_packing*: the scheduler packs the jobs on the least number of multicore hosts. Each job runs on only one host but can take several cores - *bin_packing_energy*: same as *bin_packing* but switches of the hosts as soon as they are idle and power them on again when needed -New paradigm: we implemented a "cloud broker" allowing to model the interaction with the users. This cloud broker is able to dynamically register new jobs to sumbit on top of the static workload during the scheduling. This way we can represent different category of users and model their behavior in response to feedback. -For now this paradigm is supported by the custom schedulers in folder `src/algo_perso`. It uses the modules in the folder in folder `src/broker`: -- *dynscheduler*: superclass managing the interaction with the broker from which the scheduling algorithms inherit -- *cloud_broker*: implement the broker itself, submitting the jobs on behalf of the users -- *user*: an individual user, submitting her jobs to the broker [Nix]: https://nixos.org/nix/ diff --git a/default.nix b/default.nix index e7d48c9..0881eb6 100644 --- a/default.nix +++ b/default.nix @@ -4,7 +4,6 @@ , doCheck ? false , doCoverage ? true , batsim ? kapack.batsim -, batsim-master ? kapack.batsim-master , batexpe ? kapack.batexpe }: @@ -45,13 +44,10 @@ let }); my-simgrid = kapack.simgrid-light.overrideAttrs(old: rec { - # version = "28673cdf9acc5794e982dc71da8bf2eb23600205"; version = "33035e7eeaee7a34efd75d675555eec32d34856a"; src = kapack.pkgs.fetchgit rec { - # url = "https://framagit.org/Mema5/simgrid.git"; url = "https://framagit.org/simgrid/simgrid.git"; rev = version; - # sha256 = "14l5ymmlz9qkxzd7b7qckg1lfz6n0gmx39xdlnh9rhwracqnczjy"; sha256 = "0a2w8qzw5sa7rccn6m0r6ifjcvzyadijfg8p3g2j6nhpav2rm2l7"; }; patches = []; @@ -113,66 +109,6 @@ let mv ./gcda $out/ ''; }; - # Essentially the same as integration_tests, but with an up-to-date Batsim. - # integration_tests_batlatest = integration_tests.overrideAttrs (attr: rec { - # buildInputs = with pkgs.python37Packages; [ - # batsim-master batsched batexpe - # pytest pytest_html pandas]; - # }); - - # Batsched doxygen documentation. - # doxydoc = pkgs.stdenv.mkDerivation rec { - # name = "batsim-doxygen-documentation"; - # src = pkgs.lib.sourceByRegex ./. [ - # "^src" - # "^src/.*\.?pp" - # "^doc" - # "^doc/Doxyfile" - # "^doc/doxygen_mainpage.md" - # ]; - # buildInputs = [pkgs.doxygen]; - # buildPhase = "(cd doc && doxygen)"; - # installPhase = '' - # mkdir -p $out - # mv doc/doxygen_doc/html/* $out/ - # ''; - # checkPhase = '' - # nb_warnings=$(cat doc/doxygen_warnings.log | wc -l) - # if [[ $nb_warnings -gt 0 ]] ; then - # echo "FAILURE: There are doxygen warnings!" - # cat doc/doxygen_warnings.log - # exit 1 - # fi - # ''; - # doCheck = true; - # }; - - # Dependencies not in nixpkgs as I write these lines. - pytest_metadata = buildPythonPackage { - name = "pytest-metadata-1.8.0"; - doCheck = false; - propagatedBuildInputs = [ - pythonPackages.pytest - pythonPackages.setuptools_scm - ]; - src = builtins.fetchurl { - url = "https://files.pythonhosted.org/packages/12/38/eed3a1e00c765e4da61e4e833de41c3458cef5d18e819d09f0f160682993/pytest-metadata-1.8.0.tar.gz"; - sha256 = "1fk6icip2x1nh4kzhbc8cnqrs77avpqvj7ny3xadfh6yhn9aaw90"; - }; - }; - - pytest_html = buildPythonPackage { - name = "pytest-html-1.20.0"; - doCheck = false; - propagatedBuildInputs = [ - pythonPackages.pytest - pytest_metadata - ]; - src = builtins.fetchurl { - url = "https://files.pythonhosted.org/packages/08/3e/63d998f26c7846d3dac6da152d1b93db3670538c5e2fe18b88690c1f52a7/pytest-html-1.20.0.tar.gz"; - sha256 = "17jyn4czkihrs225nkpj0h113hc03y0cl07myb70jkaykpfmrim7"; - }; - }; }; in jobs -- GitLab