X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1b6c197b14e824a4d32214728d5988e288668b40..06499b3cdbabe67956c0367ceaf0b838ebe54ac2:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 355398d361..f90b3d095c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,583 @@ +SimGrid (2.97) unstable; urgency=low + + + -- + +SimGrid (2.96) unstable; urgency=low + + AKA SimGrid 3 rc 2. + + XBT: + * New! Exception handling with setjmp or such (code from OSSP ex) [MQ] + This deprecates the xbt_error_t mecanisms. + It modifies (simplifies) all XBT and GRAS API. + MSG API keeps unchanged (exceptions raised by XBT are catched from + within MSG and masked with existing error handling facilities) + + SURF: + * New! Add a FATPIPE model. [AL] + * New! Add a parallel task model. [AL] + * New! Add automatically a loopback interface (in the default + network model) if none was precised. + + MSG + * Bugfix: MSG_process_resume now works with the current running process. + [AL] + * New! Add MSG_parallel_task_create and MSG_parallel_task_execute. [AL] + * Modification of MSG_task_get_compute_duration. Once a task has been + processed, the value returned by this function is now equal to 0. [AL] + * New! Add double MSG_task_get_remaining_computation(m_task_t task) and + MSG_error_t MSG_task_cancel(m_task_t task). Add a state + (MSG_TASK_CANCELLED) to MSG_error_t corresponding to the cancelation + of a m_task. For now, MSG_task_cancel only works with computation + tasks. [AL] + * New! Add double MSG_get_host_speed(m_host_t h) that returns the speed + of the processor (in Mflop/s) regardless of the current load on the + machine. [AL] + * API Change: use proper naming convention for MSG_getClock and + MSG_process_isSuspended: MSG_get_clock and MSG_process_is_suspended. + [AL] + * New! Add void MSG_task_set_priority(m_task_t task, double priority). + This function changes the priority of a computation task. This priority + doesn't affect the transfer rate. A priority of 2 will make a task + receive two times more cpu power than the other ones. This function + has been added to suit the needs of Nguyen The Loc and hasn't been that + much tested yet. So if it fails, please report it and send me your code. + [AL] + * API Change: removed all functions and types that were marked "deprecated" + since many months. Renamed MSG_global_init_args to MSG_global_init. + + -- Da SimGrid team Mon, 8 Aug 2005 17:58:47 -0700 + +SimGrid (2.95) unstable; urgency=low + + XBT + * Steal some nice code to GNU pth to fix context detection and usage [AL] + * Cleanup in the xbt_config API; add configuration callbacks. [MQ] + * Cleanup in the initialization API: the unused "defaultlog" is dead. [MQ] + + SURF + * Bugfix: Allow absolute paths for platform description files [MQ] + * Bugfix: do free the variables after use. Leads to drastic performance + improvement [AL] + * Implement max_duration (ie, timeouts) on resources [AL] + + MSG + * Implement MSG_config to configure MSG at runtime. xbt_cfg test on a real + case ;) [MQ] + * Implement MSG_channel_select_from() to help GRAS now that SURF provide + the needed support (timeouts) [AL] + + GRAS (new features) + * Implement measurement sockets. You can now get the bandwidth between two + hosts thanks to AMOK (see below). [MQ] + * gras_datadesc_dynar() builds a dynar type descriptor, allowing to send + dynar over the network (yeah) [MQ] + * Real (even if simplistic) implementation of gras_os_myname() on RL [MQ] + * simple/static token-ring example. [Alexandre Colucci and MQ] + * Use MSG_channel_select_from() and remove the *slow* hack we had to put + in place before [MQ] + + GRAS (bug fixes) + * Differentiate the types "char[22]" and "unsigned char[22]" in automatic + type parsing. "short" and "long" modifiers were also ignored; other + modifier (such as reference level) are still ignored. [MQ] + * Embeed the buffer size within the buffer itself on SG. [MQ] + That way, send() are atomic and cannot get intermixed anymore (at least + the ones which are less than 100k; bigger messages still have the issue) + * Array size pushed by the field, not by the field type (or each + and every long int will push stuff to the cbps) [MQ] + * use select() to sleep since it allows to portably sleep less than one + second. [MQ] + + GRAS (minor cleanups) + * .Makefile.local (generated from gras_stub_generator) |MQ]: + - Do clean .o files + - Compile with -g + * Type Callbacks now receive the gras_datadesc_type_t they work on as argument. + * type category 'ignored' killed as it was never used and were difficult + to transmit. + * whether a type can cycle or not is now a flag, leaving room for more + flags (as "ignored", if we feel the need one day ;) + * Rename raw sockets to measurement sockets since "raw" has another + meaning in networking community. + + AMOK + * Advanced Metacomputing Overlay Kit introduction. It is based over GRAS + and offers features not belonging to GRAS but that most applications + need. One day, it may be a set of plugins loadable at runtime. + * New module: bandwidth + bandwidth measurement between arbitrary nodes running this module. [MQ] + + -- Da SimGrid team Thu, 30 Jun 2005 16:29:20 -0700 + +SimGrid (2.94) unstable; urgency=low + + The first beta release of SimGrid 3 ! + + >>>Arnaud<<< + (documentation) + * Update the main page and the FAQ. Adding references to gforge. + + (gras) + * Add a gras_os_getpid function. + + (msg) + * Add MSG_task_get_compute_duration() and MSG_task_get_data_size() + * Extend the logs so that they also print PID, hostname, date, ... if + available. + * Convert the MSG example to the use of xbt_logs instead of PRINT_MESSAGE, + and kill the old version which were in testsuite/ + * Rewrite tools/MSG_visualization/colorize.pl for using with logs instead + of PRINT_MESSAGE + + (xbt) + * Add xbt_os_time(). As the rest of xbt/portability, this is not public + for users. Instead, each programming environment (GRAS, MSG,...) use it + when needed to provide such a feature to users. + Don't shortcut the mecanism or you will also shortcut the virtualization + you need on the simulator. + + >>>Martin<<< + (infrastructure) + * Cleanups in configury with regard to compile optimization/warning flags. + Also add -fno-loop-optimize to any powerpc since it's the optimization + killing gcc (< 3.4.0). + * Doxygen cleanups: move MSG examples, kill the second Doxygen phase + needed by MSG examples complications + * Borrow configury beautifications from PHP + + (xbt) + * Bugfix: XBT_LOG_NEW_DEFAULT_CATEGORY now compiles without compiler + warning (thanks loris for stumbling into this one). + * Bugfix: stop loading private headers (gras_config.h) from the public + ones (xbt/swag.h). + + (gras) + * Change SIMGRID_INSTALL_PATH to GRAS_ROOT in Makefiles generated for user. + * Rename gras_get_my_fqdn to gras_os_myname and implement it in the simulator + RL would imply a DNS resolver, which is *hard* to do in a portable way + (and therefore delayed). + * Implement a real timer mecanism and use it in timing macros. This allows + to avoid rounding errors and get a 0.000005 sec precision in timing + macros. While I was at it, various cleanups: + - allow to declare more than one timed section per file (fix a stupid bug) + - move some private declaration to the right place + - merge conditional execution and timing macros into emulation module + - document the module + - make sure the module cleanups its mess on gras_exit + * Documentation improvements: + - (new) how to compile applications using GRAS + - (new) emulation support (timing macros) + + -- Da SimGrid team Fri, 13 May 2005 10:49:31 +0200 + +SimGrid (2.93) unstable; urgency=low + + Alpha 4 on the path to SimGrid 3 (aka the "neuf-trois" version) + + [Arnaud] + - Use Paje properly where used. Still to be sanitized properly. + - Portability fix: Add an implementation of the contexts using pthread + + [Martin] + (misc) + - Add xbt_procname(): returns the name of the current process. + Use it to show the current process's name in all logging. + (infrastructure) + - fix detection of older flex version and the reaction, since we do + depend on modern ones (we use lex_destroy) + - Better separation of SG and RL in the libs: remove all simulation code + from libgras. As a result, this lib is now only 200k when stripped. + Some of the xbt modules may also be duplicated (two sets and such) and + should be cleaned/killed before SG3. + - Insist on using xlC on AIX because of weird problems involving gcc there. + - Cleanup the make remote stuff. This is now done by scripts + tools/graspe-{master,slave} (GRAS Platform Expender). This is still + mainly for our private use, but we're working on changing them to user + tools, too. + (gras) + - Bugfix: flush the socket on close only if there is some *output*. + - Bugfix: flush idempotent when there's nothing to send (don't send size=0) + (msg) + - Add MSG_task_get_name. The task names are mainly for debugging purpose, + but anyway. + + -- SimGrid team Fri, 4 Mar 2005 14:32:37 -0800 + +SimGrid (2.92) unstable; urgency=low + + Alpha 3 on the path to SimGrid 3 + + [Arnaud] + (gras) + - New! First try of benchmarking macros. + - New! First try so that gras_stub_generator generate deployment and + remote compilation helpers. + (msg) + - Bugfix: Initialization fix in msg_test. + + [Martin] + (surf) + - Bugfix: applied patch to lexer so that it doesn't need a huge heap. + (xbt) + - Bugfix: let dicts work with NULL content (_foreach didn't) and cleanups + (gras) + - API Change: gras_os_sleep to take the amount of seconds as a double. + Accepting an int was error prone since it was the only location where + seconds were coded as such. It leaded to damn rounding errors. + - Bugfix: Hard to belive that timers ever worked before this. + + -- SimGrid team Wed, 23 Feb 2005 22:09:21 +0100 + +SimGrid (2.91) unstable; urgency=low + + Alpha 2 on the path to SimGrid 3 + + [Arnaud] + (surf) + - Bug fix in the lmm_solver. + (msg) + - New! Interface to Paje (see http://www-id.imag.fr/Logiciels/paje/) + through the function MSG_paje_output. + - New! Introducing two new functions MSG_process_kill() and MSG_process_killall(). + - It is possible to bound the rate of a communication in MSG with + MSG_task_put_bounded() (was already in the previous version but I had forgotten + to write it in the changelog). + - Bug fix to let GRAS run on top of MSG until we move it directly on top + of the SURF. + + [Martin] + (infrastructure) + - Various cleanups to the autotools stuff + - Begin to move Gras examples to examples/gras/ + - Let make distcheck work again (yeah!) + (documentation) + - documentation overhauled using doxygen. + gtk-doc-tools is dead in SimGrid now. + - Automatically extract all existing logging categories, and add the list + to the documentation (long standing one, to say the less) + (gras) + - Cleanup the known architecture table. Reorder the entries to group what + should be, and use a more consistent naming scheme. + (some of the test dataset are still to be regenerated) + - New! Allow library to register globals on each process just as userdata + does. + This is implemented using a xbt_dict and not a xbt_set, so we loose the + lookup time (for now). + Use it in msg and trp. + This cleans a lot the internals and helps enforcing privacy of the + headers between the gras components. + - New! Add a timer mechanism, not unlike cron(8) and at(1). + - Bugfix: gras_os_time was delirious in RL. + - Bugfix: gras_trp_select/RL don't run into the wall when asked to select + onto 0 sockets. + - Reenable GRAS now that it works. + + -- Arnaud Legrand Mon, 14 Feb 2005 14:02:13 -0800 + +SimGrid (2.90) unstable; urgency=low + + Alpha 1 on the path to SimGrid 3 + + * It is a long time since the last release of SimGrid. I'm sorry about + that but as I had told you, I was rewriting a lot of things. I apologize + to those who had been reporting bugs to me and that I had not answered. + If your bug is still in the new version, please tell me. Here is a + summary of the main changes. + + * REVOLUTION 1: The SimGrid project has merged with the GRAS project + lead by Martin Quinson. As a consequence SimGrid gains a lot in + portability, speed, and a lot more but you'll figure it out later. + SimGrid now comprises 3 different projects : MSG, GRAS and SMPI. + I wanted to release the new MSG as soon as possible and I have + broken GRAS, which is the reason why, for now, only MSG is fully + functional. A laconic description of these projects is available + in the documentation. + + * REVOLUTION 2: I have removed SG and I am now using a new simulation + kernel optimized for our needs (called SURF but only the developers + should use it). Hence, MSG is now roughly 30 times faster and I think + that by rewriting a little bit MSG, I could event speed it up a little + bit more. Beside the gain in speed, it is also much easier to encode a + new platform model with SURF than it was with SG. More to come... + + * REVOLUTION 3: I have tried to change a little as possible the API of + MSG but a few things really had to disappear. The main differences + with the previous version are : + 1) no more m_links_t and the corresponding functions. Platforms are + directly read from a XML description and cannot be hard-coded + anymore. The same format is used for application deployment + description. The new format is described in the documentation. + Have a look in tools/platform_generation. There is a tiny script + that converts from the old platform format to the new one. Concerning + the application deployment format, parsing the old one is tricky. + I think most of you should however be able to convert your files. If + it is really an issue, I can write a C code that does the conversion. + Let me know. + 2) the toolbox tbx does not exist anymore. We now have a library + with much more data-structures but without the hash-tables (we have + dictionaries that are much faster). + + -- Arnaud Legrand Mon, 31 Jan 2005 10:45:53 -0800 + +***************************************************************************** +* Follows the old GRAS changelog. It does not follow the same syntax, but I * +* don't feel like converting the oldies. (Mt) * +***************************************************************************** + +2005-01-31 Arnaud + Version 2.90: "the long awaited one" + - Finished rewriting and debugging MSG. Rewrote the documentation. + - disable GRAS for now since it needs to be ported to the newest SG + +2004-12-16 Martin + - Finish the port to windows (using mingw32 for cross-compile) + +2004-11-28 Arnaud + - Main loop and datastructures of SURF. A cpu resource object is + functional. Surf can thus be used to create cpu's with variable + performance on which you can execute some actions. + +2004-11-15 Martin Quinson + - Port to ARM. Simply added the alignment and size descriptions. Should + work, but the ARM machines are so slow that I didn't had the opportunity + to 'make check' over there yet. + +2004-11-15 Arnaud Legrand + - Trace manager now written. It uses a heap structure and is therefore + expected to be efficient. It may however be speeded up (particularly + when many events occur at the same date) by using red and black + trees. One day maybe... + - Max-min linear system solver written. It uses a sparse matrix + structure taking advantage of its expected use. Most operations are + O(1) and free/calloc are called as few as possible. The computation of + the minimum could however be improved by using a red and black tree + (again ! ;). + +2004-11-03 Arnaud Legrand + - Rename every gras_* function that was in xbt/ to its xbt_ + counterpart. + - Add a heap and a doubly-linked list to xbt + - Added a dichotomy to the dictionaries. make check works as well before + so I assume that the patch is correct. I do not know however if things + run effectively faster than before now. :) + + Inclusion of the SimGrid tree in the GRAS one. The archive is renamed to + SimGrid, and the version number is bumped to 2.x + +2004-10-29 Martin Quinson + - Introduction of the remote errors. + They are the result of a RMI/RPC on the remote machine. + ErrCodes being scalar values, you can't get the host on which those + errors did happen. Extending the error mechanism as in Gnome is possible. + No idea yet whether it is a good idea. + +2004-10-28 Martin Quinson + - Interface revolution: the Starred Structure Eradication. + I used to do typedef struct {} toto_t; and then handle *toto_t. + Arnaud (and Oli) didn't like it, and I surrendered. Now, you have: + - ???_t is a valid type (builded with typedef) + - s_toto_t is a structure (access to fields with .) + - s_toto is a structure needing 'struct' keyword to be used + - e_toto_t is an enum + - toto_t is an 'object' (struct*) + Exemple: + typedef struct s_toto {} s_toto_t, *toto_t; + typedef enum {} e_toto_t; + Moreover, only toto_t (and e_toto_t) are public. The rest (mainly + s_toto_t) is private. + + - While I was at it, all gras__free() functions want a gras__t* + so that it can set the variable to NULL. It was so for dicts and sets, + it changed for dynars. + + - Fix a bunch of memleaks in dict_remove + - Fix a bug in sg/server_socket opening: it failed all the time. + +2004-10-07 Martin Quinson + - Speed up dynar lookup operation a bit. + + gras_dynar_get is dead. + + Now, you can choose between gras_dynar_get_cpy (the old gras_dynar_get + but should be avoided for efficiency reasons) and gras_dynar_get_ptr + (which gives you the address of the stored data). + + gras_dynar_get_as is an helpful macro which allows you to retrieve a + copy of the data using an affectation to do the job and not a memcpy. + + int toto = gras_dynar_get_as(dyn,0,int); rewrites itself to + int toto = *(int*)gras_dynar_get_ptr(dyn,0); + + It does not really speedup the dynar test because they are + setting elements all the time (and look them seldom). But the dict does + far more lookup than setting. + + So, this brings the dict_crash test from ~33s to ~25s (200000 elms). + +2004-10-05 Martin Quinson + - Allow to (en/dis)able the cycle detection at run time. + + Whether we should check for cycle or not is now a property of each + datatype. When you think there may be some cycle, use datadesc_cycle_set. + datadesc_cycle_unset allow to remove this property when previously set. + + Note that the cycle detection is off by default since it impacts the + performance. Watch the data you feed GRAS with ;) + + This property is hereditary. Any element embedded in a structure having it + set have it set for the time of this data exchange. + + You should set it both on sender and receiver side. If you don't set it on + sender side, it will enter an endless loop. If you forget on receiver + side, the cycles won't be recreated after communication. + + - Header reorganization. + Kill gras_private.h, each submodule must load the headers it needs. + +2004-10-04 Martin Quinson + - Interface revolution: do not try to survive to malloc failure. + + Now, gras_malloc and friends call gras_abort() on failure. + As a conclusion, malloc_error is not a valid error anymore, and all + functions for which it was the only gras_error_t return value are + changed. They now return void, or there result directly. + This simplify the API a lot. + +2004-09-29 Martin Quinson + - Re-enable raw sockets. + Created by gras_socket_{client,server}_ext; + Used with gras_raw_{send,recv} + No select possible. + + It should allow to kill the last bits of gras first version soon. + + This is not completely satisfactory yet (duplicate code with + chunk_{send,recv}; a bit out of the plugin mechanism), but it should + work. + + - Simplify transport plugin (internal) interface by not passing any + argument to _server and _client, but embedding them in the socket + struct directly. + +2004-09-28 Martin Quinson + - Finish the port to AIX. + autoconf was my problem (segfault within the malloc replacement + function. No idea why) + +2004-09-16 Martin Quinson + - Fix some size_t madness on 64bit architectures. + +2004-09-08 Martin Quinson + - Reduce the number of system headers loaded, overload some more system + calls (such as malloc to cast the result of the system one, and work + properly on AIX) + - Fix and reintroduce the config support + +2004-09-07 Martin Quinson + - Source code reorganization to allow Arnaud to surf all over there. + - Allow to document the logging categories. + - Remove all uppercase from logging categories and useless cleanup in names. + +2004-08-18 Martin Quinson + Version 0.6.2 (protocol not changed; API changed) + - Interface cleanup: gras_msgtype_by_name returns the type (instead of a + gras_error_t), and NULL when not found. Functions expecting a msgtype + as argument (msg_wait; msg_send) deal with NULL argument by providing a + hopefully usefull message. + - Portability to prehistoric sparcs again + +2004-08-17 Martin Quinson + Version 0.6.1 (protocol not changed; ABI not changed) + - prealloc some buffers to speed things up + +2004-08-11 Martin Quinson + Version 0.6 (protocol not changed; ABI expended) + - The parsing macro can deal with the references, provided that you add + the relevant annotations (using GRAS_ANNOTE(size,field_name)) + +2004-08-09 Martin Quinson + Version 0.5 (protocol not changed; ABI changed) + - Allow to off turn the cycle detection code in data exchange at + compilation time. It should be at run time, but I'm short of time (and + the config stuff is still broken). That way, we keep dict out of the + critical path, which is good because the performance is poor: + - search not dichotomial yet + - dynar give no way to access their content and memcpy everytime + - In composed data description (struct, ref and so on), stop foolness of + keeping the subtype's ID, but store the type itself. This keeps sets out + of the critical path, which is good since they rely on dynar and + dictionnaries. The only loose of that is that we cannot detect the + redeclaration of a structure/union with another content (but I'm not sure + the code detected well this error before anyway). We still can detect + the redefinition discrepancy for the other types. + - Use a whole bunch of optimisation flags (plus -fno-strict-aliasing since + it breaks the code because of type-punning used all over the place). + This breaks on all non-gcc architectures (for now). + + All those changes (plus the buffer of last time) allow me to gain 2 order + of magnitude on cruel tests consisting of 800000 array of integers on two + level of a hierarchical structure (200 secondes -> 4 secondes) + + API change: + - the selector of reference must now return the type it points to, not + the ID of this type. + +2004-08-06 Martin Quinson + Version 0.4 (protocol changed; ABI not changed) + - Allow to pass --gras-log argument to processes in simulation mode. Really. + - New debugging level: trace (under debug) to see effect of GRAS_IN/OUT + - Implement a buffer transport, and use it by default (it relies on tcp in + real life and on sg in simulation). + That's a bit hackish since I had a new field to the structure to store + its data without interfering with the subtype ones. Inheritance + is tricky in C. And that's a kind of reverse inheritance with one class + derivating two classes. Or maybe a game with java interfaces. Anyway, + that's damn hard in C (at least). + Moreover, I got tired while trying to ensure plugin separation and + genericity in SG mode. MSG wants me to do weird things, so let's go for + cruel hacks (temporarily of course ;). + See comment in transport_private.h:71 + - do not include all the _interface headers in private but in the files + which really need them (to cut the compilation time when they are + modified) + +2004-07-26 Martin Quinson + Version 0.3 (protocol not changed; ABI changed) + - Major overhault of the datadesc interface to simplify it: + - shorted the function names: + s/gras_datadesc_declare_struct/gras_datadesc_struct/ and so on + - add a trivial way to push/pop integers into the cbps without malloc. + This allows to make really generic sub_type description, which simply + pop their size of the stack. + - add a function gras_datadesc_ref_pop_arr() which does what users want + most of the time: Declare a dynamic array (which pops its size of the + stack) and declare a reference to it. Poor name, but anyway. + - kill the post-send callback, add a post-receive one + +2004-07-23 Martin Quinson + Version 0.2 (protocol changed; ABI changed) + - add some testing for cpbs in the test cases, and fix some more bugs. + This invalidate again the little64 data file, since I cannot regenerate + it myself. + - remove an awfull optimization in the logging stuff, allowing me to: + - understand it again + - learn gcc how to check that the argument match the provided format + - fix all errors revealed by gcc after that + - internal keys of dict are not \0 terminated. Deal with it properly in + loggings instead of segfaulting when the user want to see the logs :-/ + +2004-07-22 Martin Quinson + - Fix some stupid bug preventing cbps (callback postit) from working + 2004-07-21 Martin Quinson - Version 0.1.2 - Some documentation cleanups - remove the useless last argument of msgtype_declare - rename the Virtu functions to fit into the 'os' namespace + - move headers src/include -> src/include/gras/ and stop fooling with + gras -> . symbolic link + - make distcheck is now successful 2004-07-19 Martin Quinson Version 0.1.1 @@ -25,7 +600,7 @@ - Improvement to the remote testing toysuite 2004-07-10 Martin Quinson - [autoconf mecanism] + [autoconf mechanism] - get ride of a bunch of deprecated macros - actually run the test for two-compliment, not only compile it :-/ - test whether the structures get packed (and bail out if yes. Damn. @@ -156,7 +731,7 @@ 2004-04-19 Martin Quinson [Data description] - - register init/exit functions within gras module mecanism + - register init/exit functions within gras module mechanism - send/receive function. Convertion is not implemented, but short-cutted if not needed. struct/array elements are sent one by one (instead of block-wise), but