+ MSG:
+ * Deprecate the MSG_task_{get,put} functions and friends.
+ This interface was considered as deprecated since over 2 years,
+ it's time to inform our users that it is.
+ Switch to MSG_task_{send,recv} instead, or declare
+ SIMGRID_DEPRECATED before loading the msg.h if you really need to
+ use these (crappy) functions in your code.
+ These functions will be removed at some point. Stop using them now.
+ * Deprecate MSG_get_host_{table,number}
+ Implement MSG_hosts_as_dynar() instead.
+ * Implement MSG_processes_as_dynar() (Closes gforge #13642)
+
+ Simix:
+ * Stabilize the parallel execution mode of user contexts
+ * Introduce configuration variables to control parallel execution:
+ - contexts/synchro: Synchronization mode to use when running
+ contexts in parallel (either futex, posix or busy_wait)
+ - contexts/parallel_threshold: Minimal number of user contexts
+ to be run in parallel (raw contexts only)
+
+ SURF:
+ * Introduce a parallel mode for the models (see surf/nthreads
+ configuration item). In our tests, running the models in parallel
+ never lead to any speedups because they are so fast that the gain
+ of computing each model in parallel does not amortizes the
+ synchronization costs, even when ultra fast futexes are used.
+ This is released anyway because YMMV.
+
+ SimDag:
+ * Performance boost by using a swag internally to compute the set of
+ tasks that are finished and should constitute the return value of
+ SD_simulate.
+
+ SMPI:
+ * Enable it by default now that it is considered rather stable.
+
+ Lua:
+ * Improve the API of Lua MSG bindings, using the Lua spirit.
+ * Each simulated process now lives in its own Lua world (globals are
+ automatically duplicated). It helps writing simulators. This is also the
+ first step towards running real distributed Lua programs with SimGrid.
+ * Add a Chord example in Lua, equivalent to the MSG one.
+
+ XBT:
+ * Mallocators: allow value NULL for the reset function.
+ * Dicts:
+ - New function xbt_dict_new_homogeneous(void(*)(void*)) to
+ create homogeneous dictionaries, where all the elements share the
+ same free function. Non homogeneous dictionaries will be
+ deprecated in the next release.
+ - Dicts of scalar elements (xbt_dicti_*) are deprecated.
+ - Multi-level dictionaries are deprecated.
+ * mmalloc module:
+ - Cleanups and simplifications to make it maintainable again.
+ - Exotic features (such as memalign and valloc) were removed.
+ - The metadata were extended and improved so that the
+ model-checker becomes able to explore and inspect the heaps.
+ - This may induce a performance drop when enable_model-checking is
+ ON in cmake (even if it's not used in the simulation), but it is
+ necessary at this point to get MC working.
+
+ Turn model-checking OFF if simulation performance matters to you.
+
+ -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.6.2) stable; urgency=low
+
+ The "Not coding new stuff allows to polish old things" release.
+
+ General
+ * New bindings to the NS3 packet level simulator (experimental)
+ * Use the raw (efficient) execution contexts instead of the sysv
+ (portable) ones when possible.
+ * libpcre is now mandatory in any cases since not using it led to
+ severe performance loss and possibly other issues
+ * Update the XML platforms:
+ - G5K: include the latest machine in Nancy
+ - GridPP and LCG: new platforms
+ * Documentation was partially updated, at least (more to come)
+
+ Bug fixes, cosmetics and small improvements
+ * Free terminated processes before the end of the simulation to avoid
+ exhausting the memory of users having very dynamic amount of
+ processes.
+ * Bug fix and cosmetics about canceling non-running tasks
+ * Bug fix about the dot loader's issues when using libcgraph
+
+ Portability
+ * Create an installer for windows with nsis (amd64 and win32)
+ - Add an hello world project to illustrate simgrid project creation.
+ - Embed libpcre into the Simgrid installer to avoid
+ its compilation burden
+ * The raw execution contexts should work on Apple now
+ * Port to Windows 64 bits
+ - Sysv contexts now have an implementation for this arch
+ - GRAS communication features now support this arch
+ * Drop support for borland compiler on windows
+ - this code was not maintained, and we kinda depend on gcc nowadays
+ * Fix portability issues on kfreebsd/gnu: build error about semaphores
+ * Fix portability issue on unstable ubuntu: linker became picky on
+ argument order
+
+ -- Wed Oct 5 15:51:01 CEST 2011 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+
+SimGrid (3.6.1) stable; urgency=low
+
+ The "Oops, we broke Macs too" release
+
+ Portability
+ * Fixed contexts detection so that raw ones are used when possible
+ * On Mac, do not use Posix Ucontexts with gcc v4.[1-5] since this
+ leads to a strange error, with user code segfaulting sometimes when
+ the generated code is not perfectly aligned (which is not
+ controllable from the user side, depends on the amount of code)
+
+ XBT
+ * New macro: CATCH_ANONYMOUS, which is like CATCH(e) but without argument.
+
+ -- Mon Jun 27 13:59:03 CEST 2011 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.6) stable; urgency=medium
+
+ The Summer Release, also known as the "OMG! They Killed Kenny!" version
+
+ Java and Ruby:
+ * Bindings now constitute their own package, separated from the main one.
+ Rationale: reduce our maintenance nightmare by reducing the module coupling
+ They will soon be released on their own on gforge.
+ * In the meanwhile:
+ svn co svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/simgrid-java
+ svn co svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/simgrid-ruby
+
+ GRAS: It is not considered as stable anymore, but experimental. Sorry.
+ * It's not quite deprecated for now because we have no replacement,
+ but it may soon become the case.
+
+ SMPI
+ * New MPI functions supported: MPI_Comm_disconnect, MPI_Comm_get_name
+ * Fortran: New user-level cache variable to store the rank of the running
+ process. This improves performance by an order of magnitude.
+ * C: New coccinelle script to automatically locate and modify global and
+ local static variables.
+ * Improved SMPI network model with a sender-side gap to account for multiple
+ parallel sends.
+
+ MSG
+ * New function MSG_comm_get_status(). MSG_comm_test() and MSG_comm_testany()
+ only say if a communication is finished, no matter whether it succeeded or
+ failed. You can call MSG_comm_get_status() to know the status of a finished
+ communication.
+ * New function MSG_task_dsend() to send a task and detach it. When a
+ communication is detached, you are never notified of its success or failure
+ and the memory is released automatically once it is finished. This function
+ is useful when you don't care about the end nor the success of a
+ communication.
+ * Change the prototypes of action replay. Sorry for inconvenience,
+ but this is really more efficient this way (and to adapt your code,
+ you just have to fix the initialization, that shouldn't be too long)
+ * Kill the braindead MSG_task_refcount_dec() function. I guess nobody
+ ever managed to do anything useful with it.
+ * New function MSG_comm_testany(). Similarly to MSG_comm_waitany(), it
+ takes a dynar of communications. It returns immediately and gives the
+ index of a finished communication (if any).
+ * New example: a basic implementation of the Chord P2P algorithm.
+
+ SURF
+ * New model for multi-core CPUs. You can now use the core attribute to
+ precise the number of cores of a host. This is a basic model. Every
+ process running on the host receives at most the power provided in
+ the DTD (throughput<=power). Total throughput of process cannot exceed
+ power * num_cores.
+ * New peer tag. This peer tag creates a tiny AS comprising a host and a
+ router linked by an up-link and a down-link (possibly asymmetrical).
+ This kind of pattern allows to easily build last-mile model style platforms.
+ Aggregating such patterns in a rule-based AS is thus the technique of
+ choice for modeling large peer-to-peer/volunteer computing/cloud platforms.
+ * New model for Vivaldi routing. We transformed the Vivaldi network model
+ into a Vivaldi routing model (based on the rule-based model). This allows to
+ combine Vivaldi based latencies with last-mile platforms.
+
+ SIMIX
+ * Added a check for NaN of IEEE754 infinite in the double entries of
+ the smx_user.c file
+ * Introduce a new context factory "raw", highly inspirated from the
+ ucontext factory, but using manually crafted functions in assembly to
+ do the work in an efficient manner.
+ * Allow to change the used context factory at run time, not only at
+ compilation time. Use --cfg=contexts/factory:raw for maximal speed.
+ * Add an option --cfg=contexts/stacksize:N to set the stack size of the user
+ contexts at runtime (only with raw contexts or ucontexts).
+ * Completely rewrote this module to allow parallel execution of user
+ processes. Use --cfg=contexts/nthreads:N to execute user processes
+ with N parallel threads (the default is 1, meaning no parallelism).
+ * Allow to decide dynamically between sequential and parallel modes.
+ When nthreads > 1, you can use --cfg=contexts/threshold:P to run the user
+ processes in parallel only when their number is greater than or equal to P
+ (the default is 2).
+ * Added a check for NaN of IEEE754 infinite in the double entries of
+ the smx_user.c file
+
+ XBT
+ * New command line option: if you pass --cfg=verbose-exit:0, SimGrid
+ won't output the state of processes when interrupted with Ctrl-C
+ * Add a new function xbt_dynar_to_array that transforms a dynar into a
+ NULL-terminated array. This may solve backward compatibility issues
+ due to the change to return type of SD_simulate. See also:
+ http://lists.gforge.inria.fr/pipermail/simgrid-user/2010-December/002206.html
+ * Add new macros with variable number of arguments.
+ - in xbt/log.h: XBT_DEBUG, XBT_VERB, XBT_INFO, etc.
+ - in xbt/asserts.h: xbt_assert
+ - in xbt/cunit.h: xbt_test_{add,fail,assert,log}
+ - in xbt/ex.h: THROWF and RETHROWF.
+ Define XBT_USE_DEPRECATED if you want to use the old numbered macros like
+ INFO1, INFO2, etc.
+ * Change xbt_die() to accept a format string with arguments, just like printf.
+ * New data structure: xbt_lib_t, like a dict but more general and with better
+ memory handling.
+
+ INSTR
+ * New configuration options
+ Options triva/categorized and triva/uncategorized can be used to generate
+ graph configuration files for Triva visualization tool.
+ * Configuration option tracing/platform is renamed to tracing/categorized
+ * XBT logging makes tracing error checks easier, new root log hierarchy: instr
+ * New TRACE_user_link_variable interface:
+ User provides the name of the link and the tracing variable to attach to it
+ * the declaration of tracing categories must be done after the environment
+ creation
+ * simpler tracing interface, just one way to declare categories
+ TRACE_category or TRACE_category_with_color, it is up to you
+ * links in the trace file are again identified by their names
+ * trace contains the full platform hierarchy exactly as declared using the ASes
+ * Options tracing/msg/[task|process]:1 groups the process by hosts
+ for both cases, tasks and processes must have names that are unique during the simulation
+ these options generate traces that are suited to gantt-charts, such as the space-time view of Paje
+ * The experimental option tracing/msg/volume is deprecated
+ its functionality may be reincorporated if needed
+ * Buffering
+ The tracing generates a trace file with unordered timestamped events,
+ because of the way the core simulator (surf) works. A script available
+ at the tools directory (fix-paje-trace.sh) can be used to put the events
+ in order. We have changed the tracing so it can generate ordered timestamped
+ events in the final trace, but depending on the simulator (and how much time
+ is simulated) that can lead to a huge memory utilization. It is deactivated
+ by default, but it can be activated using the --cfg=tracing/buffer:1 switch.
+
+ Build Infrastructure
+ * Define a SIMGRID_VERSION macro in simgrid_config.h.
+ - We are trying hard to keep the API stable, but it may happen that
+ some things change (we're a research project after all, not a
+ nuclear plant operating system). If such things should happen, you
+ could rely on that macro to adapt.
+ - current value: 30600 for 3.06.00, aka 3.6
+ * Define macro MAKE_SIMGRID_VERSION(major, minor, patch) to help building
+ a number that can be compared with SIMGRID_VERSION.
+ * Add a build option -Denable_debug (set to ON by default): when set to OFF,
+ assertions and verbose/debug logging events are disabled at compile time.
+
+ -- Tue Jun 21 08:57:43 CEST 2011 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.5) stable; urgency=medium
+
+ Model Checking
+ * New feature to any SimGrid-based simulator: Model-Checking
+ Check SIN#1 for more details.
+
+ SMPI
+ * New Model SMPI (three-interval linear regression for correction factors)
+ See RR-7426, available at http://hal.inria.fr/inria-00527150
+ * Ability to use FORTRAN MPI code (through f2c, automatically privatized)
+ * New MPI functions supported: MPI_Get_count(), MPI_Comm_split()
+ * New: RAM folding (see RR-7426 and examples/smpi/NAS/DT-folding)
+ * New: execution sampling (see RR-7426 and examples/smpi/NAS/EP-sampling)
+ * See also src/smpi/README
+
+ Tracing:
+ Tracing:
+ * Tracing system
+ - Tracing API changes: TRACE_start and TRACE_end should not be called
+ by user-code. They are automatically called by simulators created
+ with SimDAG, MSG and SMPI if the toolkit is compiled with
+ tracing_enabled=ON. Categories declaration and utilization remain the
+ same for MSG and SimDag.
+ - A function was added to the tracing API to declare categories with
+ colors:
+ - TRACE_category_with_color (char *category, char *color)
+ where color must be in the following format
+ "%f %f %f", red, green, blue
+ and red, green, blue are float values in the interval [0, 1]
+ - User can specify NULL as color parameter, or continue calling
+ TRACE_category (cat)
+ On that case, the tracing system will define random colors
+ - The following command-line options are supported:
+ --cfg=tracing/filename:msg.trace
+ --cfg=tracing:1 (activate tracing, needed to use others)
+ --cfg=tracing/platform:1 (categorized resource use)
+ --cfg=tracing/uncategorized:1 (uncategorized resource use)
+ --cfg=tracing/msg/task:1 (task creation)
+ --cfg=tracing/msg/process:1 (process creation, migration)
+ --cfg=tracing/msg/volume:1 (volume of MSG send/recv)
+ --cfg=tracing/smpi:1 (SMPI interface tracing)
+ --cfg=tracing/simdag:1 (allow SimDAG tasks receive categories)
+ - examples of examples/msg/tracing updated
+ * Tracing SimDag
+ - DAXLoader and DOTLoader functions can generate tasks with categories
+ - A new function to attribute a category to SD tasks:
+ TRACE_sd_set_task_category (SD_task_t task, char *category)
+ * Tracing the MPI interface implemented by SMPI
+ - Collective operations are traced with states
+ - Point-to-Point operations are traced with states/links
+ - Tracing activated by a parameter "-trace filename" passed
+ to smpirun during execution (considering that simgrid
+ is compiled with tracing enabled)
+ - To run the simulation with gdb, the simulator
+ accepts --cfg=tracing/smpi:1 to trace SMPI
+ - tesh files to check if smpi tracing is ok
+ - See examples/smpi/NAS/DT-trace
+ * GTNetS tracing re-worked
+ - adaptation to the tracing system of GTNets to cope
+ with modifications regarding the fullduplex mode
+ - new tesh files to check if gtnets tracing is ok