----------------------------------------------------------------------------
-SimGrid (3.26.1) NOT RELEASED YET (v3.27 expected March 20. 2021, 09:37 UTC)
+SimGrid (3.28.1) NOT RELEASED YET (v3.29 expected September 22. 2021, 19:21 UTC)
-User-visible changes:
+New features:
+ - Non-linear resource sharing: allows to dynamically change the resource
+ capacity. Users can change this capacity by setting a callback which will
+ be called when SimGrid is sharing the resource between the active
+ activities. An activity can be a task running, a read/write IO operation or a
+ communication flow.
+ - Callback signature: double (double capacity, int n_activities): given the
+ current resource's capacity and number of activities running on it,
+ returns the new capacity.
+ - Note that this callback is in the critical path of the system solve and
+ should not take long to execute.
+ - Examples:
+ - Disk: examples/cpp/io-degradation
+ - Link: examples/cpp/network-nonlinear
+ - CPU: examples/cpp/exec-cpu-nonlinear
+
+S4U:
+ - New: s4u::Disk::set_sharing_policy() and s4u::Host::set_sharing_policy().
+ Allows the configuration of non-linear resource sharing for hosts and
+ disks.
+
+Documentation:
+ * New section "Release Notes" documenting recent and current developments.
+
+----------------------------------------------------------------------------
+
+SimGrid (3.28) July 14. 2021
+
+The Victoriadagarna Release.
+
+New features:
+ - C++ platform interface: Users can now describe their platform directly in C++.
+ This provides greatly flexibility and performance improvement for complex
+ platforms. Main features:
+ - Fat-Tree/DragonFly/Torus composing: allows you to create clusters of
+ "zones", instead of single hosts. This feature enables the description
+ of clusters with complex hosts, composed of several CPUs, GPUs, etc.
+ - StarZone: new zone with a Star-like topology. The routes are defined
+ as a set of links used to communicate from node to everybody (node<->ALL).
+ - Split-Duplex links: auxiliary method to create split-duplex links in
+ the platform, easing its utilisation. It automatically creates both UP
+ and DOWN links (similarly as done in XML).
+ - Please refer to the documentation and the examples included:
+ e.g. examples/cpp/clusters-multicpu/ and examples/platforms/*.cpp.
+ - New plugin: Producer-Consumer with monitor. Just requires to include the
+ include/simgrid/plugins/ProducerConsumer.hpp header to be used. See the
+ associated example (examples/cpp/plugin-prodcons).
+
+S4U:
+ - New: s4u::Comm::wait_all_for() (like s4u::Comm::wait_all, but with a timeout),
+ s4u::Io::wait_any(), s4u::Io::wait_any_for().
+ - Methods test_all/test_any/wait_all/wait_any in s4u now take their vector
+ parameter by reference, instead of a pointer.
+ - Fixed a bug where Activity::wait_for() killed the activity on timeout.
+ Explicitly cancel the activity to get back to previous behavior.
+ - New: Link::set_concurrency_limit() to limit the amount of concurrent flows.
+
+SMPI:
+ - The default SMPI compiler flags are no more taken from the environment.
+ They can be explicitly set through cmake parameters SMPI_C_FLAGS,
+ SMPI_CXX_FLAGS, or SMPI_Fortran_FLAGS.
+ - New options:
+ --cfg=smpi/finalization-barrier: which can be used to add
+ a barrier inside MPI_Finalize. This can help for some codes which cleanup
+ data attached to a process, but still used in other SMPI processes.
+ --cfg=smpi/errors-are-fatal: True by default, behaves like if MPI_ERRORS_RETURN
+ is active when set to false, to keep going after a small error
+ --cfg=smpi/pedantic: True by default. Do not report some harmless MPI errors
+ which may or may not be problematic in the end.
+ - Sampling:
+ - fix behaviour, as maximum iteration count could be ignored
+ - add SMPI_SAMPLE_LOCAL_TAG and SMPI_SAMPLE_GLOBAL_TAG macros, to allow user to
+ use sampling when the same kernel is called with a different set of parameters
+ which have an impact on the timing.
+ - realloc is now intercepted, to be coherent, as malloc/calloc/free were already.
+ It should now work with smpi/auto-shared-malloc-thresh.
+ - Improve error handling and reporting in multiple places
+ - Improve correctness checks on the MPI code.(MPI_Op and MPI_Datatype
+ validity checks, truncated messages are now an error, return errors
+ when explicitely deleted handles are reused, ...)
+ - RMA: multiple fixes and stability improvements.
+ - analysis (-analyze flag in smpirun):
+ - SMPI can now report buffer leaks as well as MPI handles leaks,
+ if code was compiled without SMPI_NO_OVERRIDE_MALLOC.
+ - if -trace-call-location is used when compiling, SMPI can report
+ origin of leaked handles/buffers
+ - group leaks by type/origin in output message if possible
+ - New implemented MPI calls: MPI_Comm_test_inter
+
+Models:
+ - Changed internal implementation of bandwidth factors in network models.
+ Models affected: CM02, LV08 (default), SMPI, IB.
+ Configuration affected: "network/bandwidth-factors" and "smpi/bw-factors".
+ Bandwidth factors are applied to communications to describe that users
+ cannot use 100% of the available bandwidth. For example, the default network model,
+ LV08, applies a factor of 0.97 to the bandwidth. In older versions, this
+ behavior was implemented by limiting the bandwidth available in the LMM
+ system for this flow. This may give the false impression that there is
+ bandwidth available for other flows due to its underutilization, especially
+ for the dynamic bandwidth factors used in SMPI models.
+ To avoid this, we have modified the implementation so that each flow uses the
+ maximum physical bandwidth according to the LMM system.
+ However, the actual throughput of the flow seen by the user is defined by
+ the physical bandwidth multiplied by the bandwidth factor.
+ This change impacts on the simulation results for all network models on
+ which we have bandwidth factors configured.
+ *****************************************
+ *DO NOT MIX 3.28 RESULTS WITH OLDER ONES*
+ *****************************************
+ This change may impact on the timing of your simulation results.
+ Take care when comparing simulations from different SimGrid's
+ versions. Sorry for the inconvenience.
+ - Dynamic network factors: users can configure a callback to define
+ the network factors dynamically. This API is available at
+ simgrid::kernel::resource::NetworkModelIntf.
+ - Users have access to complete information about the current communication
+ to decide which factor to apply. This includes: message size, source and
+ destination hosts, links and zones traversed.
+ - Dynamic factors for both latency and bandwidth.
+ - For more details, see the example in (examples/cpp/network-factors).
+ - Plugin host_energy: the "watt_off" and "watt_per_state" host properties,
+ deprecated since version 3.24, are no longer supported. Instead, use
+ "wattage_off" and "wattage_per_state".
+
+XBT:
+ - xbt_assert is not disabled anymore, even when built with enable_debug=off.
+
+Documentation:
+ - New tutorial: Model-checking and formal assessment
+ - New sections: "Demystifying the routing" and "C++ platforms"
+ - Update and improve the part on visualization in MPI and Algo tutorials.
+ - Improve the section on routing: how to define it, how it's used internally
+ - Fix many issues, broken links and missing references in doxygen and Sphinx
+
+LUA:
+ - Lua platform files are deprecated. Their support will be dropped after v3.31.
+
+Simix:
+ - Legacy functions deprecated in this release: SIMIX_get_clock(), SIMIX_run().
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ - FG#47: Complete and fix tests from teshuite/s4u/activity-lifecycle
+ - FG#64: Configuring smpi/IB-penalty-factors
+ - FG#67: Running computation concurrently with MPI_Iallreduce
+ - FG#69: Tutorial misleading users of pre-v3.26 versions of SimGrid
+ - FG#71: Segmentation fault on invalid gw_src/gw_dst
+ - GH#322: Issue when an actor kills his host vm
+
+----------------------------------------------------------------------------
+
+SimGrid (3.27) March 29. 2021
+
+The Ragnar Release (anniversary of the siege of Paris by Vikings in 845)
+
+Main user-visible changes:
+ - All functions marked as deprecated for one year were removed.
+ - Removed all that was related to the "Storage" type in all APIs and bindings.
+ "Disks" have been introduced more than a year ago to replace them for the better.
+ It's time to finish this replacement.
+ - SMPI ABI breaks from previous version: MPI global handles (predefined datatypes,
+ ops, COMM_WORLD) are now defined differently, and can be used in initializers,
+ avoiding "initializer element is not constant" errors with some codes. Please be
+ careful to recompile your MPI codes if switching to this new SimGrid version.
+ - Network model ns-3 now requires version ns-3.28 or higher.
- Removed some option aliases that were deprecated since v3.23 (June 2019)
- 'verbose-exit' is now 'debug/verbose-exit'
- 'simix/breakpoint' is now 'debug/breakpoint'
- 'clean-atexit' is now 'debug/clean-atexit'
S4U:
+ - New functions: Comm::sendto_{init,async} to initiate a communication
+ on between two (possibly remote) hosts.
- Define new template functions Mailbox::get_unique(), returning a std::unique_ptr.
- Functions Mailbox::get() and Mailbox::get_async() are now templated with the
type of the pointee. Untyped functions are deprecated. Use Mailbox::get<void>()
- Unify the interface of Activity::on_{start/activity}
- New function: Comm::get_dst_data()
- New function: Comm::set_payload_size() to set the amount of bytes to simulate.
- - New functions: Comm::sendto_{init,async} to initiate a communication
- on between two (possibly remote) hosts.
+
+Models:
+ - ptask should now work better with multicore hosts (FG#37).
+ - Internal cleanups and refactoring around activities, to prepare for SimDAG++.
+ - Internal cleanups and refactoring around models, to prepare for programmatic
+ platform creation.
+ - Modernize our tests of the performance models
Documentation:
- - New section: Configuring the logs from the command line.
- - New section: Programming API of logs.
+ - User manual:
+ - New section: Configuring the logs from the command line.
+ - New section: Programming API of logs.
+ - New section: Getting realistic results
+ - New section: Examples of SMPI Usage
+ - New part: SimGrid's Internals, with a section on Design goals
+ - Move back to the classical Breathe tool chain, and fix many small glitches.
+
+SMPI:
+ - Handle leak checking: SMPI will now display a message if MPI handles are still
+ present at the end of a simulation. Option smpi/list-leaks:n will display the n
+ first leaked pointers and their types.
+ - smpi/display-allocs option : Display Memory allocations analysis, with hints
+ about the largest allocations. This only works for allocations with malloc/calloc
+ and not compiled with SMPI_NO_OVERRIDE_MALLOC
+ - "-analyze" option in smpirun will activate smpi/display-allocs and smpi/display-timing
+ - New implemented MPI calls: MPI_File_set_size, MPI_Aint_add, MPI_Aint_diff,
+ MPI_Type_get_extent_x, MPI_Type_get_true_extent_x, MPI_Status_set_elements_x
+ - Support for MPI C++ datatypes (MPI_CXX_BOOL, MPI_CXX_FLOAT_COMPLEX,
+ MPI_CXX_DOUBLE_COMPLEX, MPI_CXX_LONG_DOUBLE_COMPLEX)
+ - Replay now opens and parses the trace file only once for all ranks when possible.
+ - Misc fixes:
+ - better handling of MPI_PROC_NULL
+ - MPI_Group_incl was broken in some cases
+ - PAPI tracing now fixed
+ - MPI_Errhandlers are properly handled for MPI_COMM_WORLD
+ - SMPI will now fail properly when receive size < sent size, instead of
+ just setting MPI_ERR_TRUNCATE and keep going.
+ - Proxy Apps ( https://framagit.org/simgrid/SMPI-proxy-apps ):
+ - Remove useless build patches and split build/run patches on the page
+ - Build in parallel when possible
+ - Test on yum-based systems
+ - New nightly tested Proxy-apps:
+ - OpenMPI mpi-test-suite
+ - Coral MCB, LSMS, Qbox, CLOMP
+ - ECP/Mantevo Cloverleaf3D, Ember
+ - Codevault bhtree_mpi
+
+Model checker:
+ - Only initialize the Dwarf parser when needed, saving 10 seconds in most cases.
+ - Start to overhaul the implementation to modernize it (still ongoing).
+
+XBT:
+ - Drop simgrid::xbt::demangle(). Please use boost::core::demangle() instead.
+ - Drop xbt_dynar_cursor_rm(), xbt_dynar_search_or_negative(),
+ xbt_str_split_quoted(), xbt_str_split_quoted_in_place().
+ - Deprecate xbt_dynar_to_array().
+ - When an exception occurs in kernel mode, display both the actor and kernel stacks.
+
+C binding and interface:
+ - Rename (lowercase) functions sg_actor_get_PID, sg_actor_get_PPID, sg_actor_by_PID.
+ - Constness requirement has been lowered for parameter argv of sg_actor_start()
+ and sg_actor_create() It's now (char* const*). The previous version is still
+ available as sg_actor_start_() and sg_actor_create_().
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ - FG#37: Parallel tasks are limited to 1 core per host
+ - FG#62: Running "smpirun -replay" on large networks
+ - FG!46: Fix a few potential memory leaks in SMPI colls
+ - GH#343: Wrong consumed energy when an exec timeouts
----------------------------------------------------------------------------
allocations' size above which they are considered "shared" by default (as if
they were performed through SMPI_SHARED_MALLOC macros).
Default = 0 = disabled feature.
- Note : malloc, calloc and free are now overriden by smpicc/cxx by default.
+ Note : malloc, calloc and free are now overridden by smpicc/cxx by default.
This can cause some troubles if codes are already overriding these. If this
is the case, defining SMPI_NO_OVERRIDE_MALLOC in the compilation flags can
help, but will make this feature unusable.