-SimGrid (3.01) unstable; urgency=low
+SimGrid (3.0.2) 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 (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]
+
+ SURF:
+ * complete rewrote 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. It doesn't
+ handle parallel tasks yet however. [AL]
+ * Bug fix: Weights were not correctly set in the network part. This may
+ have resulted in incorrect results with simulations where there are
+ more than one flow on a given link. [AL]
+
+ 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]
+
+ 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 (!).
+
+ API CHANGE: the callback changed their prototype. Change:
+ int my_handler(gras_socket_t expeditor, void *payload_data) {
+ to:
+ 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.
+
+ 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. [MQ]
+ - Implements the link saturation stuff. [MQ]
+
+ --
+
+SimGrid (3.0.1) unstable; urgency=low
XBT:
* Unfortunately, I had missed 5 misnamed functions:
xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i);
xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i);
[AL]
+ * Bugfix: really disconnect fifo items which are remove_item()ed [AL]
+ * Documentation: xbt_log module unmercifully reworked [MQ]
+ * Bugfix: there was a problem with the ending of contexts with
+ the pthread backend. It caused some weird deadlock or behavior
+ depending on the pthread implementation. [AL]
+ * Bugfix: get the exceptions raised in the simulator repport where
+ and why they come from when they are not catched in time [AL, MQ]
+
+ SURF:
+ * Bugfix: Do repport the error when two non-connected hosts try to
+ exchange data (Thanks to Flavien for stumbling into this one) [AL]
+ SURF:
+ * Add additionnal checkings on communications. Assert that two
+ communicating hosts are connected by a set of links... [AL]
+
MSG:
- * Add addtionnal checkings on channel values in communicating functions.
-
- --
+ * Add additionnal checkings on channel values in communication [AL]
+ * New: MSG_task_get_source to see on which host a task was generated [HC]
+ * New: int MSG_task_probe_from_host(int channel, m_host_t host): returns
+ the number of tasks waiting to be received on channel and sent
+ by host. [AL]
+ * New: MSG_error_t MSG_task_get_from_host(m_task_t * task, int channel, m_host_t host);
+ waits for the first task coming from a given host.. [AL]
+
+ GRAS new functionnalities: [MQ]
+ * Enhance the parsing macro to allow the size of multidimentional objects
+ to be given thru annotations.
+ * New example (and documentation): Matrix Multiplication a la RPC
+ (as when I was young!) and fix a bunch of bugs found on the way.
+
+ GRAS performance improvements: [MQ]
+ [DataDesc]
+ * Reduce the amount of cbps creation/destruction by making it static to
+ datadesc_send/recv() and using a (newly created) cbps_reset (based on
+ dynar_reset ())
+ [Virtu]
+ * Change libdata to a set so that we can search for stuff by ID (and thus
+ reduce the insane amount of dict lookups)
+
+ [Transport]
+ * Actually implement gras_datadesc_copy() so that we don't have to mimick
+ RL communication on top of SG since it's so uneffective.
+ It may also be used for inter-thread communication in RL, one day.
+ * Use gras_datadesc_copy() to exchange messages on top of SG
+ Allows to:
+ - improve message exchange performance on top of SG
+ - deprecate transport_plugin_sg.c:gras_trp_sg_chunk_send() & recv()
+ * Don't exchange on the network the size of the used part of buffer,
+ instead, specify the possible buffer size to read().
+ Advantages:
+ - reduces the amount of read/write calls (one pair per exchange)
+ - reduces the amount of exchanged data (the size)
+ - allows to retrieve all arrived data on receiver side, if we don't need
+ it right now (subsequent read will peek the buffer)
+ - allows the receiver to proceed with the begining of the stream before
+ everything is arrived
+ - make it possible to build an iov transport (using readv/writev)
+ Extra difficulty:
+ - take care of the data with non-stable storage (like stacked data),
+ and bufferize them.
+ * If possible, TCP send uses vector I/O (when writev() is here)
+ - Don't use it for receive since we send data sizes and data on the
+ same stream, so we wouldn't be able to chain large amount of chunks
+ before having to flush the stuff to read the size.
+ * Rework the transport plugin mecanism to simplify it and reduce the
+ amount of pointer dereferencement when searching for the right function
+ to use.
+
+ * I guess that now, we do almost as few system calls as possible while
+ doing as few data copy as possible.
+
+ To improve it further, we could try to send all the sizes first and then
+ all the data (to use iov on receiving size), but it's only a partial
+ solution: when you have 2 dimensional data, the sizes of the second
+ dimension is data of the first dimension, so you need 3 streams.
+
+ I'm not sure the potential performance gains justify the coding burden.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Fri, 21 Oct 2005 14:42:20 +0200
SimGrid (3.00) stable; urgency=low