X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a60db7db98ac9e60384b1009120ae009bebc8c24..6d0a1577e793ff234e7f12de5f13572685538d10:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 6ca3d3e3a8..f556726820 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,42 +1,443 @@ -SimGrid (3.16) UNRELEASED +SimGrid (3.21) NOT RELEASED (Release Target: September 23. 2018, 1:54 UTC) + +Tracing: + - Rename 'power' and 'power_used' variables into 'speed' and 'speed_used' + - New host variable: 'core_count' + +XBT: + - Remove xbt_os_thread_specific features + - Remove portability wrapper to condition variables + - Remove xbt_os_thread_yield() + +Fixed bugs: + - #93: simgrid should not eat --help + - #264: Add ptask L07 resource tracing + - #271: Dynamic and manual replay of SMPI traces + - #279: Breakpoints option uses time deltas instead of absolute time + - #282: TIT convertor erase traces when using absolute path in the trace list file + - #285: segfault when a s4u actor kills itself with msg process tracing activated + - #286: Pajé traces are not exposing the number of cores + - #287: Command-line parsing should stop when encountering '--' + +---------------------------------------------------------------------------- + +SimGrid (3.20) Released June 24. 2018 + +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: + + 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: + + - 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 + +---------------------------------------------------------------------------- + +SimGrid (3.19.1) Released March 22 2018 + + The Fixed ABI Release. + + As you may know, we are currently refactoring SimGrid in deep. + Upcoming SimGrid4 will be really different from SimGrid3: modular, + standard and extensible vs. layered, homegrown and rigid. C++ vs. C. + + Our goal is to smooth this transition, with backward compatibility + and automatic update paths, while still progressing toward SimGrid4. + + SimGrid remains open during works: The last pure SimGrid3 release was + v3.12 while all subsequent versions are usable alpha versions of + SimGrid4: Existing interfaces remain unchanged, but the new S4U + interface is budding and the internals are deeply reorganized. + + Since 2015, we work hard to reduce the changes to public APIs. When + we need to rename a public library symbol in S4U, we let your + compiler issue an explicative warning when you use the deprecated + function. These messages remain for four releases, i.e. for one full + year, before turning into an error. Starting with v3.15, your can + also adapt to API changes with the SIMGRID_VERSION macro, that is + defined to 31500 for v3.15, to 31901 for v3.19.1 and so on. + + Starting with this v3.19.1, our commitment to reduce the changes to + the public interfaces is extended from the API to the ABI: a program + using only MSG or SimDag and compiled against a given version of + simgrid can probably be used with a later version of SimGrid without + recompilation. We will do our best... but don't expect too much of + it, that's a really difficult goal during such profund refactoring. + + The difference between v3.19 and v3.19.1 is that the former was + accidentally breaking the ABI of MSG, while the later is restoring + the previous ABI. + + S4U and kernel APIs will still evolve until SimGrid4, with one-year + deprecation warnings as currently. In fact, cleaning up these + interfaces and converting them to snake_case() is one release goal of + v3.20. But don't worry, we are working to smooth this upgrade path. + + In summary, new projects should start with S4U to benefit of the + future, but old MSG projects should still be usable with no change. + +---------------------------------------------------------------------------- + +SimGrid (3.19) Released March 20 2018 + + The Moscovitly-cold Spring release. + + SMPI user-visible improvements: + - Support of MPI_Type_create_subarray + - Unimplemented MPI calls now abort (instead of issuing a warning) + Some harmless calls around errhandlers still only issue a warning. + - MPI_Sendrecv was behaving badly when MPI_PROC_NULL was sender or receiver. + - Starting MPI ranks (or even MSG/S4U actors) once the simulation started + is now possible (mmap privatization was refactored to this end). + Adding new SMPI instances should also be technically doable now. + + SMPI internal cleanups: + - Removed index notion from SMPI -- no more "getPid() - 1"! + In tracing files, actors are called rank- but these are + NOT the real ranks (tracing several communicators is not supported yet). + - Deprecate smpi_process_index() (will be removed in 3.22) + - Better testing on classical proxy apps, through an external project: + https://github.com/simgrid/SMPI-proxy-apps/ + + Documentation + - Use a graphical TOC to make it easier to find the documentation you need + - Revamp the MSG tutorial + + MSG + - Fix MSG_task_get_remaining_work_ratio(): return 1.0 for unstarted tasks. + - Remove parameter of MSG_process_killall(). + Resetting the PID was bogus anyway (several actors could have the same PID). + + S4U + - Execution->setHost() can be called after start(), to migrate it. + - Comm::test_any() is now implemented. + - s4u::Actor now has onCreation() and onDestruction() signals. + - Install some kernel header files for the users' plugins and more. + Warning, their API is really not stable yet. + include/simgrid/kernel/resource/{Action,Resource,Model}.hpp + include/simgrid/kernel/routing/*Zone.hpp + + SimDag + - SD_task_dependency_add(): remove unused parameters 'name' and 'data'. + + Build System and other cleanups: + - Remove unused run-time parameter "tracing/onelink-only". + - SimGrid now works with intel compilers (MC still buggy) + - Remove XBT_LOG_CONNECT, it should be useless nowadays. + - tesh kills subprocesses on timeout (but not on windows) + + PLATFORM: + - Rename FULLDUPLEX into SPLITDUPLEX (old name still accepted) + + Fixed bugs: + - #194: Feature request: simgrid::s4u::Comm::test_any() + - #245: migrating an actor does not migrate its execution + - #253: Feature Request: expose clusters as objects + - #254: Something seems wrong with s4u::Actor::kill(aid_t) + - #255: Tesh broken on Windows + - #256: Modernize FindSimGrid.cmake + - #257: Fix (ab)use of CMake install + +---------------------------------------------------------------------------- + +SimGrid (3.18) Released December 24 2017 + + The "Ho Ho Ho! SimGrid 4 beta is coming to town" release. + + MSG IS NOW DEPRECATED. Please use S4U for new projects. + - Support for MSG should not be removed from SimGrid before 2020, + but future evolutions will be limited to the integration of + user-provided patches. + + S4U New features + - s4u::onDeadlock() signal, run before stopping the simulation. + - s4u::Exec: asynchronous executions (abstraction of background + threads) + - s4u::Host->getLoad() returns the achieved speed in flops/s + + S4U API changes + - Link::name() is deprecated and will be removed in v3.21, use + Link::getCname() instead. + - Mailbox::getName() changed to return a std::string, use + Mailbox::getCname() instead to get a char*. + - Storage::getName() changed to return a std::string, use + Storage::getCname() instead to get a char*. + - s4u::allStorages() becomes s4u::getStorageList(whereTo) + to have both allocation and deallocation of the map in user space. + + MSG + - Forbid the use of MSG_task_get_flops_amount() on parallel tasks: + The amount of flops remaining to do is a vector, not a scalar. + - Introduce MSG_task_get_remaining_work_ratio(), which does what its + name implies on both sequential and parallel tasks. + - Both changes fix GitHub's #223 using PR #237 as a basis. + Thanks Michael Mercier. + - Most examples were converted to S4U and hidden elsewhere at tests. + Rationale: we still want MSG to work; we want newcomers to use S4U. + + SURF + - LMM stuff moved to its own namespace: simgrid::kernel::lmm. + - Renamed LMM classes (e.g. s_lmm_system_t -> System). + + SMPI + - Switch to the faster dlopen privatization mechanism by default + - Documentation improvments + + Virtual Machines + - Live migration is getting moved to a plugin. Dirty page tracking is + the first part of this plugin. This imply that VM migration is now + only possible if one this function is called: + - C/MSG: MSG_vm_live_migration_plugin_init() + - C/C++: sg_vm_live_migration_plugin_init() + - Java: Msg.liveMigrationInit() + For C and C++, "simgrid/plugins/live_migration.h" also has to be + included. + + XBT + - Define class simgrid::xbt::Path to manage file names. + - Removed unused functions: + - xbt/file.h: xbt_basename(), xbt_dirname(), xbt_getline() + - xbt/graph.h: xbt_graph_edge_get_length(), xbt_graph_edge_set_length, + xbt_graph_export_graphviz() + - xbt/str.h: xbt_str_join() + - Remove unused datatypes: + - xbt/heap.h: use std::priority_queue or boost::heap instead + - xbt/swag.h: use boost::intrusive::list instead + + PLUGINS: + - New link_energy plugin for the consumption of the links. + - All of the operations on files and storage contents have been + packaged into a plugin (src/plugins/file_system). The current + public interface can be found in + include/simgrid/plugins/file_system.h + To use these functions you now have to initialize the plugin by + calling MSG_storage_file_system_init() just after calling + MSG_init() or sg_storage_file_system_init() just after creating + the Engine. + + XML + - Remove the undocumented/untested tag + + TRACE + - Remove viva specific tracing as the tool is no longer maintained + + Fixed bugs: + - #248: Kill of finished processes leads to segfault + - #240: xbt_cond_wait_timeout should gracefully return for C apps + - #239: please implement signal s4u::onDeadlock() + - #230: segfaults when exit() without run() + - #225: s4u::Actor::kill() doesn not really kill victims in a join() + - #223: MSG_task_get_flops_amount() not working with parallel tasks + - #222: Actor::kill() doesn't really kill and segfaults + - #221: odd LMM warning when killing an actor + - #120: Memory leak when the processes are forcefully killed + +---------------------------------------------------------------------------- + +SimGrid (3.17) Released October 8 2017 + + The Drained Leaks release: (almost) no known leaks despite the tests. + + Even very long simulations will preserve your memory: our testsuite + stresses SimGrid for over 45mn on fast machines for a coverage of + over 80%, and there is only one single known leak, of about 4kb. + + + S4U + - Comm.detach(): start and forget about asynchronous emission. A cleanup + handler may be given to free resources if the comm cannot be completed. + - this_actor::send(mailbox) is now mailbox->put() + - New: simgrid::s4u::Comm::wait_all() + - New: Host.execute() for remote executions. + + SURF + - Unused option network/sender-gap is removed. + + MSG + - Deprecate MSG_task_isend_with_matching(): This unused feature + really complicates our internals. Will be removed in v3.20. + + Simix + - Improved context termination. It is now possible to free resources, even + when a process is forcibly killed. + - ContextBoost: add support for Boost versions above 1.61. + + XBT + - Bring back run-time option --cfg=exception/cutpath to remove exception + backtraces. + - Removed unused functions: + - xbt/str.h: xbt_str_split_str(), xbt_str_subst(), xbt_str_ltrim(), + xbt_str_rtrim(), xbt_str_trim(). + - xbt/xbt_os_thread.h: xbt_os_thread_cancel(), xbt_os_thread_detach(). + + Misc + - Removed header files obsolete since SimGrid 3.12: + msg/datatypes.h, msg/msg.h, simdag/datatypes.h, simdag/simdag.h. + - Fix many bugs: + - #3: SD_exit should be made optional + - #120: Memory leak when the processes are forcefully killed + - #159: Threading test regression in Actor refcounting + - #170: simgrid::s4u::Comm::wait_any() returns too many comms + - #185: simgrid::s4u::Engine::instance()->shutdown() segfaults + - #186: Actor::killAll() segfaults if some process is blocked on wait() + - #191: VM migration and pstate + - #192: Updating the energy consumptions of all hosts crashes with VMs + - #195: All actors have PID=0 in the logs + - #204: Sometimes segfault with thread contexts and mmap privatization + - #222: Actor::kill() doesn't really kill and segfaults + - #225: Actor::kill() doesn't really kill when victims are doing a join() + +---------------------------------------------------------------------------- + +SimGrid (3.16) Released June 22. 2017. + + The Blooming Spring Release: developments are budding. Portability status: - FreeBSD: Disable SMPI mmap privatization, switch automatically to dlopen. - Mac, BSD: dlopen+thread broken, switch automatically to raw contexts. + - Java JAR file should be finally fully working on Mac OSX too. XML platforms: Switch to platform v4.1 format. - * This is a backward compatible change: v4 are valid v4.1 files + * This is (mainly) a backward compatible change: v4 are valid v4.1 files - can be used as a synonym for the now deprecated - - an be used as a synonym for the now deprecated + - can be used as a synonym for the now deprecated - an be used as a synonym for the now deprecated - can be used as a synonym for the now deprecated - state_file and avail_file periodicity is now easier to express (check the documentation) the old behavior should still work. + * Storage: not backward compatible, but it seems that nobody ever used it + - Remove attribute 'content_type' of : was never used + - Make attribute 'model' of optional: for future usage + - Remove Bconnection model property: was never (in)validated. Replaced by + the maximum of the read and write bandwidth as a resource constraint. SimDag - - New and Backwards Compatibility break: + - 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. + 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. + + Virtual Machines + - Allow multicore VMs, with the correct sharing (unless you overcommit) + BUG: vCPU overcommitting still leads to buggy sharing, though. WIP. + + Energy + - New function to update the consumption of all hosts at once. + - Fix the model for multi-core hosts, linear in the amount of busy + cores with an abnormality for pIdle (see paper). + BUG: Still not satisfactory for ptask on mono-cores. MSG - - The netzone are now available from the MSG API. + - 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 + - New option: smpi/shared-malloc-blocksize . Relevant only when global shared + mallocs mode is used, allows to change the size of the fake file used + (default 1MB), to potentially limit the number of mappings for large runs. + - Support for sparse privatized malloc with SMPI_PARTIAL_SHARED_MALLOC() + - Fortran ifort and flang compilers support + - New RMA calls supported (experimental): + - MPI_Win_allocate, MPI_Win_create_dynamic, MPI_Win_attach + - MPI_Win_detach, MPI_Win_set_info, MPI_Win_get_info + - MPI_Win_lock_all, MPI_Win_unlock_all, MPI_Win_flush + - MPI_Win_flush_local, MPI_Win_flush_all, MPI_Win_flush_local_all + - MPI_Op_commutative, MPI_Fetch_and_Op, MPI_Compare_and_swap + - MPI_Rput, MPI_Rget, MPI_Raccumulate, MPI_Rget_accumulate + + S4U + - New: this_actor::isMaestro() returns whether we are in kernel mode. + - Behind the scene, ActivityImpl are now automatically refcounted. + Removing this nasty bottleneck will greatly simplify our internals. XBT - Replay: New function xbt_replay_action_get(): Retrieve the function previously associated to an event type. - DROPPED FUNCTION: xbt_str_varsubst() - DROPPED MODULE: strbuff. We don't need it anymore. + - DROPPED MODULE: matrix. We don't need it anymore. + - DROPPED MODULE: lib. We don't need it anymore. - -- Release target: June 21 2017 -- Da SimGrid team + -- Thu Jun 22 22:48:12 CEST 2017 -- Da SimGrid team -SimGrid (3.15) stable; urgency=low +SimGrid (3.15) Released March 22. 2017 The Spring Release: continuous integration servers become green We fixed even the transient bugs on all target architectures: @@ -49,7 +450,7 @@ SimGrid (3.15) stable; urgency=low MSG - New: MSG_process_yield(). Stop and yield to other processes. - - New: MSG_process_daemon(). Daemon processes are automatically killed + - 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() @@ -61,13 +462,13 @@ SimGrid (3.15) stable; urgency=low - 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. + - 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 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. + 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. @@ -89,21 +490,21 @@ SimGrid (3.15) stable; urgency=low SimDag - Backwards Compatibility breaks - - The SD_route_get_list and SD_route_get_size functions have been removed. - They are replaced by the unique + - 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 + 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. + 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++). + - 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. + - 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 + - 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. @@ -125,9 +526,7 @@ SimGrid (3.15) stable; urgency=low - A 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 (3.14.159) stable; urgency=low +SimGrid (3.14.159) Released December 28. 2016 The previous release was only a crude approximation of a Pi release; this one should be a bit better. @@ -137,9 +536,7 @@ SimGrid (3.14.159) stable; urgency=low - 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 (3.14) stable; urgency=low +SimGrid (3.14) Released December 24. 2016 Documentation * The whole documentation was reworked and reorganized. There is @@ -154,13 +551,13 @@ SimGrid (3.14) stable; urgency=low 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 + 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 @@ -172,15 +569,15 @@ SimGrid (3.14) stable; urgency=low * 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 + * 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. + * SMPI tracing: fixed issue with poor matching of send/receives. - * Replay : Fix broken waitall + * Replay: Fix broken waitall New functions and features * MSG_parallel_task_execute_with_timeout, to timeout computations. @@ -203,11 +600,11 @@ SimGrid (3.14) stable; urgency=low - 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(). + 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. + * 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 @@ -215,8 +612,8 @@ SimGrid (3.14) stable; urgency=low 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: + + Storage: * Added option storage/max_file_descriptors to allow more than 1024 files opened SURF: @@ -225,31 +622,29 @@ SimGrid (3.14) stable; urgency=low XML: * Add Exa- and Peta- units such as EiB, EB, Eib, Eb for size, and - EiBps, EBps, Eibps, Ebps for bandwidth. + 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 + * 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 (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, + - 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 @@ -261,11 +656,11 @@ SimGrid (3.13) stable; urgency=low way, with filter function. - MSG_task_listen_from_host - MSG_mailbox_get_count_host_waiting_tasks - - MSG_mailbox_put_with_timeout was removed. + - 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 + - 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 @@ -275,7 +670,7 @@ SimGrid (3.13) stable; urgency=low - 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. + - 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. @@ -314,7 +709,7 @@ SimGrid (3.13) stable; urgency=low 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). @@ -325,14 +720,14 @@ SimGrid (3.13) stable; urgency=low 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). + * 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. + * 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 + 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 @@ -368,7 +763,7 @@ SimGrid (3.13) stable; urgency=low * 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 (3.12) stable; urgency=low @@ -434,7 +829,7 @@ SimGrid (3.12) stable; urgency=low 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. + - 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 @@ -443,13 +838,13 @@ SimGrid (3.12) stable; urgency=low - 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 + - 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/). + - 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 @@ -457,7 +852,7 @@ SimGrid (3.12) stable; urgency=low - 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 + - [#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 @@ -483,7 +878,7 @@ SimGrid (3.12) stable; urgency=low * 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. + - 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. @@ -584,18 +979,18 @@ SimGrid (3.11) stable; urgency=low one node. * Collective communication algorithms should not crash if used with improper number of nodes and report the error. - * SMPI now partially supports MPI_Topologies : MPI_Cart_create, MPI_Cart_shift, + * SMPI now partially supports MPI_Topologies: MPI_Cart_create, MPI_Cart_shift, MPI_Cart_rank, MPI_Cart_get, MPI_Cart_coords, MPI_Cartdim_get, MPI_Dims_create, MPI_Cart_sub are supported. * New interface to use SMPI programmatically (still depends on MSG for - some parts, see examples/smpi/smpi_msg_masterslave) : + some parts, see examples/smpi/smpi_msg_masterslave): - SMPI_app_instance_register(const char *name, xbt_main_func_t code, int num_processes) - SMPI_init() - SMPI_finalize(); * Global variables privatization in MPI executables is now performed at runtime with the option smpi/privatize_global_variables (default:no). - Limitations : Linux/BSD only, with mmap enabled. Global variables inside + Limitations: Linux/BSD only, with mmap enabled. Global variables inside dynamic libraries loaded by the application are not privatized (static linking with these libraries is advised in this case) @@ -670,7 +1065,7 @@ SimGrid (3.10) stable; urgency=low - allows to select one in particular with --cfg=smpi/coll_name:algorithm - allows to use the decision logic of OpenMPI(1.7) or MPICH(3.0.4) by setting --cfg=smpi/coll_selector:(mpich/ompi) - * Support for new functions : MPI_Issend, MPI_Ssend, Commutative operations in + * Support for new functions: MPI_Issend, MPI_Ssend, Commutative operations in Reduce * Add a --cfg:tracing/smpi/internals option, to trace internal communications happening inside a collective SMPI call. @@ -881,7 +1276,7 @@ SimGrid (3.8) stable; urgency=low by a SD_TASK_COMM_E2E typed task. This rate depends on both the nominal bandwidth on the route onto which the task is scheduled and the amount of data to transfer. - To divide the nominal bandwidth by 2, the rate then has to be : + To divide the nominal bandwidth by 2, the rate then has to be: rate = bandwidth/(2*amount) * Compute tasks that have failed can now be rescheduled and executed again (from their beginning) @@ -1957,7 +2352,7 @@ SimGrid (3.3.2) stable; urgency=low action_free ~> action_unref action_change_state ~> action_state_set action_get_state ~> action_state_get - - Change model methods into functions : + - Change model methods into functions: (model)->common_public->action_use ~> surf_action_ref * Implement a generic resource; use it as ancestor to specific ones @@ -2388,7 +2783,7 @@ SimGrid (3.1) stable; urgency=high * After a (long ?) discussion on simgrid-devel, we have decided that the convention we had on units was stupid. That is why it has been decided to move from (MBits, MFlops, seconds) to (Bits, Flops, seconds). - WARNING : This means that all previous platform files will not work as + WARNING: This means that all previous platform files will not work as such with this version! A warning is issued to ask users to update their files. [AL] A conversion script can be found in the contrib module of the CVS, under @@ -2849,7 +3244,7 @@ SimGrid (2.90) unstable; urgency=low * REVOLUTION 1: The SimGrid project has merged with the GRAS project lead by Martin Quinson. As a consequence SimGrid gains a lot in portability, speed, and a lot more but you'll figure it out later. - SimGrid now comprises 3 different projects : MSG, GRAS and SMPI. + SimGrid now comprises 3 different projects: MSG, GRAS and SMPI. I wanted to release the new MSG as soon as possible and I have broken GRAS, which is the reason why, for now, only MSG is fully functional. A laconic description of these projects is available @@ -2864,7 +3259,7 @@ SimGrid (2.90) unstable; urgency=low * REVOLUTION 3: I have tried to change a little as possible the API of MSG but a few things really had to disappear. The main differences - with the previous version are : + with the previous version are: 1) no more m_links_t and the corresponding functions. Platforms are directly read from a XML description and cannot be hard-coded anymore. The same format is used for application deployment