Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Introduce DTD v4
[simgrid.git] / ChangeLog
index edea97f..6b04d3f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.12) NOT RELEASED; urgency=low
+SimGrid (3.13) UNRELEASED; urgency=low
+
+ The Easter Trim Release.
+
+ Backwards Compatibility breaks
+   - The option "model-check/sparse-checkpoint" was renamed to
+     "model-check/sparse_checkpoint" as we attempt to unify our naming
+     schemes.
+   - The option smpi/async_small_thres was renamed to smpi/async_small_thresh
+     as we attempt to unify our naming schemes. 
+   - The option smpi/send_is_detached_thres was renamed to
+     smpi/send_is_detached_thresh as we attempt to unify our naming schemes.
+   - We removed support for writing your simulation in Lua; you can use
+     the Java bindings.
+ XML platforms:
+ * Switch to platform v4 format.
+   - Rename (power->speed) the attributes describing the amount of flop
+     that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
+   - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
+   - The DOCTYPE points to the right URL (this file):
+     http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
+   - A warning is emitted for unit-less values (they are still accepted).
+     - speed. Default: 'f' or 'flops'. Also defined:
+        'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
+        'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
+     - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
+       Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+       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
+ * Use the tool simgrid_update_xml to upgrade your files. It does not
+   convert the unit-less values. Use tools/sg_xml_unit_converter.py
+   for that (or live with the warnings).
+
+ S4U
+ * s4u::Host is now the prefered public interface to the Host features.
+   sg_host_* functions are C bindings to the exact same behavior
+   MSG_host_* and SD_workstation_* are #define to the sg_host_* ones
+
+ MSG
+ * Kill all deprecated functions. They were deprecated since a few
+   releases anyway, and probably did not even compile anymore.
+
+ Simix
+ * simgrid::simix::kernel() is the closure callback. It ensures that
+    the lambda or closure passed as a parameter will run in kernel mode.
+   Every callbacks should be rewritten to that interface at some point.
+   
+ Surf
+ * Reorganizing and cleaning the internals all around the place.
+
+ SMPI
+ * Remove old default barrier/bcast buggy algorithms (see #18407)
+ * Various bugfixes to handle more codes
+
+ XBT
+ * Kill the setset data container: MC don't use it anymore.
+ * Kill the queue data container: it made more sense with GRAS.
+ * Kill the xbt_peer_t data type: it's useless without GRAS.
+ * New functions:
+   - xbt_dynar_sort_strings(), when the content is char*
+   - xbt_str_parse_int / xbt_str_parse_double, wrapping strtol/strtod
+     They throw exceptions on invalid input.
+ JAVA:
+ * Remove the ability to write internal plugins in Java. 
+   It may be reintroduced once the ongoing cleanup is done.
+
+ -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.12) stable; urgency=low
+
+ The Facelift Release.
+
+ Build System
+  * Require g++ v4.7 at least to not speak prehistorical C++.
+  * Require Boost 1.48 (for signal2 component).
+  * Java must be version 7 at least when activated.
+  * Builds on Windows again (including Java bindings).
+  * Tracing is now always enabled (no way to turn it out)
+  * Remove GTNetS. It was not working anyway.
+  * Various cleanups in the cmake scripts.
+  * Move headers around to sort them out on installed systems:
+    - instr/instr.h  -> simgrid/instr.h
+    - instr/jedule/* -> simgrid/jedule
+    - simdag/datatypes.h was removed
+    - simdag/simdag.h -> simgrid/simdag.h
+    - msg/datatypes.h was removed
+    - msg/msg.h -> simgrid/msg.h
 
  cMSG:
  * Interface improvement:
    - Rename MSG_host_is_avail(h) to MSG_host_is_on(h)
+   - Sanitize the interface in MSG_task_ module:
+     - Merge two functions that were close enough but misleading:
+       set_compute_duration(t)      -> set_flops_amount(t)
+       get_remaining_computation(t) -> get_flops_amount(t)
+     - set_data_size(t) -> set_bytes_amount(t)
+       get_data_size(t) -> get_bytes_amount(t)
+   - Massive cleanups in the functions related to the energy
+     - MSG_host_get_pstate_number() -> MSG_host_get_nb_pstates()
+   - New: MSG_host_get_pstate()
+ * New example:
+   - msg/energy/onoff: switching hosts on and off
  jMSG:
  * Interface improvement:
    - Rename Host.isAvail() to Host.isOn()
-   
+   - Rename Process.currentProcess() to Process.getCurrentProcess()
+   - Rename Task.setDataSize() to Task.setBytesAmount()
+   - Merge Task.getRemainingDuration() and Task.getComputeDuration() into Task.getFlopsAmount()
+ * Bug fixes:
+   - #18874: Actually allows the GC to reclaim tasks
+
  SIMIX:
  * New functions
    - SIMIX_process_throw: raises an exception in a remote process
- * Refactoring: Separate submodules
+ * Refactoring: Separate sub-modules
    - 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_context_*: the virtualization mechanisms that embed the user code
    - smx_*: the handling of each simcalls
+ * Interface cleanup:
+   - simcall_host_set_power_peak_at -> simcall_host_set_pstate
  * Rename smx_action_t into smx_synchro_t, making explicit that these
-   things are used to synchronize processes with their environment.    
+   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: 
+ * Bug fixes:
+   - #18888: segfault when a process ends before its kill_time
+
+ 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
    - 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 
+ * 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 )
+   - 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
    - 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 
+ * 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
+ * Energy/DVFS cleanup and improvement
+   - smpi_set_host_power_peak_at() -> smpi_set_host_pstate()
+   - new: smpi_get_host_pstate()
  SURF
-  * Bug fixes 
+  * Bug fixes
    - "Full" network optimization flag was broken since Surf++
    - Better handling of precision flags in maxmin
-   - Fix bug causing sometimes "Impossible" errors 
+   - 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 dissipation when the host is off
+    - New functions getWattMinAt and getWattMaxAt to retrieve the
+      dissipation of pstates that we are not currently at.
+  * Java: class NetworkLink renamed to Link
+  * New function: simcall_process_get_kill_time()
+  * Massive rename s/workstation/host/
+    - That's intrusive, but that's good for the project consistency. Sorry.
+    - Change config option "workstation/model" into "host/model"
  XBT
   * New functions
-   - Add a xbt_heap_update function, to avoid costly xbt_heap_remove+xbt_heap_insert use 
+   - 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])
-
-
- -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+   - 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.
+  * The model checker runs must now be launched with the new simgrid-mc program.
+  * Record/Replay: the MC can display a textual representation of a path in the
+    execution graph. It can then be replayed outside of the model checker.
+
+ -- Mon Oct 12 06:02:41 CEST 2015 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.11) stable; urgency=low