From: Fred Suter Date: Mon, 30 Oct 2023 14:48:39 +0000 (-0400) Subject: Document Message Queues (and the change of data structure in Mailboxes X-Git-Tag: v3.35~89^2~22^2~17 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ad5ab7da0b2e70ecf5db2d074c0aab48dd90e7f5 Document Message Queues (and the change of data structure in Mailboxes --- diff --git a/ChangeLog b/ChangeLog index 605242b95a..e90432e99a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,9 +6,13 @@ S4U: - New function NetZone::add_route(host1, host2, links) when you don't need gateways Also add a variant with s4u::Link, when you don't want to specify the directions on symmetric routes. - - Introduce a Mailbox::get_async() with no payload parameter. You can use the new + - Introduce a Mailbox::get_async() with no payload parameter. You can use the new Comm::get_payload() once the communication is over to retrieve the payload. - Implement recursive mutexes. Simply pass true to the constructor to get one. + - Introduce a new MessageQueue abstraction and associated Mess simulated object. + The behavior of a MessageQueue is similar to that of a Mailbox, but intended for + control messages that do not incur any simulated cost. Information is automagically + transported over thin air between producer and consumer. See examples/cpp/mess-wait SMPI: - New SMPI_app_instance_join(): wait for the completion of a started MPI instance @@ -32,10 +36,17 @@ C API: Plugins: - Revamp the battery plugin: rewrite completely the API, for a better usability. The examples were updated accordingly. - - Revamp of the Photovoltaic plugin: now called SolarPanel and complete rewrite of the API + - Revamp of the Photovoltaic plugin: now called SolarPanel and complete rewrite of the API - Add chiller plugin: enable the management of chillers consuming electrical energy to compensate heat generated by hosts. +Kernel: + - optimize an internal data structure (replace boost::circular_buffer_space_optimized by + std::deque to store pending and unmatched Comms in Mailboxes). It is actually a revert + to what was used a few years back. The boost structure had a lower memory footprint than + deques, but it appeared that their "space_optimized" character was generating a huge lot + of refcount changes on the stored Comms. + ---------------------------------------------------------------------------- SimGrid (3.34) June 26. 2023 diff --git a/docs/source/Release_Notes.rst b/docs/source/Release_Notes.rst index 55b0d5a2d8..992a1b0951 100644 --- a/docs/source/Release_Notes.rst +++ b/docs/source/Release_Notes.rst @@ -667,7 +667,13 @@ This feature is not very usable yet, as you have to manually annotate your code, Version 3.35 (TBD) ------------------ - +**On the interface front**, we introduced a new MessageQueue abstraction and associated Mess simulated object. The behavior of a +MessageQueue is similar to that of a Mailbox, but intended for control messages that do not incur any simulated cost. +Information is automagically transported over thin air between producer and consumer. Internally, the implementation is very +similar to Mailboxes and Comms, only simpler. The motivation for this new abstraction came from a scalability issue observed in +the WRENCH framework, which is heavily based on control messages. When the simulated size of these messages is set to 0, it creates +very short lived network actions (i.e., lasting for only the route latency) that tend to overwhelm the LMM. Switching from Mailbox +to MessageQueue for such information exchange avoid this problem and greatly improves the scalability of WRENCH-based simulators. .. |br| raw:: html