X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ff6e9d4148351dd4a08001344a05a504bcd23311..a6d147a321380a0bf97caa3c69b5d0589548c1de:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 51acd4ea22..ba67d904ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,21 +1,104 @@ SimGrid (3.32.1) not released yet (target december 22) +General: + - SimGrid now requires a compiler with C++17 support for public headers too. + Sibling projects should upgrade their FindSimGrid.cmake + - Remove the MSG API: its EOL was scheduled for 2020. + - Remove the Java bindings: they were limited to the MSG interface. + - On Windows, you now need to install WSL2 as the native builds are now disabled. + It was not really working anyway. + - Support for 32bits architecture is not tested anymore on our CI infrastructure. + It may break in the future, but we think that nobody's using SimGrid on 32 bits. + - Remove the surf module. It was replaced by the kernel/models module, and that + refactoring took almost 10 years to properly complete. + S4U: - Activity::set_remaining() is not public anymore. Use for example Comm::set_payload_size() to change the size of the simulated data. + - New function: Engine::flatify_platform(), to get a fully detailed vision of the + configured platform. + - Full simDAG integration: Activity::start() actually starts only when all dependencies + are fullfiled. If it cannot be started right away, it will start as soon as it becomes + possible. + - Allow to set a concurrency limit on disks and hosts, as it was already the case for links. + - Rename Link::get_usage() to Link::get_load() for consistency with Host:: + - Every signal now come with a static version that is invoked for every object of that class, + and an instance version that is invoked for this specific object only. For example, + s4u::Actor::on_suspend_cb() adds a callback that is invoked for the suspend of any actor while + s4u::Actor::on_this_suspend_cb() adds a callback for this specific actor only. + - Activity::on_suspended_cb() is renamed to Activity::on_suspend_cb(), and fired right before the suspend. + - Activity::on_resumed_cb() is renamed to Activity::on_resume_cb(), and fired right before the resume. + - Resource::on_state_change_cb() is renamed to Resource::on_onoff_cb() to distinguish from the + Activity::on_state_change_cb() that is related to the activity state machine, not on/off. + - Activity signals (veto, suspend, resume, completion) are now specialized by activity class. + That is, callbacks registered in Exec::on_suspend_cb will not be fired for Comms nor Ios. + +New S4U plugins: + - Operation: They are designed to represent workflows, i.e, graphs of repeatable Activities. + See the examples under examples/cpp/operation-* and the documentation in the Plugins page. + - Battery: Enable the management of batteries on hosts. + See the examples under examples/cpp/battery-* and the documentation in the Plugins page. + - Photovoltaic: Enable the management of photovoltaic panels on hosts. + See the examples under examples/cpp/photovoltaic-* and the documentation in the Plugins page. + +Kernel: + - optimize an internal datastructure (use a set instead of a list for ongoing activities), + leading to a potentially big performance gain, in particular with many detached comms. + +MPI: + - New option smpi/barrier-collectives to add a barrier to some collectives + to detect dangerous code that /may/ work on some MPI implems. + - New function SMPI_app_instance_start() to easily start a MPI instance in your S4U simulation. Models: + - Write the section of the manual about models, at least. - WiFi: the total capacity of a link depends on the amout of flows on that link. - Use the nonlinear callback feature of LMM to reflect this. - Calibration values can be changed to match different MCS configurations - See the example teshsuite/models/wifi_usage_decay/wifi_usage_decay.cpp - See also "A Flow-Level Wi-Fi Model for Large Scale Network Simulation" https://hal.archives-ouvertes.fr/hal-03777726 + - Merge parameters network/bandwidth-factor and smpi/bw-factor that serve the same purpose. + - Same for the latency + - Rewrite the corresponding documentation. + - Allow to disable the TCP windowing modeling by setting network/TCP-gamma to 0. + - Finally kill the 'compound' host model. You can change the CPU or network model + with the default host model, as it should. + - Rename option "surf/precision" to "precision/timing" for clarity. + - Rename option "maxmin/precision" to "precision/work-amount" for clarity. + - New function: Engine::flatify_platform() to debug your platform. + +sthread: + - Implement pthread_join in MC mode. + - Implement semaphore functions in sthread. + - Add an intricated way to verify the access to non-reentrant data structures + It requires code annotation, as shown in examples/sthread/stdobject/stdobject.cpp + +Model checking: + - Synchronize the MBI tests with upstream. + - Show the full actor bactraces when replaying a MC trace (with model-check/replay) + and the status of all actors on deadlocks in MC mode. + - The safety/stateless aspects of the MC are now enabled by default in all simgrid builds. + Liveness and stateful aspects are still controled by the enabling_model-checking + configuration option. + - Stateless model-checking is now usable on any system, including Mac OSX and ARM processors. + +XBT: + - simgrid::xbt::cmdline and simgrid::xbt::binary_name are gone. + Please use simgrid::s4u::Engine::get_cmdline() instead. + +Documentation: + - New section in the user guide on the provided performance models. + - New section presenting some technical good practices for (potential) contributors. + - Add a section on errors and exceptions to the API documentation. + - Move the s4u examples to a section on their own to ease navigation. Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests) (FG: issues on Framagit; GH: issues on GitHub) + - FG#18: Java bindings should be redone or removed - FG!118: Wi-Fi callback mechanism - - FG!119: SMPI: add option to inject a barrier before every collective call, to allow... + - FG!119: SMPI: add option to inject a barrier before every collective call + - GH#383: Segfault when adding a disk after load_platform(xml) ---------------------------------------------------------------------------- @@ -597,7 +680,7 @@ The Release release (the French lockdown was eased today). Important user-visible changes: - SimGrid now requires a compiler with C++14 support. - Sibling projects should upgrade their FindSimgrid.cmake + Sibling projects should upgrade their FindSimGrid.cmake - Surf precision default value is now 1e-9, instead of 1e-5. This was changed as several users had difficulties to understand issues when using high bandwidth or small latency events. The new value was already the default for SMPI and