Home My Page Projects SimGrid
Summary Activity Forums Tracker Lists Docs News SCM Files

Project Filelist for SimGrid

File Release Notes and Changelog

Release Name: 3.20

Release Notes
The proxy snake_case() release.

 * Sanitize the public API. Compatibility wrappers in place for one year.
 * More CI: ~45 Proxy Apps + BigDFT + StarPU now tested nightly
 * MPI: Port the trace replay engine to C++, fix visualization
 * (+ the classical bug fixes and doc improvement)
Change Log
The proxy snake_case() release.

S4U:
 - The whole API is now using snake_case() instead of mixing it with camelCase.
   Compatibility wrappers in place for one year.
 - We took the opportunity to increase the consistency of the API.
   Please report any remaining glitches.
 - New function simgrid::s4u::Host::get_actor_count:
   Returns the number of actors running on a specific host.

SMPI:
 - SMPI is now tested with ~45 proxy apps from various sources, with none or
   only minor patching needed: check https://github.com/simgrid/SMPI-proxy-apps
 - Replay: The replay file has been re-written in C++.
 - Replay: Tags used for messages sent via MPI_Send / MPI_Recv are now
   supported. They are stored in the trace and used when replayed.
 - Basic support of MPI_Cancel. Robustness not guaranteed.
 - Support of MPI_Win_allocate_shared, MPI_Win_shared_query, MPI_Comm_split_type
   (only for MPI_COMM_TYPE_SHARED).
 - New option: smpi/privatize-libs, to add external shared libs to be privatized
   by SMPI. They will be copied locally and loaded separately by each process.
   Example --cfg=smpi/privatize-libs:"libgfortran.so.3;libscalapack.so".
 - Tracing: add tracing for MPI_Start, Startall, Testall, Testany
 - Interception of getopt, getopt_long and getopt_long_only calls to avoid issues
   with internal index optind with multiple processes. Only works if MPI_Init has
   already been called.
 - Fortran: SMPI builds a mpi.mod file which should allow use of "use mpi"
   syntax without preprocessing tricks.
   
TRACE
 - Change --cfg=tracing/msg/vm to --cfg=tracing/vm as virtual machine
   behavior tracing is no longer limited to MSG
 - TIT (Time Independent Traces): We finally support tags. Unfortunately,
   this means that traces now need to be updated or re-obtained; both Irecv
   and Isend lines in your traces have now in total 5 mandatory fields:
      <rankid> <command> <to/from rankid> <tag> <size>
   To update your traces, it suffices to add a 0 for the tag here.
 - TIT now also supports waiting for a distinct request via MPI_Wait.
   Wait/Test now wait for a specific request, not just the last one that was
   issued. This unfortunately means another update, because we need to
   identify which request you want to wait for. We do this via the
   triplet (sender, receiver, tag), which needs to be added:
      <rankid> <command> <sender> <receiver> <tag>
 - Actions are now in lower case (e.g., "allReduce" becomes "allreduce").
   New script simgrid_convert_TI_traces.py: upgrade your TI traces.

MSG
 - The deprecation of MSG is ongoing (but this should not impact you).
   Many MSG functions are now simple wrappers on the C API of S4U. If
   you wish to convert your code to S4U, find the S4U counterparts of
   your MSG calls in src/msg/msg_legacy.cpp.
 - MSG can still be used, but won't evolve anymore.

Plugins:
 - Allow to run the Link energy plugin from the command line with
   --cfg=plugin:link_energy
 - Rename Energy plugin into host_energy
 - Rename Load plugin into host_load

simix:
 - Add parameter --cfg=simix/breakpoint to raise a SIGTRAP at given time.
 - kill simix::onDeadlock() that was somewhat dupplicating s4u::on_deadlock()
 - Improve performance when handling timeouts of simix synchros.

XBT:
 - Config: the C API is now deprecated (will be removed in 3.23), and
           the C++ API has been slightly improved.

Other:
 - Fix several build issues on OSX.
 - Move simgrid_config.h to simgrid/config.h (old header still working)

Fixed bugs:
 - #143: Setting a breakpoint at a given time
 - #150: Inconsistent event names in SMPI replay
 - #258: daemonized actors hang after all non-daemonized actors have completed
 - #267: Linker error on unit_tmgr
 - #269: SMPI: tracing of MPI_Wait/all/any broken
 - SMPI: Fix various crashes with combined use of MPI_PROC_NULL and MPI_IGNORE_STATUS