Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Release version 3.10-rc2.
[simgrid.git] / ChangeLog
index bf17649..0b9ae9e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.8) NOT RELEASED; urgency=low
+SimGrid (3.10-rc2) unstable; urgency=low
+
+ The Clean Diaper Release, a.k.a. SimGrid is leak-free.
+
+ Java:
+ * Reintegrate Java to the main archive as desynchronizing these
+   package is not acceptable anymore (Java is now considered stable)
+ * Add explicit synchronization facilities through semaphores
+ * Bug fix: Task.setDataSize() only changed the C world, not the value
+   cached in the Java world
+
+ MSG:
+ * Dramatically change the way files are handled. API and internals changed, but
+   this part of MSG was not considered as production grade either.
+ * Add explicit synchronization facilities through semaphores
+ * Add a new function MSG_host_get_process_list()
+ * Preliminary DVFS support (see examples/msg/energy/ for details)
+
+ SMPI:
+ * SMPI is now included directly in the libsimgrid as the windows
+   linker doesn't force us on splitting it anymore.
+ * Improvements of the SMPI replay tool:
+   - Most of the collective communications are now rooted in the same process as
+     in the original application.
+   - Traces now rely on the same MPI data type as the application (MPI_BYTE was
+     used until now). Multiple data types can now be used in a trace.
+   - The replay tool now supports traces produce either by TAU or a modified
+     version of MPE.
+   - Bug Fix: the compute part of the reduce action is now taken into account.
+   - Gatherv collective is now supported
+   - SimGrid (SMPI for now) can generate replay traces as well. Option -trace-ti
+     of smpirun outputs time independent traces for the current run. One file
+     is created per process. If too many processes are simulated, this behavior
+     can be changed to one file for all processes by using the
+     tracing/smpi/format/ti_one_file flag
+ * smpirun generates the host file if needed (with given host count and platform)
+ * Integration of more than 100 STAR-MPI, MPICH, OpenMPI collective algorithms
+   - 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
+   Reduce
+ * Add a --cfg:tracing/smpi/internals option, to trace internal communications
+   happening inside a collective SMPI call.
+ * Fix the behavior of complex data types handling.
+ * Make MPI_Wtime another synchronization point to take computations into account.
+ * Replace MPICH-1 test suite by the one from MPICH 3.0.4. Can be built using
+   enable_smpi_MPICH3_testsuite flag in cmake. Run with ctest.
+ * Add all missing Fortran bindings, SMPI should work with Fortran 90
+   (no privatization of global variables yet)
+ * Preliminary DVFS support (see examples/smpi/energy/ for details)
+
+ Model-Checking;
+ * Verification of liveness properties is now available for SMPI applications
+   (in addition to MSG applications)
+ * Bugged examples using SMPI in examples/smpi/mc/
+ * Add --cfg=model-check/visited option. Allows the verification of infinite
+   programs. Detection of loops in the execution thanks to the system state
+   comparison and reduction of the state space to explore. Can be combined with
+   DPOR for safety properties.
+
+ SimDag:
+ * Allow to change SimGrid configuration (see --help) within the code
+   thanks to SD_config() as it can be done in MSG.
+ * Add a new function SD_task_set_amount() upon user request.
+
+ PLATFORM:
+ * Handle units for values (10ms, 10kiloflops, 10Bps, 1GB, ...)
+ * Remove rule based routing (no more PCRE dependency)
+ * Add a limiter_link option to cluster tag, to specify a maximum reachable
+   bandwidth in fullduplex mode when it is less than twice the nominal bandwidth.
+ * Add a loopback_bw and loopback_lat options to cluster tag.
+ * Fix the peer tag that could not be mixed with other AS within a Vivaldi
+   routing. Now peers are encapsulated in an AS and have their own private
+   router but this is transparent.
+
+ XBT:
+ * Our own implementation of getline is renamed xbt_getline, and gets
+   used even if the OS provide a getline(). This should reduce the
+   configuration complexity by using the same code on all platforms.
+ * New type: xbt_cfg_elm_boolean.
+ * Allow to use yes/no for boolean configuration options in the command line.
+ * Allow to disable SimGrid cleanups at exit from command line option.
+   There are situations where one may want a simulation to end with an exit.
+   Unfortunately, calling exit may cause SimGrid to segfault, which is quite
+   annoying when scripting around the simulator. Adding a
+   --cfg=clean_atexit:no allows to circumvent this issue.
+
+ Build System:
+ * Lots of memory leaks were corrected in this release.
+ * New command line option --version, to get SimGrid version information.
+   Packagers may want to add extra words to SIMGRID_VERSION_EXTRA defined in
+   CMakeLists.txt.
+ * Supernovae builds are deprecated, and expected to be removed in the next
+   version of SimGrid.
+
+ -- Fri Nov  8 23:54:56 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.9) stable; urgency=low
+
+ The Grasgory release: GRAS is really dead now.
+
+ * Complete overhaul of the internal host structures scheme.
+
+ GRAS:
+ * If you use GRAS, you should stay at SimGrid 3.5 (at most) since it
+   was considered as experimental and badly maintained since then.
+ * Keeping it was thus a trap to our potential users, that could take
+   it instead of MSG or SMPI by mistake despite is pity state.
+ * GRAS seems to have very few users (if any), and no one volunteered
+   to maintain it further. It also induces a lot of XBT code (for
+   portability sake), that must be maintained too.
+ * For all these reasons, we killed GRAS. If someone wants to revive it
+   in the future, don't cry, our git history still remembers of GRAS.
+
+ Documentation:
+ * Major overhaul. Merge our documentation again as time proved that
+   splitting it was really not helping our users.
+ * Further improve the developer documentation to help newcomers
+   hacking on SimGrid itself. The user documentation (and in
+   particular, the beginner documentation) is still in a sorry state.
+
+ SMPI:
+ * Now works on Windows too!
+ * Much more extensive test suite, from MPICH
+
+ SIMDAG:
+ * Add a new loader (SD_PTG_dotload) that creates a parallel task graph
+  (i.e., a DAG whose nodes are parallel tasks) from a dot file. Creates a
+  dynar of SD_TASK_COMP_PAR_AMDAHL and SD_TASK_COMM_MXN_1D_BLOCK tasks.
+ * Bug fix: let task be scheduled when the last dependency to be solved is
+   a control dependency.
+ * Remove SD_load_environment_script function.
+   Use the C sg_platf function if you want to declare a platform
+   programmatically.
+
+ MSG:
+ * New function: MSG_process_get_number()
+ * Old function documented: MSG_config()
+ * Remove MSG_load_platform_script function
+   Use the C sg_platf function if you want to declare a platform
+   programmatically.
+
+ SURF:
+ * Change the default value of the TCP_gamma constant (maximal size of TCP
+   congestion window) to a more realistic 4MiB value. If you notice changes in
+   your simulation results, you can fall back to the previous 20k tiny window
+   by adding --cfg=network/TCP_gamma:20000 on command line.
+ * (Hopefully) fix a bug wrt periodic availability and state traces
+ * Bug fix: use default values at start when first event in availability/state
+   trace is not at time 0.
+
+ PLATFORM:
+ * remove the "new_" part of function name sg_platf_new_trace_connect
+   (resulting in sg_platf_trace_connect), since it does not create
+   anything new
+
+ XBT:
+ * Kill synchronized dynars, and xbt_dynar_dopar(). We cannot think of a
+   use case where it's really mandatory, and maintaining it was a pain in
+   our code base.
+ * New: xbt_fifo_search(), search an item with a user-provided
+   comparison function instead of dumb pointer comparison.
+
+ LUA:
+ * Fix the lua deployment:
+   Use `simgrid.init_application()` before deployment instead of
+   `simgrid.msg_register_application()` after.
+
+ TRACING:
+ * Transfer the tracing files into the corresponding modules.
+
+ -- Tue Feb  5 11:31:43 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.8.1) stable; urgency=low
+
+ The "we are told that some people want to also *install* the simgrid
+ framework" release.
+
+ * Add missing file "tesh.1" to the archive.
+
+ -- Sat Oct 27 16:12:11 CEST 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.8) stable; urgency=low
+
+ The Psssshiiiit release: SimGrid jumps into the Cloud.
+
+ MSG:
+ * Add an experimental interface to manipulate VMs. They are mainly
+   process groups with very few intrinsic semantic, but they should
+   allow you to build the semantic you want easily.
+ * New function: MSG_host_set_property_value()
+ * New function: MSG_process_on_exit(). To clean memory in all cases.
+ * Bug fixes that made the host (and link) failures unusable.
+ * Add a way to auto-restart process when the host in which they are
+   executing comes back (ON_FAILURE="RESTART" on deployment file,
+   MSG_process_auto_restart_set).
+ * Use the "msg_" prefix for all datatypes (instead of m_, msg_ and MSG_),
+   please stop using the old ones, they are DEPRECATED.
+
+ * Deprecate functions MSG_global_init() / MSG_global_init_args()
+   Please use MSG_init() instead. (reducing the amount of entry
+   points in the library helps us).
+ * Make it impossible to link against the wrong version of the lib
+ * Deprecate MSG_clean(). No need to call it anymore.
+ * Function MSG_get_host_number() is not deprecated anymore.
+
+ Documentation:
+ * Split the doc into a user guide and a reference guide.
+ * Start a developper guide to help people hacking on SimGrid.
+
+ Cmake:
+ * Enable tracing by default. This modules rocks you should use it.
+ * Remove option custom_flags. Now use environment variables CFLAGS
+   and LDFLAGS.
+ * Use default cmake things to detect lua instead of home grown ones.
+ * New option "enable_mallocators" to disable mallocators, for debugging
+   purpose ("on" by default).
+
+ Simix:
+ * Bug fixes around the resource failures: don't let the processes
+   survive the host they are running onto.
+ * Add an interface to auto-restart processes when the host in which they are
+   executing comes back.
+ * Ensures that SIMIX_clean is called automatically. It's not part of
+   the public interface anymore (bindings should be updated).
 
  SimDag:
- * New type of typed tasks SD_TASK_COMP_PAR_AMDAHL that represents a
+ * Bug fix for when SD_Simulate is called with a positive value: be careful
+   when comparing doubles. Sometimes they are different for non significant
+   digits only.
+ * New types of typed tasks. SD_TASK_COMP_PAR_AMDAHL represents a
    parallel task whose initial work is distributed among host according
    to the Amdahl's law. Such tasks are created with a parameter alpha
    that corresponds to the non-parallelizable part of the computation.
-
-   Before calling SD_task_schedulel or SD_task_schedulev, the
-   SD_task_distribute_comp_amdahl function has to be called with the
-   desired number of workstations. The filling of computation_amount and
-   communication_amount (actually empty) structures is then done
-   seamlessly.
+   SD_TASK_COMM_PAR_MXN_1D_BLOCK represents a complex data redistribution
+   between two sets of workstations assuming a 1D block distribution (each
+   workstation owns a similar share of data) on both sides.
+
+   These tasks can be scheduled with SD_task_schedulel or SD_task_schedulev.
+   Data redistribution will be automatically scheduled once parent and child
+   are both scheduled. The filling of computation_amount and
+   communication_amount structures is now done seamlessly thanks to the chosen
+   assumptions.
  * New function SD_workstation_dump to display various information
+ * New function SD_task_set_rate to throttle the bandwidth allowed to be used
+   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 :
+                     rate = bandwidth/(2*amount)
+ * Compute tasks that have failed can now be rescheduled and executed again
+   (from their beginning)
+ * Increasing source code coverage (src/simdag is now covered at 95.8%
+   on average)
+
+ SMPI:
+ * Re-implement time-independent trace replay using SMPI (at the
+   smpi_smp_* level) instead of MSG. This should replace
+   examples/msg/actions/actions.c
+ * Implement support of MPI Datatypes (vectors, hvectors, indexed,
+   hindexed and structs)
+ * Implement the exchange of non-contiguous data.
+   [Khalid Hasanov & Jean-Noel Quintin] Thanks for the patch, guys.
+ * Correct behavior of smpi/sender_gap and set its default value to 0
+ * Add option to asynchronously send small messages to allow better
+   simulation of pt2pt communications. --cfg=smpi/async_small_threshold:value
+   specifies the size in bytes under which messages will be asynchronously sent.
+ * Add support of MPI_Iprobe, MPI_Probe, MPI_Testall, MPI_Wtick functions
+ * SMPI now handles more MPI specific values in input. Closes [#14389] and [#14388]
+
+ SimGrid:
+ * New C interface to define a platform: XML is now optional.
+   For more info, please check include/simgrid/platf.h.
+ * New interface to define random platforms from the C:
+   For more info, please check include/simgrid/platf_generator.h and
+   examples/msg/masterslave/masterslave_platfgen.c
+ * Export a sg_cmdline dynar containing all the arguments we got from
+   the command line.
+
+ TRACE:
+ * Two new tracing options for adding comments to trace file so you
+   can track your experiments (see --help-tracing for details).
+ * New option to generate a impoverished trace file (--cfg=tracing/basic:1)
+ * Adding the SimGrid version that generated the trace file as a comment.
+ * Instrumenting other MSG functions (MSG_task_isend_with_matching and MSG_task_dsend)
+ * Fix to avoid key clashes on Paje links
+ * Other minor fixes related to the Paje specification
+
+ XBT:
+ * Functions xbt_dict_hash() and xbt_dict_hash_ext() are made public,
+   and renamed to xbt_str_hash() and xbt_str_hash_ext().
+ * New function: xbt_os_timer_resume() to restart a timer w/o resetting it.
+ * Greatly improve the robustness of mmalloc to user errors (such as
+   using an area after freeing it, or freeing it twice)
 
- -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Thu Oct 25 17:30:06 CEST 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
-SimGrid (3.7.1) NOT RELEASED; urgency=low
+SimGrid (3.7.1) stable; urgency=low
+
+ MSG:
+ * Restore the prototype of MSG_process_create_with_environment() to
+   the pre-3.7 situation by removing the kill_time argument.
+ * Add a MSG_process_set_kill_time() function instead.
 
  SURF:
  * Fix weird behaviors when dealing with parallel tasks.
 
- Bug fixes, cosmetics and small improvements
+ WINDOWS:
+ * Simgrid is now built as a dll.
+ * Simgrid-java now works on Windows.
+ * Simgrid-Java is now included into Windows package.
+
+ MacOS:
+ * First pre-build package for MacOSX.
+
+ Build System:
  * Fix compilation when using MSG_USE_DEPRECATED.
+ * Fix some compilation issues on Macs and Windows.
+ * Reduce the number of failing tests on exotic systems, like Debian/Hurd.
+ * Environment variables CFLAGS and LDFLAGS are now honored by cmake.
 
- Portability:
- * Fix compilation on Macs.
+ We discovered that the Lua console is broken, but we are missing the
+ manpower to fix it right now. The problem existed in 3.7 too, so we
+ are not blocking the release for that. Sorry if you depended on this
+ feature, any help would be really welcome.
 
- -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Thu Jun 7 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.7) stable; urgency=low
 
@@ -141,7 +440,7 @@ SimGrid (3.7) stable; urgency=low
     - Add new runtime parameters --help-logs and --help-log-categories
       to display informations about supported logging parameters and
       categories.
-    - Old deprecated parameters --{gras,surf,msg.simix,xbt}-log=...
+    - Old deprecated parameters --{gras,surf,msg,simix,xbt}-log=...
       don't exists anymore.
   * Mallocators: allow value NULL for the reset function.
   * Dicts:
@@ -171,7 +470,7 @@ SimGrid (3.7) stable; urgency=low
       Turn model-checking OFF if simulation performance matters to you.
       Not enabling it at runtime is not enough, disable it in cmake.
 
 -- Tue May 15 11:30:19 UTC 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Tue May 15 11:30:19 UTC 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.6.2) stable; urgency=low
 
@@ -1199,7 +1498,7 @@ SimGrid (3.3) stable; urgency=high
     [contributed by Sékou Diakite, many thanks]
 
  GRAS:
-  * Introduce a listener thread in charge of receiving incomming
+  * Introduce a listener thread in charge of receiving incoming
     messages from the network. It allows to overlap communication and
     computation but most notably, it removes some stupid deadlocks due
     to the fact that so far, a process could not send and receive at
@@ -2288,7 +2587,7 @@ SimGrid (2.90) unstable; urgency=low
  [Tests]
    - use gras_exit in example to track memleaks
    - get rid of gs_example now that GS is properly integrated into gras
-   - update run_test to integrate the lastest tests (datadesc)
+   - update run_test to integrate the latest tests (datadesc)
  [Logging]
    - rename WARNINGn macros to WARNn since it prooved error-prone