+SimGrid (3.6) unstable; urgency=low
+
+ MSG
+ * Change the prototypes of action replay. Sorry for inconvenience,
+ but this is really more efficient this way.
+ * Kill the braindead MSG_task_refcount_dec() function. I guess nobody
+ ever managed to do anything useful with it.
+
+ 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 receive 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
+ * Completely rewrote this module to allow parallel execution.
+ * Introduce a new context factory "raw", highly inspirated from the
+ context 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=simix/context:raw for maximal speed.
+
+ XBT
+ * 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
+
+ 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
+
+ -- 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
+
+ MSG
+ * Asynchronous communications through the functions:
+ MSG_task_isend/irecv and MSG_comm_test/wait/waitall
+ * New function: MSG_load_platform_script()
+ to make possible using a lua script instead of XML files to set up platforms
+ * New function: MSG_set_function
+ to associate functions to processes, used when bypassing the parser
+ * New functions: MSG_task_set_name(), MSG_task_set_compute_duration()
+
+ Platforms: Add some more examples in examples/platforms
+ * Grid'5000: see www.grid5000.fr
+ * *_30000_hosts.xml: various huge files [mainly scalability testing]
+
+ SURF
+ * Change the XML format. This is a very important modification. SimGrid
+ 3.5 introduces a new hierarchical format based on the notion of
+ Autonomous Systems. Compatibility with old format is ensured
+ through the perl script provided in the install bin directory
+ bin/simgrid_update_xml.
+ It is now possible to build platforms with specific routing
+ mechanism (Full/Dijkstra/DijkstraCache/Floyd) and to easily
+ connect several platforms together. We will try to provide soon
+ set of realistic platforms exploiting these properties (have a
+ look at examples/platforms/ for the moment).
+ * Take the opportunity of the XML format change to be a good XML citizen:
+ rename link:ctn to link_ctn and similar changes (also dealed with by
+ simgrid_update_xml)
+ * Add a new routing scheme (rule-based) using regular expressions. It
+ enables to have an extremely low memory footprint when the
+ underlying routing is simple and can be compactly described. You
+ need to have libpcre4-dev (perl regular expressions) installed if
+ you want to use this routing scheme.
+ * Revive the cluster TAG and allow to easily and efficiently (both in
+ term of memory and speed) connect clusters together. Have a look
+ at teshsuite/simdag/platforms/ to see how this can be done. With
+ this tag, you can create clusters with thousands of tasks at no
+ cost (have a look at examples/platforms/).
+ Note: clusters are implemented as ASes, so there is no need for an
+ enclosing AS tag if you have only one cluster in your platform.
+ * Add new generic functions in the public interface that allows the user
+ to call SURF 'create_resource' methods from your code (same
+ functionality as the XML bypass mechanism but with a much lighter
+ burden).
+ * Add a new model (enabled through command line --cfg=network/model:SMPI)
+ that uses a piecewise linear approximation to produce better
+ results when exchanging small messages.
+ * Add a new parameter to handle correctly full duplex link and account
+ for interferences between uplink and downlink communications
+ (activate with --cfg=fullduplex:1).
+
+ SIMDAG
+ * Rename the SD_READY (all dependencies are satisfied and task is
+ scheduled) state in SD_RUNNABLE and define a new SD_SCHEDULABLE (all
+ dependencies are satisfied) state.
+ This prevents a confusion between the notion of "ready to schedule"
+ (SD_SCHEDULABLE) used in DAG scheduling and that of "ready to be
+ simulated" (SD_RUNNABLE) used by the simulation kernel.
+ * Change the way a task is considered as ready. Instead of removing
+ dependencies when a task is done, a counter is decreased. This way,
+ it is always possible to reach ancestors thanks to the
+ SD_taks_get_parents function (even after the end of the simulation.)
+ * Change the return type of SD_Simulate from (SD_task_t*) into
+ xbt_dynar_t. This function was in handling a dynar internally and
+ converted it into a NULL terminated array for historical reasons.
+ * New function SD_dotload(char*) to load a DAG described in dot
+ format. This loader and the corresponding examples require the
+ installation of the graphviz library.
+ * Fix a bug in the management of tasks of size 0 in the surf network
+ models. This problem was only visible with SIMDAG and you should
+ thus disregard results produced with earlier versions if you
+ relied on this feature (some tasks were blocked because of this).
+ * Fix a bunch of stuff that prevented to use classical models with SIMDAG
+ even though your applications were doing only point-to-point
+ communications and sequential computations. Now you can really use any
+ model you want (of course, if you create real parallel tasks, which are
+ not implemented in most models beside ptaskL07, this will abort).
+ * Add an example that schedules a DAX on an heterogeneous platform
+ using a Min-Min strategy.
+ * New function SD_workstation_get_current_task() that returns the kind
+ of task currently running on a workstation in the sequential access
+ mode.
+ * Raise some warnings when unexecuted tasks remains at the end of the
+ simulation. This is usually caused by cycles in the DAG.
+
+ SIMIX
+ * New function: SIMIX_process_set_function() called by MSG_set_function
+ * Change the underlying waiting queue in semaphores so that a process
+ can wait on several of them simultaneously (as in waitany).
+ * Fix the way to handle tokens in semaphores so that all access patterns
+ work: {acquire, acquire_timeout, waitany} / {release, release_forever}.
+ * kill the dirty pimple SIMIX_message_sizes_output()
+ Please use (proper) visualization instead