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 redundant 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-devellists.gforge.inria.fr>