Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add example for smpi+dvfs.
[simgrid.git] / ChangeLog
index 1fca822..ae87cf0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.8) NOT RELEASED; urgency=low
+SimGrid (3.10-rc1) unstable; urgency=low
 
- The "SimGrid makes psssshiiiit and jumps into the cloud" release.
+ 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
 
- CMAKE:
- * Remove option custom_flags. Now use environment variables CFLAGS
-   and LDFLAGS.
+ 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:
+ * 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.
+
+-- Mon Oct 7 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
+   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)
 
- -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ 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)
+
+ -- Thu Oct 25 17:30:06 CEST 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.7.1) stable; urgency=low
 
@@ -40,6 +303,14 @@ SimGrid (3.7.1) stable; urgency=low
  SURF:
  * Fix weird behaviors when dealing with parallel tasks.
 
+ 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.
@@ -166,7 +437,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:
@@ -2313,7 +2584,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