X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c6b15af33f9df989af4a8fd4d94b14fddfd7b91b..f9de85055aad497b71cb6a2484096228acfa0432:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 73d46efe82..71afbb0eaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,30 +1,210 @@ -SimGrid (3.18) NOT RELEASED YET (target: December 24 2017) +SimGrid (3.20) NOT RELEASED YET (Release target: June 21. 2018 10:07 UTC) + +TRACE + - Change --cfg=tracing/msg/vm to --cfg=tracing/vm as virtual machine + behavior tracing is no longer limited to MSG + + S4U: + - Introduced new function simgrid::s4u::Host::get_actor_count. This function + returns the number of actors running on a specific host. + + Simix: + - Add parameter --cfg=simix/breakpoint to raise a SIGTRAP at given time. + + SMPI: + - 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. + + XBT: + - Config: the C API is now deprecated (will be removed in 3.23), and + the C++ API has been slightly improved. + + Fixed bugs: + - #143: Setting a breakpoint at a given time + - #258: daemonized actors hang after all non-daemonized actors have completed + +---------------------------------------------------------------------------- + +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 - - Link::name() is deprecated and will be removed in v3.21, use instead - Link::getCname(). - - Mailbox::getName() changed to return a std::string, use instead - Mailbox::getCname() to get a char*. - - Storage::getName() changed to return a std::string, use intead - Storage::getCname() to get a char*. + - 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 + - #254: Something seems wrong with s4u::Actor::kill(aid_t) + - #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 - - Deprecate MSG_task_get_flops_amount(). Its semantic was weird: - before the start it returned the total amount of flops; - after it returned the ratio of remaining work. Split it: - MSG_task_get_initial_flops_amount() for first behavior - MSG_task_get_remaining_work_ratio() for the second one. - This fixes GitHub's #223 using PR #237. Thanks Michael Mercier. + - 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 @@ -33,7 +213,17 @@ SimGrid (3.18) NOT RELEASED YET (target: December 24 2017) - Remove viva specific tracing as the tool is no longer maintained Fixed bugs: - - #248: Kill of finished MSG processes leads to segfault + - #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 @@ -119,7 +309,7 @@ SimGrid (3.16) Released June 22. 2017. 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. + now returns void. Virtual Machines - Allow multicore VMs, with the correct sharing (unless you overcommit)