Skip to content
Snippets Groups Projects
Commit b63e95fa authored by Mael Madon's avatar Mael Madon
Browse files

clean nix file and update README

parent 63e88813
No related branches found
No related tags found
1 merge request!1User aware schedulers and cloud broker done
Pipeline #6771 failed
# 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/
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment