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.15

Release Notes
The Spring Release: continuous integration servers become green.

 * S4U: progress, integrating more parts of SimDag; New examples.
 * SMPI: Support MPI 2.2; Convert internals to C++ (TBC).
 * Java: Massive memleaks and performance issues fixed.
 * Plus the usual bug fixes, cleanups and documentation improvements
Change Log
 The Spring Release: continuous integration servers become green
 We fixed even the transient bugs on all target architectures:
   Linux (CentOS, Debian, Ubuntu, Fedora), Mac OSX (Mavericks, El Capitan)
   Windows, FreeBSD, NetBSD.
 - Rename NetCards to NetPoints.
   This was intended to help NS3 users, but that's not a netcard.
   That's a point in the routing algorithm, let's avoid wrong simplifications.

 - New: MSG_process_yield(). Stop and yield to other processes.
 - New: MSG_process_daemon(). Daemon processes are automatically killed
   when the last non-daemon process terminates
 - New: MSG_process_ref/unref(). Fiddle with the process refcounting.
 - Renamed MSG_energy_plugin_init() -> MSG_host_energy_plugin_init()
   to make room for the upcoming network energy plugin.
 - Drop MSG_host_get_current_power_peak: duplicates MSG_host_get_speed

 - Ensure that an actor can kill itself with Process::exit()
 - Kill the obscure NativeException. Nobody want to survive the issues
   it denotes, so use JniException that is a RuntimeException (not to
   be caught explicitly).
 - Partial bug fix in initialization. SimGrid flags on command line were
   consumed at C level but stayed in the original Java String[] args.
   This could mess users' args[i] if SG flags were not put at the end of
   the command line.
   The SimGrid flags are now removed from the Java arguments. However,
   the number of arguments REMAINS UNCHANGED. It is then UNSAFE to test
   if args.length is greater than the number of YOUR OWN ARGUMENTS.
   It might be if you have --log or --cfg flags in the command line.
 - Fix numerous memleaks all around the place. In particular, around VMs.

 - New callbacks:
   - s4u::onPlatformCreated: right before the simulation starts
   - s4u::onSimulationEnd: right after the main simulation loop
   - s4u::onTimeAdvance: right after a clock change (time is discrete)
   - s4u::Host::onSpeedChange: when the pstate is changed, or when an
     event from the availability_file changes the avail speed.
 - Links are now usable from s4u
 - New: Engine::hostList() and Engine::hostCount(). Still clumsy.
 - New: Actor::suspend(), Actor::resume(), and Actor::migrate(new_host)
 - New examples: The conversion of MSG examples to S4U has begun
    - Actors: create, kill, migration, and suspend
    - Applications: master-worker and token-ring
    - Action replay: communications and storage
 - Drop Host::getPstateSpeedCurrent() which duplicates Host::speed()

 - Backwards Compatibility breaks
    - The SD_route_get_list and SD_route_get_size functions have been removed.
      They are replaced by the unique
         void sg_host_route(sg_host_t src, sg_host_t dst, xbt_dynar_t links)
      The route from src to dst is built in the links dynar whose size can
      be obtained with xbt_dynar_length.
    - The SD_route_bandwidth and SD_route_latency functions have been replaced by
        sg_host_route_bandwidth and sg_host_route_latency.
      Macros ensure the backwards compatibility, but you should fix your code

 - Major C++ rewrite ongoing (SMPI used to be C compiled in C++).
   This can break codes using SMPI internals (from private.h instead of the public smpi.h).
 - Bump our claim of support from MPI 1.1 to MPI 2.2.
   We don't support 100% of it, but it should be enough. Contact us if not.
 - MPI_Win_lock/unlock support added (as for all RMA, implementation is naive and probably inaccurate)
 - New algorithm for SMPI_SHARED_MALLOC: global, where all blocks are
   mapped onto a unique small file using some system magic.
 - Bugfix: smpirun was sometimes misusing hostfile when wrongly terminated
 - Fortran: cleanups, fixes, support of user-added operations
 - RMA: MPI_Accumulate are applied in correct order.
 - RMA:  MPI_Win_{complete/post} shouldn't miss messages anymore.
 - Better support for MPI_IN_PLACE
 - Support for MPI_Win attrs and keyvals.
 - Support MPI_Comm_group_create, MPI_Type_size_x
 - MPI ops should be properly applied to all allowed types
 - Replace implementation of MPI_Bcast "scatter followed by rdb allgather"
   algorithm by a non failing one from mpich.

 - Kill the fifo data container: we don't use it anymore.

 - A <cluster> can now be created with different speed values to represent pstates.
   see examples/platforms/energy_cluster.xml for an example.