Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Have smpirun, smpicc and friends display the simgrid git hash version on --git-version
[simgrid.git] / ChangeLog
index 48b472a..5cdf3a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.10) NOT RELEASED; urgency=low
+SimGrid (3.12) NOT RELEASED; urgency=low
+
+ cMSG:
+ * Interface improvement:
+   - Rename MSG_host_is_avail(h) to MSG_host_is_on(h)
+   - Massive cleanups in the functions related to the energy
+ jMSG:
+ * Interface improvement:
+   - Rename Host.isAvail() to Host.isOn()
+   
+ SIMIX:
+ * New functions
+   - SIMIX_process_throw: raises an exception in a remote process
+ * Refactoring: Separate submodules
+   - libsmx: the public interface, as libc in a real system
+   - popping: the strange dance that converts a user request into a kernel handling
+   - smx_context_*: the virtualization mechanisms that embeed the user code
+   - smx_*: the handling of each simcalls
+ * Rename smx_action_t into smx_synchro_t, making explicit that these
+   things are used to synchronize processes with their environment.    
+   For example, a communication is a sort of synchronization involving
+   the communicating processes (that may block until the exchange) and
+   the platform. The same can be said from computations, etc.
+   
+ 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. 
+   - 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
+   - MPI_Info_* functions (beware, get_nthkey may not follow the insertion order)
+   - MPI_Pack, MPI_Unpack and MPI_Pack_size functions
+   - 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 (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/).
+   - Support for Rabenseifner Reduce/Allreduce algorithms (https://fs.hlrs.de/projects/par/mpi//myreduce.html)
+ * Replay 
+   - Replay now uses algorithms from wanted collective selector
+   - Replay can be used with SMP-aware algorithms
+   - 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
+   - Correctly use loopback on fat-tree clusters
+   - Asynchronous small messages shouldn't trigger deadlocks anymore
+ SURF
+  * Bug fixes 
+   - "Full" network optimization flag was broken since Surf++
+   - Better handling of precision flags in maxmin
+   - Fix bug causing sometimes "Impossible" errors
+   - Properly pass cluster properties to included hosts
+  * Improvement of the Energy plugin.
+    - Always update the consumption before returning that value
+    - New property: watt_off to denote the disipation when the host is off
+ XBT
+  * 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.
+
+
+ -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.11) stable; urgency=low
+
+ The Class Release.
+
+ Tools:
+ * Normalizing pointers addresses tool for better diff between logs
+
+ Examples:
+ * Add cloud examples using new VMs
+   - examples/msg/cloud/two_tasks_vm.tesh
+   - examples/msg/cloud/simple_vm.tesh
+   - examples/java/cloud/cloud.tesh
+   - examples/java/cloud/migration/migration.tesh
+ * Add java surf examples:
+   - examples/java/surfPlugin/surf_plugin.tesh
+   - examples/java/reservationSurfPlugin/reservation_surf_plugin.tes
+   - examples/java/surfCpuModel/surf_cpu_model.tesh
+ * Add SMPI+MSG example:
+   - examples/smpi/smpi_msg_masterslave/
+
+ TeshSuite:
+ * Add tests:
+   - msg process test
+   - msg task destroy cancel test
+   - msg_host on/off test
+ * Move all tests in testsuite to teshsuite (adding tesh files)
+ * Restructure teshsuites
+   - one folder for each kind of test
+ * Restructure AddTests.cmake
+   - unify tests names
+   - structure the order of tests (with sections)
+
+ MSG:
+ * Add virtual machine
+   - creation of a VM on a PM
+   - migration of a VM from a PM to another PM
+ * New functions
+   - MSG_process_join(msg_process_t process, double timeout)
+   - msg_bar_t MSG_barrier_init(unsigned int count)
+   - int MSG_barrier_wait(msg_bar_t barrier)
+   - void MSG_barrier_destroy(msg_bar_t barrier)
+   - msg_as_t MSG_environment_as_get_by_name(const char * name)
+ * New option "msg/debug_multiple_use" to help debugging when a task is used
+   several times
+ * MSG IO
+   - Improvements and finalization of MSG_storage, MSG_file APIs and their
+     documentation
+   - Increase code coverage in test suites
+   - Bug fixes
+
+ SIMIX:
+ * Protect context stacks against stack overflow. The number of protected memory
+   pages allocated on the top of each stack (1 by default) can be configured
+   with the new command line option --cfg=contexts/guard_size:<value>.
+ * Simcalls are now generated by a python script that
+   - generates files included by SimGrid
+   - checks that all the functions exist, and proposes prototypes
+ * Clean simcalls
+   - remove sem_destroy, file_set_data, comm_destroy, vm_set_state,
+     host_set_data, host_get_data
+ * New simcalls
+   - simcall_process_join(smx_process_t process, double timeout)
+ * Fix bug where sleeping processing could not be suspended.
+
+ SURF:
+ * Translate surf models from C to C++
+   - Generic classes for all models: Model, Resource, Action
+   - A generic interface for each kind of model (CPU, Network, Storage
+     Workstation, WorkstationVM)
+   - C bindings
+ * Translate surf routings from C to C++
+ * Add callbacks using sigc++ or boost::signals2
+   - Add callback functions for resource creation/destruction
+   - Add callback functions for action state change
+   - Handle Energy as a plugin
+ * Replace swag by boost::intrusive
+ * Add new routing models for clusters. For documentation, see
+   http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html#pf_cluster
+   - tori, with topology="TORUS" and topo_parameters="ndim1,ndim2,...,ndimn"
+     parameters for cluster tag
+   - Fat trees, with topology="FAT_TREE" and
+     topo_parameters="h;m1,...,mh;w1,...,wh;p1,...,ph" parameters for cluster tag
+   - see examples/platforms/torus_cluster.xml and
+     examples/platforms/fat_tree_cluster.xml
+ * More documentation
+
+ SMPI:
+ * Hostfiles support host:nb_processes construct to deploy several processes on
+   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,
+   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) :
+   - 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
+   dynamic libraries loaded by the application are not privatized (static
+   linking with these libraries is advised in this case)
+
+ Tracing:
+ * Options defined in XML work correctly now.
+
+ Java:
+ * New cmake option, enable_lib_in_jar, to control whether native libraries are
+   copied into simgrid.jar or not (ON by default).  Use this option if you want
+   to reduce the size of the installed simgrid.jar, *and* the native libraries
+   are kept installed elsewhere.
+ * Surf binding with SWIG (code generated in maintainer mode only):
+   - plugin to handle callbacks
+   - CPU model only for the moment
+
+ Build System:
+ * Supernovae build mode is definitively removed. It was used to improve
+   inlining and inter-module optimizations. It is nowadays superseded by
+   link-time optimizations commonly available in compilers.
+ * Update ns-3 find lib. Bindings for ns-3 should work again now.
+ * Add boost dependency for surf++
+ * Add new macro for tests
+   - ADD_TESH(name <tesh_args>)
+   - ADD_TESH_FACTORIES(name "thread;ucontext;raw" <tesh_args>)
 
  XBT:
 
  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 xbt_cfg_elm_boolean type
- * 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:yes allows to circumvent this issue.
+ * New functions
+   - xbt_bar_t XBT_barrier_init(unsigned int count)
+   - int XBT_barrier_wait(xbt_bar_t barrier)
+   - void XBT_barrier_destroy(xbt_bar_t barrier)
+ * Make the xbt_os_time module public
+
+ -- Sat May 31 22:39:38 CEST 2014 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.10) stable; 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
 
  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
- * Bugfix: Task.setDataSize() only changed the C world, not the value
+ * Bug fix: Task.setDataSize() only changed the C world, not the value
    cached in the Java world
 
  MSG:
    cached in the Java world
 
  MSG:
@@ -23,6 +220,7 @@ SimGrid (3.10) NOT RELEASED; urgency=low
    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()
    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
 
  SMPI:
  * SMPI is now included directly in the libsimgrid as the windows
@@ -35,7 +233,13 @@ SimGrid (3.10) NOT RELEASED; urgency=low
    - 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.
    - 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.
- * smpirun generates the hostfile if needed (with given hostcount and platform)
+   - 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
  * 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
@@ -44,11 +248,23 @@ SimGrid (3.10) NOT RELEASED; urgency=low
    Reduce
  * Add a --cfg:tracing/smpi/internals option, to trace internal communications
    happening inside a collective SMPI call.
    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
- * replace MPICH-1 test suite by the one from MPICH 3.0.4. Can be built using
+ * 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)
    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
 
  SimDag:
  * Allow to change SimGrid configuration (see --help) within the code
@@ -65,7 +281,28 @@ SimGrid (3.10) NOT RELEASED; urgency=low
    routing. Now peers are encapsulated in an AS and have their own private
    router but this is transparent.
 
    routing. Now peers are encapsulated in an AS and have their own private
    router but this is transparent.
 
--- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ 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.
+   There is no known memory leaks anymore, in all of our 600+ tests.
+ * 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.
+
+ -- Sun Nov 17 00:26:44 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.9) stable; urgency=low
 
 
 SimGrid (3.9) stable; urgency=low
 
@@ -141,7 +378,7 @@ SimGrid (3.9) stable; urgency=low
  TRACING:
  * Transfer the tracing files into the corresponding modules.
 
  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>
+ -- Tue Feb  5 11:31:43 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.8.1) stable; urgency=low
 
 
 SimGrid (3.8.1) stable; urgency=low
 
@@ -188,7 +425,7 @@ SimGrid (3.8) stable; urgency=low
  * New option "enable_mallocators" to disable mallocators, for debugging
    purpose ("on" by default).
 
  * New option "enable_mallocators" to disable mallocators, for debugging
    purpose ("on" by default).
 
- Simix:
+ 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
  * 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
@@ -441,7 +678,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.
 
       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
 
 
 SimGrid (3.6.2) stable; urgency=low