X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9532edf044eed31bcf6de22916c8824e18f373ad..3db47603316610f1878cb48634c357b75bbbed9d:/ChangeLog diff --git a/ChangeLog b/ChangeLog index b336ea1ba2..d128462cd2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,79 +1,220 @@ -SimGrid (3.12) NOT RELEASED; urgency=low +SimGrid (3.13) UNRELEASED; urgency=low + + The Easter Trim Release. + + Backwards Compatibility breaks + - Some command line options were renamed for consistency sake: + - model-check/sparse-checkpoint -> model-check/sparse_checkpoint + - smpi/async_small_thres -> smpi/async_small_thresh + - smpi/send_is_detached_thres -> smpi/send_is_detached_thresh + + - Removed Lua simulation bindings (switch to C or Java for that). + Lua can still be used to describe platforms + - Removed Java kernel plug-ins. + Will be reintroduced after the ongoing major internals reorg. + - In SimDag + - the SD_application_reinit function was removed. It was a noop for a while. + - The ACCESS_MODE of SD_workstation has been removed. This feature was not really usable and should soon be + replaced by a more flexible mechanism. + - The following functions thus do not exist anymore + - SD_workstation_get_access_mode + - SD_workstation_set_access_mode + - SD_workstation_get_current_task + - Basic estimation functions have been removed but can easily be replaced + - SD_route_get_communication_time => SG_route_get_latency() + amount / SD_route_get_bandwidth() + - SD_workstation_get_computation_time => amount / sg_host_speed() + - In Java + - VM.setBound(int load) is now VM.setBound(double bound) to meet the MSG semantics. Use VM.getSpeed()*load/100 for the legacy behavior. + - In CMake + - option enable_tracing was removed. It was not doing anything since a while. + + XML platforms: + * Switch to platform v4 format. + - Rename from 'power' to 'speed' the attributes describing the amount of + flops that a , , or can deliver per second. + - In , attribute kind="POWER" is now kind="SPEED". + - In and , attributes availability and state are gone. + It was redundent with state and availability traces, and with peak values. + - Kill . Was not doing anything. + - The DOCTYPE points to the right URL: + http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd + (the file at this address now documents the changelog since its v1) + - 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 + + * bin/simgrid_update_xml can upgrade your files automatically (won't convert unit-less values) + tools/sg_xml_unit_converter.py may help (but it's just a warning and will probably ever be). + + S4U + * s4u::Host is now the preferred 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 (the ones you had when declaring MSG_DEPRECATED). + They were deprecated since a few years, and probably did not even compile anymore. + + SimDag + * The API has been profoundly modified to directly use the core objects instead of redefining its own. + SD_Workstation_t and SD_link_t are now sg_host_t and sg_link_t respectively. + Some functions have also been renamed for consistency. Backward compatibility is maintained, but users are + encouraged to update their codes. A list of the modified functions can be found at the end of + include/simgrid/simdag.h + + 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 bug fixes 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. + * Kill rm_cb feature of config sets: it was never useful. + * Kill graphxml parsing feature. It was not used. + * Kill the deprecated code protected by XBT_USE_DEPRECATED + * 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. + + -- $date Da SimGrid team + +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) - - Rename MSG_task_set_compute_duration(t) to MSG_task_set_flops_amount(t) - - Rename MSG_task_set_data_size(t) to MSG_task_set_bytes_amount(t) - Rename MSG_task_get_data_size(t) to MSG_task_get_bytes_amount(t) + - 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 - 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 + - 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]) - Add two new log appenders : rollfile and splitfile. Patch by Fabien Chaix. - Build System - * Tracing is now always enabled (no way to turn it out) - * Move headers around to sort them out on installed systems: - - instr/instr.h -> simgrid/instr.h - - instr/jedule/* -> simgrid/jedule + - 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. - -- $date Da SimGrid team + -- Mon Oct 12 06:02:41 CEST 2015 Da SimGrid team SimGrid (3.11) stable; urgency=low @@ -512,6 +653,30 @@ SimGrid (3.8) stable; urgency=low -- Thu Oct 25 17:30:06 CEST 2012 Da SimGrid team +SimGrid-java (3.8.1) stable; urgency=low + + * New module: org.simgrid.trace.Trace (SimGrid trace bindings) + Warning: all methods are visible, but only some of them are + implemented so far. Check the source (src/jtrace.c) + for further information. + * New module: org.simgrid.msg.File (SimGrid File management functions) + * New Module: org.simgrid.msg.VM (SimGrid interface to mimick IAAS clouds) + * Change the meaning of Process.restart: now restart the process from + the begining, like MSG_process_restart in C. + * Add Process.setAutoRestart: handling of process restart when failed + host comes back. + * Add Process.getProperty, Host.getProperty, Host.getProperty: allows + you to retrieve the properties of the processes/hosts + * Deprecate Msg.clean(): you can just forget about it now. + * New function Process.getCount(), that only works when compiling + with the not yet released version 3.9 of the C library. + + * New context factory based on Coroutines. It mandates a modified JVM + but then, the simulations run about five times faster, and there is + no limit to the amount of processes (beside of the available memory). + + -- 2012-12-04 Da SimGrid team + SimGrid (3.7.1) stable; urgency=low MSG: @@ -543,6 +708,38 @@ SimGrid (3.7.1) stable; urgency=low -- Thu Jun 7 2012 Da SimGrid team + +SimGrid-java (3.7.1) stable; urgency=low + + The "Java aint got to be bloated and slow" release + + Major cleanups: + * Various internal cleanups and performance improvement + Simulations are expected to run up to twice faster or so + * Make Process.kill(process) an instance method, not a static one + * User processes are not java.lang.Thread subclasses. + This breaks the compatibility (sorry), but previous API was + brain-dead, making it impossible to have non-trivial + initializations in the process constructor. + * Require a full constructor per Process sub-class. + Kinda breaks the compatibility (sorry), but this allows a much more + efficient way to launch the processes at simulation startup. + * Do not embeed our version of semaphores, java 1.5 can be considered + as sufficiently prevalent for us to not dupplicate its features. + * Lot of bug fixes + + Extend the API: + * Add examples for almost every part of the API + We spotted and fixed a lot of bugs in the process + + * New module: asynchronous communication API + * New function: Process.sleep() + It takes milliseconds as argument, just as java.lang.Thread.sleep() + * New module: org.simgrid.msg.Mutex (SimGrid mutexes) + * New module: org.simgrid.msg.RngStream (RngStreams random generators) + + -- 2012-06-12 Da SimGrid team + SimGrid (3.7) stable; urgency=low The "spring cleanups (before the next Big Project kicks in)" release. @@ -688,6 +885,7 @@ SimGrid (3.7) stable; urgency=low -- Tue May 15 11:30:19 UTC 2012 Da SimGrid team + SimGrid (3.6.2) stable; urgency=low The "Not coding new stuff allows to polish old things" release. @@ -743,6 +941,13 @@ SimGrid (3.6.1) stable; urgency=low -- Mon Jun 27 13:59:03 CEST 2011 Da SimGrid team +SimGrid-java (3.6) unstable; urgency=low + + * Initial release. + * Split of every thing from simgrid v3.5 into a separate package. + + -- 2011-10-05 Da SimGrid team + SimGrid (3.6) stable; urgency=medium The Summer Release, also known as the "OMG! They Killed Kenny!" version