X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3fd769deb562a55a04597bf2bf6722f7d7a6a4bb..65ed12738b3113afdcb29e4c5fd177cbae2ac856:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 6d1c3ba6bb..a9df8d77fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,775 @@ -SimGrid (3.0.1) unstable; urgency=low +SimGrid (3.3.5-svn) unstable; urgency=low + + The "C spoken, se habla Java, Ruby 話せます, fala-se Lua" release. + + Java Bindings: Various Cleanups + * Remove put/get: no need to export deprecated interface in Java + Use send/receive instead. + * Cleanup the examples and add a README per directory + * Remove example autoDestination (that's the only way to go now) + * Remove example explicitDestination (was a plain copy of basic) + * Make JniException a runtime exception, so that there is no need to + declare the fact that you may encounter such a beast. I guess that + nobody will ever want to survive such error. + * Create specific errors for each MSG case of failure: + host failure, transfer failure, timeout, task cancelled + Ruby and Lua Bindings: create them + * That's new and great, you should try them out. + Same functionalities than Java bindings, only even less polished + SimDag: + * Kill the useless "rate" argument of SD_task_get_execution_time() + Everyone used to provide -1 as a value, it was not used, and the + semantic of a possible use wasn't even clear. + * SD_SCHED_NO_COST: Constant to use as cost in SD_task_schedule() + either as comm costs or compute costs to mean that there is no + such thing for that specific task. + MSG: + * In trace replay, allow to have one trace file per process. + Give the specific trace file as argument of each process, + and call MSG_action_trace_run(NULL) + You can still have one merged file for each processes. + * Kill the MSG_paje_output() function. It's a noop since 2 years. + * Kill MSG_WARNING and MSG_FATAL return codes: they were not used + anywere in source. + * Add a MSG_task_set_data() function + SIMIX: + * add a SIMIX_sem_get_capacity() function + SURF: + * Rename configuration variables to start a hierarchy: + o cpu_model -> cpu/model + o network_model -> network/model + o workstation_model -> workstation/model + * New configuration variables: + o network/bandwidth_factor: correction to bandwith + o network/latency_factor: correction to latency + o netwotk/weight_S: correction to the weight of competing streams + SMPI: + * Implement MPI_Get_count, MPI_MAXLOC, MPI_MINLOC + XBT: + * config: add the ability to set a default value after registration + Does not override any previously set value (e.g. from cmd line) + + + -- Da SimGrid team + + +SimGrid (3.3.4) stable; urgency=low + + The "Desktop Grid needs love too" release (also called Xmas release). + + Models improvements: + * Major speedup in the maxmin system solving by using lazy evaluation + Instead of solving completely the maxmin system at each iteration, + only invalidate (and recompute) the modified parts. + This new feature is enabled in default models but you can try to + turn it on with "--cfg:maxmin-selective-update=1" for other models. + * Cas01 IMproved as default CPU model + This CPU model is the same Cas01 model, but it uses the + maxmin-selective-update flag and a heap structure to manage + actions on SURF kernel. + It reduces the complexity to find the next action to finish and, + consequently, it's faster than the old Cas01. + This is the new default CPU model (Cas01). + * Rename the old Cas01 model to Cas01_fullupdate + Keep the old cpu model Cas01 with the new name of Cas01_fullupdate. + Use "--cfg=cpu_model:Cas01_fullupdate" to use the old default CPU model. + * CpuTI (CPU Trace Integration) + A new CPU model whose objective is simulate faster when using + availability trace files. + Instead of using a full featured, over engineered maxmin system for + CPU modeling, this model does the pre-integration of traces files + to calculate the amount of CPU power available, and so, executes + faster than the old CPU models. + Use "--cfg=cpu_model:CpuTI" to change to this CPU model. + * Use LV08 as default network model since it gives better accuracy + for small messages and shouldn't change things for big ones. + Use --cfg=network_model:CM02 to get the previous behavior. + + + ****************************************** + *DO NOT MIX 3.3.4 RESULTS WITH OLDER ONES* + ****************************************** + * The new CPU model may changes simulations! + The point is that events occurring 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. + * The new network model will change simulations! + This new model is more realistic than the previous one, so you + should consider redoing your old experiments with this model. + Sorry for the inconvenience. + + Build System: + * Introduce the supernovae compilation mode + When compiled that way, the whole SimGrid (or almost) is put in a + single compilation unit and compiled in one shoot. + This is to help gcc which has difficulties to inline stuff from one + file into another. + The speedup seem to be above 15%, althrough more tests are needed on + amd64 to confirm that gain. + + MSG: + * Port of MSG's mailbox on top of SIMIX network + The put/get mechanism was greatly simplified on the way. + + SIMIX: + * New SIMIX network module. Provides: + - Mailbox: rendez-vous mecanism to find with who you want to speak + - Synchronous send/recv: easier and hopefully faster since the + logic is handled in the maestro process directly now + - Asynchronous send/recv: you dreamt of it? It's here now + Too bad that nobody cared enough to propagate the change to MSG. + * Add semaphores as SIMIX synchronization mechanism. + + SimDag: + * new function SD_daxload(char*) to load a DAX file + (see http://vtcpc.isi.edu/pegasus/index.php/WorkflowGenerator) + * Introduce typed tasks. Specify its kind and cost at creation. + At scheduling, just give where it should be placed, and the cost + for each involved resource is automatically computed. + Existing constructors so far (more to come of course): + - SD_task_create_comm_e2e() for end-to-end communication + - SD_task_create_comp_seq() for sequential computation + Use SD_task_schedulev() / SD_task_schedulel() to schedule them. + * new function SD_task_dump() for debuging display + * new function SD_task_dotty(task,FILE*) writing to file the info + about the task in dotty format + * SD_task_dependency_exists() can now cope with having one of its + arguments NULL. If so, it tests whether the other argument has any + dependency. + * Add getters on list of preceding/following tasks: + SD_task_get_parents(task) and SD_task_get_children(task) + * Add getters on amount of workstations and list: + SD_task_get_workstation_count(t) and SD_task_get_workstation_list(t) + * Add getter on task kind: SD_task_get_kind(task) + * Update the start_time and finish_time of tasks on completion/failure + * Bugfix: Remove task from state swags when destroyed + + GRAS: + * New function: void gras_cpu_burn(double flops) -- a simple CPU burner + + XBT: + * New function: xbt_dynar_dopar(dynar,fun) to map a function over the + dynar with one separate thread per value of the dynar. + * Change the prototype of xbt_thread_create(), sorry. + Added a boolean parameter indicating whether we want to join this + thread (used in SG only for now) + * Implement xbt_thread_join and xbt_thread_yield in SG also. + + Bug fixes: + * GTNetS wrappers should now be usable again (and betterly tested too) + * Fix a major regression from 3.2 where the timeout provided to + MSG_task_put_with_timeout() was used as absolute time before which + the comm should be done. + * Start to fix the tag. + - Internal links should be good now (beside of the loopback, which + use the private link instead) + - paths to the external world is still rather broken + - the tag is just broken. Actually that's brain-dead. + We need sth like + to make it less stupid + ** Check your platform with teshsuite/simdag/platforms/flatifier ** + * Fix a source-level compatibility glitch from 3.2: after defining + MSG_USE_DEPRECATED, you can use the old name + MSG_task_put_with_time_out() for MSG_task_put_with_timeout() + * Allow to compile from the SVN with automake 1.11 + * Fix some problems when using the "start_time" tag in deployment XMLs. + * Fix #8569: XBT/synchro.h has redundant declarations + * Fix #8563: MSG return values and exceptions + Introduce a MSG_TIMEOUT_FAILURE return code and use it consistently. + * Integrate patch #8636: Obey DESTDIR when installing documentation. + Thanks to Robson Peixoto. + * Fix a vicious bug in dictionaries inducing that some elements were + not freed on xbt_dict_free() + + Portability report of this version: + * Main portability targets: + - linux (ubuntu (804/810/910) /debian (4/5/testing) /fedora (core11)) + on (amd64/i386/ia64) + - mac leopard on i386 + Known problems: http://cdash.inria.fr/CDash/index.php?project=Simgrid + but nothing critical. + * Other platforms: windows, AIX and others were not tested for this release + + Timing report of this version: + * Lazy evaluation brings arbitrary speedup (ie, speedup depending on + scenario parameters). From 8h to a few seconds in desktop grid settings. + * Supernovae brings about 25% speedup on i386. + + -- Da SimGrid team Thu, 24 Dec 2009 19:07:39 +0100 + +SimGrid (3.3.3) stable; urgency=low + + The "Need for Speed" release. + + The timings done to validate the 3.3.2 were faulty. + Instead of being 5% faster, it was 15% slower (compared to 3.3.1). + + The problem was a conversion from a manually handled vector to + xbt_dynar_t on the critical path. + xbt_dynar_foreach calls functions, inducing stack management crap. + + We inlined these functions and xbt_dynar_foreach is now breath taking. + We also inlined xbt_swag_belong on the way. + + Here are some approximate speedup measurements (on master/slaves + simulations lasting between 10s and 20s each): + 3.3.1 -> 3.3.2: about same performance + 3.3.2 -> 3.3.3: 40% speedup + 3.3.1 -> 3.3.3: 40% speedup + 3.3.1 with inline patch -> 3.3.3: 30% speedup + + Our reading is that the refactoring which occurred in 3.3.2 made us + suffer much more from the xbt_dynar_foreach low performance, but + once we solved this, this refactoring proved to be very performance + effective. From the 40% speedup, somehow, 10% are due to the + inlining and 30% to the refactoring. + + That's a pitty that gcc cannot inline functions placed in other files + alone. We have to choose between: + - break the encapsulation (by putting private data structures and + accessors in headers files to help gcc) + - live with low performance + - switch to a decent compiler such as icc (not quite possible). + + -- Da SimGrid team Thu, 20 Aug 2009 21:21:33 +0200 + +SimGrid (3.3.2) stable; urgency=low + + The "Simplicity does not preceed complexity, but follows it" release. + + The main contributors of this release were (lexical order): + Silas De Munck, Stéphane Genaud, Martin Quinson, Cristian Rosa. + + SURF: + * Extract the routing logic into its own object. + (was dupplicated in network.c and workstation_LV07.c; + Allows to implement other ways of storing that info) + => kill now useless network_card concept + - Use dynar to represent routes (instead of void** + int*) + - kill link_set (use surf_network_model->resource_set instead) + - Add a command-line option to choose the routing schema to use + - Add three new models: + * Floyd (shortest path computed at initialization) + * Dijikstra (shortest path recomputed all the time) + * Cached Dijikstra (shortest path computed on need) + All these models where contributed by Silas De Munck, and are + described in his ICCS09 paper. + + * Simplify model declaration + (less redirections, less function to write when defining a model) + - Factorize stuff between models: + - model_init/exit + - Set of resources: + surf_model_resource_set(model) + surf_model_resource_by_name(model, name) + - Unify the types of models in s_surf_model_t (using an union) + - Embeed fields of common_public directly into s_surf_model_t + - Rename model methods: + action_free ~> action_unref + action_change_state ~> action_state_set + action_get_state ~> action_state_get + - Change model methods into functions : + (model)->common_public->action_use ~> surf_action_ref + + * Implement a generic resource; use it as ancestor to specific ones + (allows to kill duplicated code in models) + Drawback: timer command don't need no name nor properties; + workstation_CLM03 don't need no properties + (but I guess we can live with those few bytes wasted) + + * Improve the action object model + - implement a constructor avoiding dupplicated code about field + initialization in generic_action part. + + * Kill the SDP model: it has an external dependency, is deprecated + in flavor of modern lmm models, and didn't compile since a while + + SIMIX: + * Relocation of the context module from XBT to SIMIX. + (the context were decoupled from the simix processes, duplicating a lot of code) + => a lot of code was factorized + - less overhead is introduced during scheduling + - simpler API for the context factory + - the logic for process creation,destruction and manipulation was simplified + * Simplification of the s_smx_process_t data structure. + => accesing the simix level data associated to a process is faster now, + and the code is a lot more readable. + + SMPI: + * Implement some more MPI primitives: + MPI_Bcast, MPI_Waitany, MPI_Waitall, MPI_Reduce, MPI_Allreduce, MPI_Scatter, MPI_Sendrecv, MPI_Alltoall + -implementation: Bcast: flat or 2-ary tree (default), + Barrier: 4-ary tree, + Reduce: flat tree + Allreduce: Reduce then Bcast + Alltoall: "basic_linear" if data per proc < 3Kb, "otherwise pairwise". + Not yet implemented: "Bruck" for data per proc < 200b and comm size > 12 + Alltoallv: flat tree, like ompi + Scatter: flat tree + * Add support for optimized collectives (Bcast is now binomial by default) + * Port smpirun and smpicc to OS X + + SimDag: + * Kill SD_link_get_properties: hard to maintain and makes very little sense + Shout out if you used it. + + GRAS: + * Display the list of still queued messages in SG mode when existing + the process. + + XBT: + * Add xbt_set_get_by_name_or_null() [Silas De Munck] + * Add xbt_graph_node_get_outedges() [Silas De Munck] + * Add xbt_str_from_file(FILE*) + * Add xbt_dict_get_key achieving a linear reverse search + * Remove the context module + + Portability report of this version: + * Main portability targets: + - Linux(debian)/x86/context + - Linux(debian)/x86/pthreads + - Linux(debian)/amd64/context + - Linux(debian)/amd64/pthreads + On these, we still have the eratic breakages of gras/pmm and + amok/saturate_sg reported in previous version. We still think + that the tests are the cause of the fault, not the tested code. + + - Mac OSX Leopard/x86/context + Still false negative in tesh autotesting. + Smpi still fails, but this time because readlink does not accept -f + Everything seems to work properly beside of that. + + * Exotic platforms: + - AIX version 5.3 (only tested contexts this time) + Smpi still fails there because mktemp is not installed. + Everything seems to work properly beside of that. + - OpenSolaris 11 + I managed to compile it for the first time, but several breakages. + Won't delay the release for this exotic platform. + + * Windows: it's still lagging behind. If you want to help, please + stand up. + + Timing report of this version: + This version seem to be more than 5% faster than 3.3.1 (on linux + 64bits with contextes). The gain is less than expected, we are + investigating this for next release. + + -- Da SimGrid team Wed, 19 Aug 2009 17:07:12 +0200 + +SimGrid (3.3.1) stable; urgency=low + + OVERALL CHANGES: + * Implement a --cfg-help to show existing configuration variables + * Build chain do not require doxygen in maintainer mode + + GRAS: + * fix a bug on struct sizeof computation, which prevented the + exchange of arrays of structs in some conditions + - added a regression test about this in datadesc_usage + * Allow the exchange of 0-long dynamic vectors. + - for that, use -1 as indicator of dynamic size instead of 0 + - This implied to change any size from unsigned long to long, + reducing a bit communication abilities, but I guess that with + 64bits being quite common, this is more than enough. + - This also induce a protocol change, thus bumping network protocol + version from 0 to 1 (if we have external users, we have to get + clean on that point too ;) + - added two regression tests about this in datadesc_usage + * Be more verbose when propagating local exceptions + This helps debugging. + * Display the status of simulated processes when receiving SIGINT in + simulation mode + + MSG: + * Allow to control the simulation from a trace file. + New functions MSG_action_register() and MSG_action_trace_run() + The first one allows to associate a function execution to each + kind of action while the second one parses a trace file and + triggers the corresponding actions within the system. + For now, only a toy example is provided in examples/msg/actions + * Add an exemple of process migration in examples/msg/migration + * Fix a bug in task exchange which broke MSG_task_get_sender() + Add a teshsuite regression test for that. + [Bug: if MSG_task_get_sender() is called after sender exit, + bad things happen] + * Fix a bug which prevented suspend/resume to work properly + * Display the status of simulated processes when receiving SIGINT + This fixes a regression of v3.3. due to the introduction of SIMIX + * Bug fixing in failure management: + - trace could not start by a failure at time 0 + - failure during communications were not working + + SIMIX: + * Add SIMIX_process_set_name() to change the name of the current + process in the log messages. + * Store smx_hosts in a dict since we only retrieve them by name + * Move the configuration infrastructure to surf + + SIMDAG: + * Move the configuration infrastructure to surf + + SMPI: + * Massive internal cleanups: + - Store internal structures on processes instead of hosts (allows + to have more than one process per host, in addition of being more + logical) + - Cleanup the initialization/finalization process + - Kill a whole bunch of unneeded synchronization: + processes run in exclusive manner within the simulator + - Move queues from global tables to process data fields + * Improve smpirun: + - now accept -platform and -hostfile arguments + - Pass the right rank value to processes according to the hostfile + * Compile the examples by default, and use them as regression tests + * Implement MPI_Wtime() + * Change the reference speed to a command line option + + SURF: + * TCP_gamma can now be specified as command line option using + --cfg=TCP_gamma:10000000.0 + * Change the --surf-path cmd line option into --cfg=path: + + XBT: + * Also include strbuff from xbt.h public header + * xbt_ex_display(): do not free the exception after displaying + This allows to do more with the given exception afterward. + Users should call xbt_ex_free() themselves. + + + + Portability report of this version: + * Main portability targets: + - Linux(debian)/x86/context + - Linux(debian)/x86/pthreads + - Linux(debian)/amd64/context + - Linux(debian)/amd64/pthreads + These targets fail about 1/10 of times on gras/pmm, but we believe + that this is because of the test, not because of simgrid. + amok/saturate_sg fails even more rarely, and the test may not be + the problem. + + - Mac OSX Leopard/x86/context + The test suite still spits tons of errors because some obscure + force prevents us from removing the temporary directories + arguing that they still contain some metadata I've never heard of. + Smpi fails because seq is not installed. + Everything seems to work properly beside of that. + + * Exotic platforms: + - AIX version 5.3 (both contexts and pthread) + Smpi still fails there because mktemp is not installed. + XML inclusions seems rosty on AIX. + + * Windows: it's still lagging behind. If you want to help, please + stand up. + + -- Da SimGrid team Sat, 27 Jun 2009 00:14:30 +0200 + +SimGrid (3.3) stable; urgency=high + + 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. + + * Cleanup and upgrade the XML format to push further scalability + issues (check http://hal.inria.fr/inria-00256883/ for more info) + + * 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]. + + * Inform valgrind about our contextes, so that it becomes usable + with the default (and more effecient) version of SimGrid + [contributed by Sékou Diakite, many thanks] + + GRAS: + * Introduce a listener thread in charge of receiving incomming + messages from the network. It allows to overlap communication and + computation but most notably, it removes some stupid deadlocks due + to the fact that so far, a process could not send and receive at + the same time. This made most non trivial communication schema + impossible. + * 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/hash [Mt] + SHA1 hashing algorithm (more to come if needed) + * 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] + * Make dictionary internal table dynamic. No need to specify its size + anymore; functions xbt_dict_new_ext() and xbt_dict_hashsize_set() + thus dropped. [Mt]. + * Make sure the log channels are organized as a tree under windows + (because of ANSI C compatibility issue, any channel were child of + root directly) [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. + + -- Da SimGrid team Sun Apr 12 05:20:36 CEST 2009 + +SimGrid (3.2) stable; urgency=high + + 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: + * 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 Fri Mar 16 21:11:46 CET 2007 + +SimGrid (3.1) stable; urgency=high + + 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 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 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) { + 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. + * 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 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 Fri, 14 Jul 2006 01:32:27 +0200 + +SimGrid (3.0.1) stable; urgency=low XBT: * Unfortunately, I had missed 5 misnamed functions: @@ -93,10 +864,9 @@ SimGrid (3.0.1) unstable; urgency=low 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 +SimGrid (3.00) stable; urgency=high SURF: * New! Give the possibility to hijack the surf parser and thus bypass @@ -869,3 +1639,7 @@ SimGrid (2.90) unstable; urgency=low - Get rid of libgrasutils.a since it makes more trouble than it solves. Build examples against the RL library, since there is no way to disable its creation for now. + +For information, the beginning of coding on GRAS was back in june +2003. I guess that every line has been rewritten at least twice since +then.