X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/612bd419ef1c191a799e03b7b1cc5fad8f5d5982..423d998b546e97c9b535e6e703768fb6a7ebb2fc:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 891553cb92..7e4d312ffb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +SimGrid (3.0.2) unstable; urgency=low + + XBT: + * New module: cunit [MQ] + * New functions: xbt_dynar_getfirst_as() and xbt_dynar_getlast_as() [MQ] + + -- + SimGrid (3.0.1) unstable; urgency=low XBT: @@ -15,23 +23,85 @@ SimGrid (3.0.1) unstable; urgency=low 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. - - GRAS: + * 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. [MQ] - * Use gras_datadesc_copy() to exchange messages on top of SG [MQ] + 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() - - Documentation improvements: - * xbt_log module unmercifully reworked [MQ] - - -- + * 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 Fri, 21 Oct 2005 14:42:20 +0200 SimGrid (3.00) stable; urgency=low