+SimGrid (3.16) UNRELEASED
+
+ Portability status:
+ - FreeBSD: Disable SMPI mmap privatization, switch automatically to dlopen.
+ - Mac, BSD: dlopen+thread broken, switch automatically to raw contexts.
+
+ XML platforms: Switch to platform v4.1 format.
+ * This is a backward compatible change: v4 are valid v4.1 files
+ - <zone> can be used as a synonym for the now deprecated <as>
+ - <zoneZoute> an be used as a synonym for the now deprecated <asroute>
+ - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
+ - <actor> can be used as a synonym for the now deprecated <process>
+ - state_file and avail_file periodicity is now easier to express
+ (check the documentation) the old behavior should still work.
+
+ SimDag
+ - New and Backwards Compatibility break:
+ SD_simulate_with_update (double how_long, xbt_dynar_t changed_tasks_dynar)
+ When one wants to get the list of tasks whose states have changed during a
+ simulation round, s/he has to allocate and free a dynar and use it as argument
+ to this function. The former SD_simulate (double how_long) now returns void.
+
+ MSG
+ - The netzone are now available from the MSG API.
+ The old names still work, but are now deprecated.
+
+ SMPI
+ - New algorithm to privatize globals: dlopen, with dynamic loading tricks
+ - New option: smpi/keep-temps to not cleanup temp files
+
+ XBT/Replay:
+ - New function xbt_replay_action_get():
+ Retrieve the function previously associated to an event type.
+
+ -- Release target: June 21 2017 -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.15) stable; urgency=low
+
+ 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.
+
+ MSG
+ - 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
+
+ Java
+ - 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.
+
+ S4U
+ - 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()
+
+ SimDag
+ - 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
+
+ SMPI
+ - 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, MPI_Get_accumulate 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.
+
+ XBT
+ - Kill the fifo data container: we don't use it anymore.
+
+ XML
+ - A <cluster> can now be created with different speed values to represent pstates.
+ see examples/platforms/energy_cluster.xml for an example.
+
+ -- Wed Mar 22 17:50:21 CET 2017 -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.14.159) stable; urgency=low
+
+ The previous release was only a crude approximation of a Pi release;
+ this one should be a bit better.
+
+ - Revert a last minute change that broke on Mac OSX.
+ - Fix the changelog and NEWS files.
+ - Improve the documentation, in particular of the routing module.
+ - Integrate some patches flying around in Debian.
+
+ -- Wed Dec 28 17:14:49 CET 2016 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.14) stable; urgency=low
+
+ Documentation
+ * The whole documentation was reworked and reorganized. There is
+ still much room for improvement here, but we're on it.
+
+ Infrastructure
+ * We now need python3 for our testing infrastructure.
+ * Model checking needs libevent
+
+ MC
+ * Now works on FreeBSD
+
+ SMPI
+ * Privatization now works on FreeBSD
+
+ * Privatization is now activated by default in smpirun
+ You can turn it off with -no-privatize if something goes wrong.
+
+ * 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 & 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.
+
+ * smpi/cpu-threshold:-1 should become smpi/simulate-computation:no
+ smpi/running-power is renamed to smpi/host-speed
+
+ * smpi/grow-injected-times option to enable or disable multiplication of the
+ timings injected in MPI_Iprobe, or MPI_Test. Enabled by default, which can
+ make simulation less precise (but also much faster).
+
+ * smpirun script should be (much) faster for large deployments.
+
+ * SMPI tracing : fixed issue with poor matching of send/receives.
+
+ * Replay : Fix broken waitall
+
+ New functions and features
+ * MSG_parallel_task_execute_with_timeout, to timeout computations.
+
+ Dropped / renamed functions and features
+ * msg_mailbox_t and associated functions. Use s4u::Mailbox instead.
+ - MSG_mailbox_is_empty() -> Mailbox::empty()
+ - MSG_mailbox_front() -> Mailbox::front()
+ - MSG_mailbox_get_by_alias() -> simgrid::s4u::Mailbox::byName(name)
+ - MSG_mailbox_get_task_ext() -> MSG_task_receive_ext()
+ - MSG_mailbox_get_task_ext_bounded -> MSG_task_receive_ext_bounded
+ - MSG_host_(get/set)_params -> MSG_vm_(get/set)_params
+ * Don't pass the free_f parameter to property related functions:
+ - MSG_host_set_property_value()
+ - MSG_as_router_set_property_value()
+ - MSG_storage_set_property_value()
+ * VM properties. Since msg_vm_t are msg_host_t, just use
+ MSG_host_get_property_value() and friends
+ * VM I/O related things:
+ - Ignored parameter of vm_create: core_nb, disk_path and disk_size.
+ - Unimplemented save/restore methods
+ * MSG_as_router_get_property_value() was redundent with
+ MSG_environment_as_get_property_value().
+ - Removed MSG_as_router_*propert*() functions
+ - Added MSG_environment_as_set_property_value() for consistency
+ * xbt heterogeneous dictionnaries (created with xbt_dict_new()).
+ Well, they are still there for now, but deprecated with a warning.
+ Please switch to xbt_dict_new_homogeneous() before this is removed
+ for real.
+ * Task affinity. Its intended behavior (that was very badly tested
+ and probably not really working) was deceiving what most users
+ would have hoped here.
+ * xbt_os_sem_get_value: unused internally, deprecated on OS X El Capitan
+ * Option network/coordinates is now useless and should be dropped.
+
+ Storage:
+ * Added option storage/max_file_descriptors to allow more than 1024 files opened
+
+ SURF:
+ * Added option maxmin/concurrency_limit to allow more than 100 processes per host
+ * Added Dragonfly topology support
+
+ XML:
+ * Add Exa- and Peta- units such as EiB, EB, Eib, Eb for size, and
+ EiBps, EBps, Eibps, Ebps for bandwidth.
+ They may become useful to some lucky ones.
+
+ Java:
+ * New functions: msg.Comm.waitAll() and msg.Comm.waitAny()
+ * ex/app_tokenring: new example, very similar to the MSG Token Ring
+ * ex/async_waitAll: new example, on asynchronous communications
+
+ MSG:
+ * Memory usage should be decreased for simulations with a large number
+ of processes. This also helps for SMPI.
+
+ -- Sat Dec 24 22:34:26 CET 2016 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::kernelImmediate() 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>
+