+SimGrid (3.14) UNRELEASED; urgency=low
+
+ SMPI
+ * Call-location tracing for SMPI.
+ You can add the exact location (filename / linenumber) of an MPI call to
+ your trace files and slow down or speed up the simulation between two
+ consecutive calls by using an adjustment file. (See the documentation.)
+
+ * Fixed computation of timings for MPI_Send, MPI_Recv but possibly also others
+ We've found a bug that prevented SMPI to account for MPI_Send, MPI_Recv
+ and others (in some cases) in a correct way. That is, the smpi/os, smpi/or
+ values were ignored in some cases. The timings of these functions can now
+ be significantly different.
+
+ -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.13) stable; urgency=low
+
+ The Half Release, a.k.a. the Zealous Easter Trim.
+
+ - We removed half of the lines, that were mostly experimental cruft.
+ v3.12 lasted 286000 lines of code, v3.13 is only 142000 lines
+ (not counting blanks and comments -- according to openhub.net)
+ - The internals are now compiled in C++ (and will soon be clean C++)
+ - We removed 75 klines of XML, 12 klines of Java, 5 klines of cmake,
+ 59 klines of C, etc. We added only 29 klines of C++ in replacement.
+
+ * Backwards Compatibility breaks
+ - Removed Lua simulation bindings (switch to C or Java for that).
+ Lua can still be used to describe platforms
+ - Removed Java kernel plug-ins.
+ Will be reintroduced after the ongoing major internals reorg.
+ - In MSG
+ - the following functions were removed.
+ They were too specific and should be reimplemented in a generic
+ way, with filter function.
+ - MSG_task_listen_from_host
+ - MSG_mailbox_get_count_host_waiting_tasks
+ - MSG_mailbox_put_with_timeout was removed.
+ Please use MSG_task_send_with_timeout instead.
+ - In SimDag
+ - the SD_application_reinit function was removed. It has been a noop for a while.
+ - The ACCESS_MODE of SD_workstation has been removed. This feature was not really usable and should soon be
+ replaced by a more flexible mechanism.
+ - The following functions thus do not exist anymore
+ - SD_workstation_get_access_mode
+ - SD_workstation_set_access_mode
+ - SD_workstation_get_current_task
+ - Basic estimation functions have been removed but can easily be replaced
+ - SD_route_get_communication_time => SG_route_get_latency() + amount / SD_route_get_bandwidth()
+ - SD_workstation_get_computation_time => amount / sg_host_speed()
+ - In Java
+ - VM.setBound(int load) is now VM.setBound(double bound) to meet the MSG semantics.
+ Use VM.getSpeed()*load/100 for the legacy behavior.
+ - In CMake
+ - option enable_tracing was removed. It was not doing anything for a while.
+ - In the ModelChecker:
+ - the model-checker now ptraces the model-checked process which means
+ you cannot use a debugger on the latter anymore (we might make this
+ optional in the feature);
+ - removed soft-dirty page tracking;
+ - remove model-checked side snapshot management,
+ MC_snapshot() and MC_compare_snapshot();
+ - keep the MC_cut() function as a stub (it was not really working
+ in the previous release).
+
+ Options:
+ * All options are consistently in kebab-case. Old names are kept as alias.
+
+ XML platforms:
+ * Switch to platform v4 format.
+ - Rename from 'power' to 'speed' the attributes describing the amount of
+ flops that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
+ - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
+ - In <host> and <link>, attributes availability and state are gone.
+ It was redundent with state and availability traces, and with peak values.
+ - In <cluster>, attributes availability_file and state_file are gone.
+ It was too complex and unused.
+ - Kill <gpu>. Was not doing anything.
+ - The DOCTYPE points to the right URL:
+ http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
+ (the file at this address now documents the changelog since its v1)
+ - A warning is emitted for unit-less values (they are still accepted).
+ - speed. Default: 'f' or 'flops'. Also defined:
+ 'Yf', 'Zf', 'Ef', 'Pf', 'Tf', 'Gf', 'Mf', 'kf'
+ 'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
+ - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
+ Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+ And the same in bits: 'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
+ - latency. Default: 's' second. Also defined:
+ 'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
+
+ * bin/simgrid_update_xml can upgrade your files automatically (won't convert unit-less values)
+ tools/sg_xml_unit_converter.py may help (but it's just a warning and will probably ever be).
+
+ S4U
+ * s4u::Host is now the preferred public interface to the Host features.
+ sg_host_* functions are C bindings to the exact same behavior
+ MSG_host_* and SD_workstation_* are #define to the sg_host_* ones
+
+ MSG
+ * The examples were completely reorganized (in C and Java), for your browsing pleasure.
+ * Kill all deprecated functions (the ones you had when declaring MSG_DEPRECATED).
+ They were deprecated since a few years, and probably did not even compile anymore.
+
+ SimDag
+ * The API has been profoundly modified to directly use the core objects instead of redefining its own.
+ SD_Workstation_t and SD_link_t are now sg_host_t and sg_link_t respectively.
+ Some functions have also been renamed for consistency. Backward compatibility is maintained, but users are
+ encouraged to update their codes. A list of the modified functions can be found at the end of
+ include/simgrid/simdag.h
+
+ Simix
+ * simgrid::simix::kernel() is the closure callback. It ensures that
+ the lambda or closure passed as a parameter will run in kernel mode.
+ All the callback functions should be rewritten to that interface at some point.
+
+ Surf
+ * Reorganizing and cleaning the internals all around the place.
+
+ SMPI
+ * Remove old default barrier/bcast buggy algorithms (see #18407)
+ * Various bug fixes to handle more codes
+ * Remove the need for the --foreground option of smpirun (it is still
+ accepted for backward compatibility).
+
+ XBT
+ * Kill the setset data container: MC don't use it anymore.
+ * Kill the queue data container: it made more sense with GRAS.
+ * Kill the xbt_peer_t data type: it's useless without GRAS.
+ * Kill rm_cb feature of config sets: it was never useful.
+ * Kill graphxml parsing feature. It was not used.
+ * Kill the deprecated code protected by XBT_USE_DEPRECATED
+ * New functions:
+ - xbt_dynar_sort_strings(), when the content is char*
+ - xbt_str_parse_int / xbt_str_parse_double, wrapping strtol/strtod
+ They throw exceptions on invalid input;
+ * C++ support for declaring CLI flags (simgrid::config::Flag);
+ * class for abstracting different signal backends (simgrid::xbt::signal).
+ with no external dependencies (we need very simple signals).
+
+ MC
+ * refactoring and cleanup of the code;
+ * ongoing process to cleanly separate the model-checking algorithms
+ from the code model-checking support.
+
+ -- Wed Apr 27 21:00:53 CEST 2016 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.12) stable; urgency=low
+
+ The Facelift Release.
+
+ Build System
+ * Require g++ v4.7 at least to not speak prehistorical C++.
+ * Require Boost 1.48 (for signal2 component).
+ * Java must be version 7 at least when activated.
+ * Builds on Windows again (including Java bindings).
+ * Tracing is now always enabled (no way to turn it out)
+ * Remove GTNetS. It was not working anyway.
+ * Various cleanups in the cmake scripts.
+ * Move headers around to sort them out on installed systems:
+ - instr/instr.h -> simgrid/instr.h
+ - instr/jedule/* -> simgrid/jedule
+ - simdag/datatypes.h was removed
+ - simdag/simdag.h -> simgrid/simdag.h
+ - msg/datatypes.h was removed
+ - msg/msg.h -> simgrid/msg.h
+
+ cMSG:
+ * Interface improvement:
+ - Rename MSG_host_is_avail(h) to MSG_host_is_on(h)
+ - Sanitize the interface in MSG_task_ module:
+ - Merge two functions that were close enough but misleading:
+ set_compute_duration(t) -> set_flops_amount(t)
+ get_remaining_computation(t) -> get_flops_amount(t)
+ - set_data_size(t) -> set_bytes_amount(t)
+ get_data_size(t) -> get_bytes_amount(t)
+ - Massive cleanups in the functions related to the energy
+ - MSG_host_get_pstate_number() -> MSG_host_get_nb_pstates()
+ - New: MSG_host_get_pstate()
+ * New example:
+ - msg/energy/onoff: switching hosts on and off
+ jMSG:
+ * Interface improvement:
+ - Rename Host.isAvail() to Host.isOn()
+ - Rename Process.currentProcess() to Process.getCurrentProcess()
+ - Rename Task.setDataSize() to Task.setBytesAmount()
+ - Merge Task.getRemainingDuration() and Task.getComputeDuration() into Task.getFlopsAmount()
+ * Bug fixes:
+ - #18874: Actually allows the GC to reclaim tasks
+
+ SIMIX:
+ * New functions
+ - SIMIX_process_throw: raises an exception in a remote process
+ * Refactoring: Separate sub-modules
+ - libsmx: the public interface, as libc in a real system
+ - popping: the strange dance that converts a user request into a kernel handling
+ - smx_context_*: the virtualization mechanisms that embed the user code
+ - smx_*: the handling of each simcalls
+ * Interface cleanup:
+ - simcall_host_set_power_peak_at -> simcall_host_set_pstate
+ * Rename smx_action_t into smx_synchro_t, making explicit that these
+ things are used to synchronize processes with their environment.
+ For example, a communication is a sort of synchronization involving
+ the communicating processes (that may block until the exchange) and
+ the platform. The same can be said from computations, etc.
+ * Bug fixes:
+ - #18888: segfault when a process ends before its kill_time
+
+ SMPI:
+ * New functions
+ - Onesided early support for : MPI_Win_(create, free, fence, get_name, set_name, get_group), MPI_Get, MPI_Put, MPI_Accumulate, MPI_Alloc_mem, MPI_Free_mem.
+ - MPI_Keyval*, MPI_Attr* functions, as well as MPI_Comm_attr*, MPI_Type_attr* variants (C only, no Fortran support yet)
+ - MPI_Type_set_name, MPI_Type_get_name
+ - MPI_*_c2f and MPI_*_f2c functions
+ - MPI_Info_* functions (beware, get_nthkey may not follow the insertion order)
+ - MPI_Pack, MPI_Unpack and MPI_Pack_size functions
+ - Activate a lot of new tests from the mpich 3 testsuite
+ * Features
+ - Constant times can be injected inside MPI_Wtime and MPI_Test through options smpi/wtime and smpi/test
+ - InfiniBand network model added : Based on the works of Jerome Vienne
+ http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf
+ - When smpi/display_timing is set, also display global simulation time and application times
+ - Have smpirun, smpicc and friends display the simgrid git hash version on --git-version
+ * Collective communications
+ - SMP-aware algorithms are now dynamically handled. An internal communicator is created for each node, and an external one to handle communications between "leaders" of each node
+ - MVAPICH2 (1.9) collective algorithms selector : normal and SMP algorithms are handled, and selection logic is based on the one used on TACC's Stampede cluster (https://www.tacc.utexas.edu/stampede/).
+ - Support for Rabenseifner Reduce/Allreduce algorithms (https://fs.hlrs.de/projects/par/mpi//myreduce.html)
+ * Replay
+ - Replay now uses algorithms from wanted collective selector
+ - Replay can be used with SMP-aware algorithms
+ - Memory occupation of replay should now be contained (temporary buffers allocated in collective algorithms should be shared between processes)
+ - Replay can now replay several traces at the same time (check examples/smpi/replay_multiple example), to simulate interactions between several applications on a given platform. User can specify the start time of each instance. This should also allow replay + actual applications to run.
+ * Bug fixes
+ - [#17799] : have mpi_group_range_incl and mpi_group_range_excl better test some corner cases
+ - Correctly use loopback on fat-tree clusters
+ - Asynchronous small messages shouldn't trigger deadlocks anymore
+ * Energy/DVFS cleanup and improvement
+ - smpi_set_host_power_peak_at() -> smpi_set_host_pstate()
+ - new: smpi_get_host_pstate()
+ SURF
+ * Bug fixes
+ - "Full" network optimization flag was broken since Surf++
+ - Better handling of precision flags in maxmin
+ - Fix bug causing sometimes "Impossible" errors
+ - Properly pass cluster properties to included hosts
+ * Improvement of the Energy plugin.
+ - Always update the consumption before returning that value
+ - New property: watt_off to denote the dissipation when the host is off
+ - New functions getWattMinAt and getWattMaxAt to retrieve the
+ dissipation of pstates that we are not currently at.
+ * Java: class NetworkLink renamed to Link
+ * New function: simcall_process_get_kill_time()
+ * Massive rename s/workstation/host/
+ - That's intrusive, but that's good for the project consistency. Sorry.
+ - Change config option "workstation/model" into "host/model"
+ XBT
+ * New functions
+ - Add a xbt_heap_update function, to avoid costly xbt_heap_remove+xbt_heap_insert use
+ - Add a xbt wrapper for simcall_mutex_trylock (asked in [#17878])
+ - Add two new log appenders : rollfile and splitfile. Patch by Fabien Chaix.
+ - xbt_dirname and xbt_basename for non-POSIX systems
+ MC
+ * The model checker now runs as a separate process.
+ * The model checker runs must now be launched with the new simgrid-mc program.
+ * Record/Replay: the MC can display a textual representation of a path in the
+ execution graph. It can then be replayed outside of the model checker.
+
+ -- Mon Oct 12 06:02:41 CEST 2015 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.11) stable; urgency=low