-SimGrid (3.0.2) unstable; urgency=low
+SimGrid (3.3-cvs) unstable; urgency=low
- XBT:
- * New module: cunit (my jUnit implementation in ansi C) [MQ]
- - Test units are placed directly into the library code, they get extracted
- automatically and placed into the src/testall binary.
- - Convert most of the XBT tests to this system.
- * New functions: xbt_dynar_getfirst_as() and xbt_dynar_getlast_as() [MQ]
- * XML parsing: rewrote parts of flexml to enable multiple xml parsers to
- live in the same C code. This required to change a little bit the API
- of surfxml parsing but shouldn't be an issue for end-users. [AL]
- * New module: sparse graph structure with basic algorithms. [AL]
+ OVERALL CHANGES:
+
+ * JAVA BINDINGS for MSG (you dreamt of them? We made them)
+ [Malek Cherier & Mt]
+
+ * Introduce the SIMIX module: factorize code between MSG and GRAS.
+ [Bruno Donassolo]
+
+ Until now, GRAS were using MSG as an interface to SURF. It was
+ quite difficult because both interface have several differences
+ (MSG channels vs GRAS sockets were the most notable point).
+
+ This also opens the gate to SMPI (which should occur soon) and speed
+ up simulations by to 40% (even if it were not the main goal).
+
+ **************************************
+ *DO NOT MIX 3.2 RESULTS WITH 3.3 ONES* Simix may changes simulations!
+ **************************************
+ The point is that events occuring at the exact same timestamp are
+ not scheduled in the same order with the old and new version. This
+ may be enough to completely change the execution of simulations in
+ some cases. Sorry for the inconvenience.
+
+ * Improve the testing infrastructure with tesh. Now a very large part of
+ the code is tested not only by being run but also by checking that the
+ output match an expected output [Mt].
+
+ * Move on to FleXML v1.7 for the embeeded XML parsers. This version
+ is really less memory-demanding, which should allow you to use
+ larger files in SimGrid [AL].
+
+ GRAS:
+ * Convert the PIDs from long int to int to match the MSG ones (and
+ linux ones too) [Mt]
+ * New function: gras_agent_spawn() to launch a new process on
+ current host. Only working in simulation for now. [Mt]
+ * New function: gras_os_hostport() returning a constant form (ie,
+ not needing to be freed) of "gras_os_hostname():gras_os_myport()"
+
+ XBT:
+ * Make the backtrace of exceptions more human readable [Mt]
+ * New module: xbt/str [Mt]
+ a ton of string utility functions (split, join, printf to a newly
+ allocated buffer, trim, etc)
+ * New module: xbt/synchro [Mt]
+ synchronization tools (mutex and conditions) working the same way
+ in simulation and in real life (mainly useful for GRAS, but not
+ only).
+ * New module: xbt/queue [Mt]
+ classical producer/consumer synchronization scheme
+ * xbt_dynar_new_sync() creates a synchronized dynar. All access
+ (using the classical functions will get serialized) [Mt]
+
+ SURF:
+ * Cleaned many thing in surf and fixed a few bugs [AL].
+ * Add a nice command line configuration mechanism to compose models [AL].
+ * Add a new model for parallel tasks (ptask_L07) that is less buggy than
+ the previous one (KCCFLN05). It relies on something that looks like
+ a max-min sharing mechanism but cannot be written as such. A new solver
+ was thus designed [AL].
+ * Add a new solver to lmm. Based on Lagrange optimization and
+ gradient-based descent, it enables to efficiently maximise systems s.a
+
+ sum f_i(x_i) s.t Ax<= b with A_{i,j}>=0 and f_i a concave function.
+
+ This solver enables to propose two new network models for TCP Reno and
+ TCP Vegas based on Low's work. These models still need to be fully
+ tested though [Pedro Velho].
+
+ SIMDAG [AL]:
+ * Bug fix in SD_simulate. Now the time bound given as argument is
+ used.
+ * Use the new parallel task model (ptask_L07) as default.
+ * Use the SURF command line configuration mechanism.
+ * 0-size tasks (for synchronization) should now work.
+
+ --
+
+SimGrid (3.2) unstable; urgency=low
+
+ OVERALL CHANGES:
+ * Port to windows.
+ We still experience issues on this platform, but we believe that at
+ least MSG is usable.
+
+ GRAS API BREAKAGE (for simplification purpose, sorry):
+ * the gras_msgtype_by_name is not used anymore. Instead of
+ gras_msg_send(toserver, gras_msgtype_by_name("request"), &request);
+ you can write (and must)
+ gras_msg_send(toserver, "request", &request);
+ - If you still want to pass a gras_msgtype_t to the function (to cache
+ the type and avoid the lookup time), use the gras_msg_send_() variant.
+ - Impacted functions:
+ gras_cb_register, gras_cb_unregister, gras_msg_send, gras_msg_wait,
+ gras_msg_rpccall, gras_msg_rpc_async_call, gras_msg_wait_ext
+ * The callbacks are now expected to return 0 when everything went well
+ (just like the main() function)
+
+ GRAS new features and improvements:
+ * New module mecanism where user code can use per process globals [Mt]
+ This is similar to gras_userdata_*() functions, but for libraries. It
+ factorize some code developped over and over in the examples and AMOK.
+ It has still to be documented and used (only amok/peermanagement is
+ converted for now).
+ * Fix a vicious bug in the TCP buffering mecanism which leaded to message
+ loss when they were small enough to fit into the buffer and sent quickly
+ enough so that they can all get received in one shoot.
+ * gras_datadesc_by_name and gras_msgtype_by_name: now raise an exception
+ if not found. Use the *_or_null() variant for the old semantic.
+ * In gras_msg_handle, do not discard messages without callback.
+ They are probably messages to be explicitly awaited later (ie, proofs of
+ mis-synchronization in userland since they are sent before being awaited)
+ No big deal usually.
+ * gras_socket_meas_send/recv: semantic changed!
+ The numerical arguments used to be (1) the total amount of data to send
+ and (2) msg_size. This was changed to (1) msg_size and (2) amount of
+ messages. This was need for the fool willing to send more than MAXINT
+ bytes on quite fat pipes.
+
+ AMOK:
+ * Do really rename the hostmanagement module to peermanagement. [Mt]
+ Ie, rename functions from amok_hm_* to amok_pm_*. This breaks the API,
+ but this is rather new and this was documented in the module
+ documentation (poor excuses, I admit)
+ * Bandwidth measurement semantic changed! This follows the changes to
+ gras_socket_meas_send/recv explained above.
+
+ SIMDAG:
+ * A sequential mode has been added to the workstations. When a workstation
+ is in sequential mode, it can execute only one task, and the other tasks
+ are waiting in a FIFO. [Christophe Thiery]
SURF:
- * complete rewrote of the KCCFLN05 workstation model. It is now an
+ * The KCCFLN05 workstation model now handles parallel tasks. It is the
+ model for SIMDAG. [Christophe Thiery]
+ * Bug fix in the maxmin solver: Some values were close to 0 instead of
+ equal to 0, which caused some bad behaviors in
+ saturated_constraint_set_update. I now use a threshold mechanism like in
+ surf. [AL]
+
+ XBT:
+ * When running manually src/testall, you select specific units [Mt]
+ testall is the result of our cunit mecanism, and should replace all
+ the scripty thingy around since bash don't run easily on billware.
+
+ * A mallocator system has been added. [Christophe Thiery]
+ Mallocators allow you to recycle your unused objects instead of freeing them
+ and allocating new ones.
+
+ Documentation update:
+ * FAQ reworking + New FAQs:
+ - "Valgrind spits tons of errors!" [Mt]
+ - "How to repport bugs" [Mt]
+ - "Cross-compiling a Windows DLL of SimGrid from Linux" [Mt]
+ - "What is the difference between MSG, SimDag, and GRAS?" [Mt]
+ - Communication time measurement within MSG [AL]
+ - I experience weird communication times when I change the latency [AL]
+ * GRAS tutorial [Mt]
+ It contains:
+ - an introduction to the framework and to the used communication model
+ - an initiatic tour introducing the most proheminent features:
+ o Part 1: Bases
+ . Lesson 0: Installing GRAS
+ . Lesson 1: Setting up your own project
+ o Part 2: Message passing
+ . Lesson 2: Exchanging simple messages
+ . Lesson 3: Passing arguments to the processes (in SG)
+ . Lesson 4: Attaching callbacks to messages
+ . Lesson 5: Using globals in processes
+ . Lesson 6: Logging informations properly
+ . Lesson 7: Using internal timers
+ . Lesson 8: Handling errors through exceptions
+ . Lesson 9: Exchanging simple data
+ . Lesson 10: Remote Procedure Calling (RPC)
+ . Lesson 11: Explicitely waiting for messages
+ . Recapping of message passing features in GRAS
+ - A HOWTO section containing:
+ o HOWTO design a GRAS application
+ More are due, of course. They will come latter. In the meanwhile, you can
+ check the examples which are still here.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Fri Mar 16 21:11:46 CET 2007
+
+SimGrid (3.1) unstable; urgency=low
+
+ General:
+ * Port to gcc 4.x
+ There was a stack corruption somewhere, visible only when optimizing
+ with these versions. [Vince]
+
+ SIMDAG:
+ * This is a NEW module! SimDAG (SD for short) is a revival of the old SG
+ module that enabled to play with Directed Acyclic Graphs. It is built
+ directly on top of SURF and provides an API rather close to the old
+ SG. Some old codes using SG are currently under rewrite to check that
+ all needful functions are provided. [Christophe Thiery]
+
+ SURF:
+ * Complete rewrite of the KCCFLN05 workstation model. It is now an
extension of the classical CLM03 model that gracefully handles
- failures. This is now the standard model for MSG and GRAS. [AL]
+ failures. This is now the default model for MSG and GRAS. It doesn't
+ handle parallel tasks yet though. [AL]
+ * Bug fix: Weights were not correctly set in the network part.
+ WARNING: This may have resulted in incorrect results with simulations
+ where there are more than one flow on a given link. [AL]
+
+ SURF, MSG, GRAS:
+ * After a (long ?) discussion on simgrid-devel, we have decided that the
+ convention we had on units was stupid. That is why it has been decided
+ to move from (MBits, MFlops, seconds) to (Bits, Flops, seconds).
+ WARNING : This means that all previous platform files will not work as
+ such with this version! A warning is issued to ask users to update
+ their files. [AL]
+ A conversion script can be found in the contrib module of the CVS, under
+ the name contrib/platform_generation/surfxml_update.pl [MQ]
MSG,GRAS:
* Bug fix: Processes were started in reverse order, wrt deployment file.
WARNING: if your code relies on this bug, please fix it. [AL]
+ * Bug fix: Add a test in MSG_task_execute to stop whenever a task is
+ being executed on two different locations. [AL]
+ * Bug fix: Failures are now better supported thanks to Derrick's tests
+ (there was many failure situations I hadn't thought of and that weren't
+ correctly handled). [AL]
+ * New function: MSG_host_is_avail indicates you whether a given m_host_t
+ is up or down. [AL]
GRAS:
* New! a real RPC mecanism, as it ought to be since too long. [MQ]
- Exception occuring on server-side are propagated back to client (!).
+ Exception occurring on server-side are propagated back to client (!).
API CHANGE: the callback changed their prototype. Change:
int my_handler(gras_socket_t expeditor, void *payload_data) {
int my_handler(gras_msg_cb_ctx_t ctx , void *payload_data) {
gras_socket_t expeditor=gras_msg_cb_ctx_from(ctx);
and you're set.
+ * New! function: gras_msg_handleall to deal with all messages arriving
+ within a given period.
+ * New! function: gras_socket_server_range to get a server socket in a
+ range of port numbers (ease to avoid port number conflicts) [MQ]
+ * New! gras processes display their backtrace when they get a SIGUSR1
+ or when Ctrl-C is pressed. Use Ctrl-C Ctrl-C to exit.
+ Sweet to debug RL processes [MQ]
AMOK:
* Bandwidth module:
- Do not force experiment sizes to be expressed in kb, or it becomes
- impossible to mesure the latency this way (needs one byte-long tests)
- WARNING: this changes the amok_bw_* function semantic.
+ impossible to measure the latency this way (needs one byte-long tests)
+ WARNING: this changes the amok_bw_* function semantic. [MQ]
+ - Implements the link saturation stuff. [MQ]
+ * Peer management module:
+ New! module factorizing code that we wrote over and over [MQ].
- --
+ XBT:
+ * New module: cunit (my jUnit implementation in ansi C) [MQ]
+ - Test units are placed directly into the library code, they get extracted
+ automatically and placed into the src/testall binary.
+ - Convert most of the XBT tests to this system.
+ * New functions: xbt_dynar_getfirst_as() and xbt_dynar_getlast_as() [MQ]
+ * XML parsing: rewrote parts of flexml to enable multiple xml parsers to
+ live in the same C code. This required to change a little bit the API
+ of surfxml parsing but shouldn't be an issue for end-users. [AL]
+ * New module: sparse graph structure with basic algorithms (this is work
+ in progress and the API is not considered to be frozen yet). [AL]
+ * Display more information on backtraces: source line & function names are
+ now displayed just like valgrind does (rely on addr2line tool) [MQ]
+ * New function: xbt_backtrace_display(). Sweet while debuging [MQ]
+ * Reworked a little bit some #include statements to load only required
+ headers. Some user code that relied on SimGrid to include stdlib or
+ stdio may need to include it by themselves. [AL]
+ * Fixed xbt/log.h. A missing SG_BEGIN_DECL prevented compilation with
+ g++. [AL]
+ * Renamed xbt_host_t into xbt_peer_t since it betterly describes what I
+ meant. This breaks the API of AMOK and of xbt/config. Sorry about this,
+ but I guess that almost nobody used those parts. [MQ]
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Fri, 14 Jul 2006 01:32:27 +0200
SimGrid (3.0.1) unstable; urgency=low