Commit e825cf10 authored by Millian Poquet's avatar Millian Poquet
Browse files

[doc] README update + changelog

parent b4e114f5
Pipeline #677 failed with stages
in 4 minutes and 11 seconds
Batsim Batsim
====== ======
Batsim is a Batch Scheduler Simulator. A Batch scheduler -- AKA Resources and Batsim is a Batch scheduler simulator.
Jobs Management System (RJMS) -- is a system that manages resources in A batch scheduler -- AKA Resources and Jobs Management System (RJMS) --
large-scale computing centers, notably by scheduling and placing jobs, and by is a system that manages resources in large-scale computing centers,
setting up energy policies. Batsim is open source and distributed under notably by scheduling and placing jobs, and by setting up energy policies.
LGPL-3.0 license. See [COPYING](COPYING) for more details. Batsim is open source and distributed under LGPL-3.0 license.
See [COPYING](COPYING) for more details.
Batsim simulates the computing center behaviour. It is made such that any ![Batsim overview figure]
event-based scheduling algorithm can be plugged to it. Thus, it permits to
compare decision algorithms coming from production and academics worlds.
Here is an overview of how Batsim works in comparison with real executions. Batsim simulates a computing center behavior.
It is made such that any event-based scheduling algorithm can be plugged to it.
![Batsim vs. real] Thus, it allows to compare decision algorithms coming from production and
academics worlds.
And here is a Batsim simulation overview from a different point of view.
![Batsim archi layer]
Quick links Quick links
----------- -----------
- The [contribute](doc/contribute.md) page tells how to contribute to Batsim - The [contribute](doc/contribute.md) page tells how to contribute to Batsim
- The [changelog](doc/changelog.md) summarizes information about the project
evolution.
- Tutorials shows how to use Batsim and how it works: - Tutorials shows how to use Batsim and how it works:
- The [usage tutorial](doc/tuto_usage.md) explains how to execute a Batsim - The [usage tutorial](doc/tuto_usage.md) explains how to execute a Batsim
simulation, and how to setup a development docker environment simulation, and how to setup a development docker environment
...@@ -72,24 +70,26 @@ External References ...@@ -72,24 +70,26 @@ External References
* Batsim internal documentation can be found * Batsim internal documentation can be found
[there](http://batsim.gforge.inria.fr/). [there](http://batsim.gforge.inria.fr/).
Build status Build and code status
------------ ------------
| [master][master-link] | [upstream_sg (recent SimGrid)][upstream_sg-link] | | [master][master-link] | [upstream_sg (recent SimGrid)][upstream_sg-link] | [codacy][codacy-link] |
| :-------------------: | :----------------------------------------------: | | :-------------------: | :----------------------------------------------: | :-------------------: |
| ![master-badge] | ![upstream_sg-badge] | | ![master-badge] | ![upstream_sg-badge] | ![codacy-badge] |
[master-badge]: https://gitlab.inria.fr/batsim/batsim/badges/master/build.svg "Gitlab CI build status (master branch)" [master-badge]: https://gitlab.inria.fr/batsim/batsim/badges/master/build.svg "Gitlab CI build status (master branch)"
[master-link]: https://gitlab.inria.fr/batsim/batsim/pipelines "Gitlab CI build status" [master-link]: https://gitlab.inria.fr/batsim/batsim/pipelines "Gitlab CI build status"
[upstream_sg-badge]: https://gitlab.inria.fr/batsim/batsim/badges/upstream_sg/build.svg "Gitlab CI build status (upstream_sg branch)" [upstream_sg-badge]: https://gitlab.inria.fr/batsim/batsim/badges/upstream_sg/build.svg "Gitlab CI build status (upstream_sg branch)"
[upstream_sg-link]: https://gitlab.inria.fr/batsim/batsim/pipelines "Gitlab CI build status" [upstream_sg-link]: https://gitlab.inria.fr/batsim/batsim/pipelines "Gitlab CI build status"
[codacy-badge]: https://api.codacy.com/project/badge/Grade/e5990f2e9abc4573b13a0b8c9d9e0f08 "Codacy code style"
[codacy-link]: https://www.codacy.com/app/mpoquet/batsim/dashboard
Batsim uses Gitlab CI as its continuous integration system. Batsim uses Gitlab CI as its continuous integration system.
Build status of the different commits can be found Build status of the different commits can be found
[there](https://gitlab.inria.fr/batsim/batsim/pipelines). [there](https://gitlab.inria.fr/batsim/batsim/pipelines).
More information about our CI setup can be found More information about our CI setup can be found
[there](./doc/continuous_integration.md) [there](./doc/continuous_integration.md).
Development environment Development environment
------------------------- -------------------------
...@@ -136,11 +136,15 @@ Also, some tools can be found in the [tools](./tools) directory: ...@@ -136,11 +136,15 @@ Also, some tools can be found in the [tools](./tools) directory:
Write your own scheduler (or adapt an existing one) Write your own scheduler (or adapt an existing one)
--------------------------------------------------- ---------------------------------------------------
As Batsim is using a text-based protocol, your scheduler has to implement this Schedulers must follow a text-based protocol to communicate with Batsim.
protocol: For more detail on the protocol, see [protocol description]. More details about the protocol can be found in the [protocol description].
A good starting point is Pybatsim which helps you to easily implement your You may also base your work on existing Batsim-compatible schedulers:
scheduling policy in Python. See the [pybatsim folder] for more details. - C++: [batsched][batsched gitlab]
- D: [datsched][datsched gitlab]
- Perl: [there][perl sched repo] (deprecated).
- Python: [pybatsim][pybatsim gitlab]
- Rust: [there][rust sched repo]
Installation Installation
------------ ------------
...@@ -283,11 +287,15 @@ Other options: ...@@ -283,11 +287,15 @@ Other options:
If you want to run more complex scenarios, giving a look at our If you want to run more complex scenarios, giving a look at our
[experiment tools](./tools/experiments) may save you some time! [experiment tools](./tools/experiments) may save you some time!
[Batsim vs. real]: ./doc/batsim_overview.png [Batsim overview figure]: ./doc/batsim_rjms_overview.png
[Batsim archi layer]: ./doc/batsim_archi_layer.png
[./publications/Batsim\_JSSPP\_2016.pdf]: ./publications/Batsim_JSSPP_2016.pdf [./publications/Batsim\_JSSPP\_2016.pdf]: ./publications/Batsim_JSSPP_2016.pdf
[Evalys]: https://github.com/oar-team/evalys [Evalys]: https://github.com/oar-team/evalys
[Vite]: http://vite.gforge.inria.fr/ [Vite]: http://vite.gforge.inria.fr/
[protocol description]: ./doc/proto_description.md [protocol description]: ./doc/proto_description.md
[pybatsim folder]: ./schedulers/pybatsim/
[oar3]: https://github.com/oar-team/oar3 [oar3]: https://github.com/oar-team/oar3
[pybatsim gitlab]: https://gitlab.inria.fr/batsim/pybatsim
[batsched gitlab]: https://gitlab.inria.fr/batsim/batsched
[datsched gitlab]: https://gitlab.inria.fr/batsim/datsched
[rust sched repo]: https://gitlab.inria.fr/adfaure/schedulers
[perl sched repo]: https://github.com/fernandodeperto/batch-simulator
This diff is collapsed.
This diff is collapsed.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog][changelog].
Batsim adheres to [Semantic Versioning][semver] from version 1.0.0.
Batsim's public API includes:
- The Batsim's command-line interface.
- The Batsim input files format.
- The communication protocol with the decision-making component.
[//]: ==========================================================================
## Unreleased
[//]: ==========================================================================
## 1.0.0 - 2017-09-09
### Added
- Stated LGPL-3.0 license.
- Code cosmetics standards are now checked by Codacy.
- New PFS host. Associated with a new ``hpst-host`` command-line option.
- New protocol messages:
- The ``CHANGE_JOB_STATE`` allows the scheduler to change the state of jobs
in Batsim in-memory data structures.
- The ``submission_finished`` notification can be cancelled with a
``continue_submission`` notification.
- New data in existing protocol messages:
- ``SIMULATION_BEGINS``:
- ``allow_time_sharing`` boolean is now forwarded.
- ``resources_data`` gives information on the resources.
- ``hpst_host`` and ``lcst_host give information about the
parallel file system.
- ``JOB_COMPLETED``:
- ``job_state`` contains the job state (as stored by Batsim).
- ``kill_reason`` contains why the job has been killed (if relevant).
- New tests:
- ``demo`` corresponds to the documented demonstration.
- ``energy_minimal`` and ``energy_small`` test the energy plugin in detail.
- ``kill_multiple`` checks that Batsim can handle multiple kills concerning
the same jobs.
- ``fewer_resources`` checks that complex job mapping work
- ``reject`` tests whether rejection works
### Modified
- Improved and renamed parallel file system profiles.
- Improved code documentation.
- Improved the python scripts of the tools/ directory.
- Improved the python scripts of the test/ directory.
### Fixed
- Complex allocation mapping were not handled correctly
[//]: ==========================================================================
## 0.99 - 2017-05-26
### Changed
- The protocol is based on ZeroMQ instead of Unix Domain Sockets.
- The protocol messages are now JSON-formatted
[//]: ==========================================================================
[changelog]: http://keepachangelog.com/en/1.0.0/
[semver]: http://semver.org/spec/v2.0.0.html
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment