X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bb1158bb1e02c633571b8731326e1af36a86306a..7231545543fa5be730a575fb278656247717e865:/ChangeLog diff --git a/ChangeLog b/ChangeLog index a532634a4e..a27d4e9731 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,283 @@ -SimGrid (3.3.4) unstable; urgency=low +SimGrid (3.5) unstable; urgency=low + + Msg + * New function: MSG_load_platform_script() + to make possible using a lua script instead of XML files to set up platforms + * New function: MSG_set_function + to associate functions to processes, used when bypassing the parser + Lua Bindings + * add layer to set up environment and bypass the XML surf parser + * modify the entry point, to take into consideration when lua is used only as a platform generator + SURF + * add new callbacks to the CPU & netwok models to create resources + no need to pass through the parser callbacks to do so. + * add new function to create routes table via the routing model + * add generic functions in the public interface + that allows the user to call SURF 'create_resource' methods from a lua script. + SIMIX : + * New function: SIMIX_process_set_function() + called by MSG_set_function + SimDag + * Change the way a task is considered as ready. Instead of removing + dependencies when a task is done, a counter is decreased. This way, + it is always possible to reach ancestors thanks to the + SD_taks_get_parents function (even after the end of the simulation.) + * Change the level of some logs in sd_global from INFO to VERB. The + corresponding tests are now less verbose + * Change the return type of SD_Simulate from (SD_task_t*) into + xbt_dynar_t. This function was in handling a dynar internally and + converted it into a NULL terminated array for historical reasons. + * Rename the SD_READY (all dependencies are satisfied and task is + scheduled) state in SD_RUNNABLE and define a new SD_SCHEDULABLE (all + dependencies are satisfied) state. + This prevents a confusion between the notion of "ready to schedule" + (SD_SCHEDULABLE) used in DAG scheduling and that of "ready to be + simulated" (SD_RUNNABLE) used by the simulation kernel. + * Add an example that scheduling a DAX on an heterogeneous platform + using a Min-Min strategy + * new function SD_dotload(char*) to load a DAG described in dot + format. This loader and the corresponding examples require the + installation of the graphviz library. + + SIMIX + * Change the underlying waiting queue in semaphores so that a process + can wait on several of them simultaneously (as in waitany). + * Fix the way to handle tokens in semaphores so that all access patterns + work: {acquire, acquire_timeout, waitany} / {release, release_forever}. + + XBT + * New data container: setset (set of sets of elements) + * New module: mmalloc (mapped malloc) + * New function: xbt_dict_cursor_set_data() + * New function: xbt_dynar_sort() + * New function: xbt_dynar_is_empty() + * New function: xbt_fifo_get_last_item() + * Bug fix in xbt_dynar_shrink(): use the right element size + * Use library init/fini functions for our initialization. + - you can use logs and other feature as soon as you want in your + code (even before the xbt_init / MSG_init) + - xbt_exit is now a no-op and produce a warning when used. + + GRAS: + * New function: gras_msgtype_get_name() + + Build chain: bug fixes and further polishing + * Fix the 'make install' target. + No need to use 'make install-simgrid' anymore + * Introduce a 'make dist' target compiling a *source* archive + 'make package' compiles a binary archive (not well tested) + * Compile java files only on need + + Tracing: + * Tracing system + - tracing API for MSG changes: TRACE_start has no + longer parameters, the trace file is supplied through + an option passed to simulator. Categories declaration + and utilization remain the same. The following options + are supported: + --cfg=tracing/filename:msg.trace + --cfg=tracing/platform:1 (categorized resource use) + --cfg=tracing/msg/task:1 (task creation) + --cfg=tracing/msg/process:1 (process creation, migration) + --cfg=tracing/msg/volume:1 (volume of msg send/recv) + --cfg=tracing/smpi:1 (smpi interface tracing) + - examples of examples/msg/tracing updated + + * Tracing the MPI interface implemented by SMPI + - Collective operations are traced with states + - Point-to-Point operations are traced with states/links + - Tracing activated by a parameter "-trace filename" passed + to smpirun during execution (considering that simgrid + is compiled with tracing enabled) + - To run the simulation with gdb, the simulator + accepts --cfg=tracing/smpi:1 to trace SMPI + - tesh files to check if smpi tracing is ok + + * GTNetS tracing re-worked + - adaptation to the tracing system of GTNets to cope + with modifications regarding the fullduplex mode + - new tesh files to check if gtnets tracing is ok + + -- Da SimGrid team + +SimGrid (3.4.1) stable; urgency=low + + The "Polishing easter eggs is probably a good idea" release. + This is a bug fixes release only. + - The "Desktop Grid needs love too" release. + Java Bindings + * Fix a bug preventing the tasks from begin garbage collected. + + MSG + * Fix a bug occuring when a host involved in a communication fails. + This was not detected properly by the other peer involved in the + communication. Now, it's reported as a network error. + + SimDag + * Warn the user about loop dependencies in data flow of DAX files + * Obey the control-flow dependencies of DAX files + + Cmake + * Add option "enable_smpi" allowing to not compile SMPI. + Probably useful for the (Mac) users experiencing a build error here + * Improve the detection of lua5.1 and ruby1.8 + + -- Da SimGrid team Tus, 04 May 2010 28 16:11:16 +0100 + +SimGrid (3.4) stable; urgency=low + + The "Easter in Cargese" release. Also known as (major changes): + + * the "se habla Java, Ruby 話せます, fala-se Lua (and deaf-friendly)" + ~> bindings were greatly improved + ~> new tracing infrastructure for better visualization introduced + + * the "Welcome to configury modernity" release. + ~> we switched from autotools to cmake, and improved our cdash + + + A more detailled list of changes follow (full detail in svn log). + + Java Bindings: Various Cleanups + * (install java-gcj-compat-dev on debian-like to use them) + * 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 + * Cleanup the exceptions that may get thrown by each function + * Other internal cleanups in Java bindings. Performance still bad :/ + Ruby and Lua Bindings: create them + * (install ruby1.8-dev/liblua5.1-0-dev on debian-like to use 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. + * Add a SD_task_set_name() function + * Fix SD_task_unschedule() on typed tasks + * Fix SD_task_get_execution_time() to return seconds, not flop*sec + * In DAX loader, accept useless 'level' attributes to since + LIGO DAGs have them (seem to be to ease graphical representation). + MSG: + * Add an example masterslave_mailbox.c using send/receive and not + the deprecated put/get interface. + * 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. + * Rename MSG_TIMEOUT_FAILURE into MSG_TIMEOUT for sake of logic + (declare MSG_USE_DEPRECATED to still have the old name) + * Add a MSG_task_set_data() function + * About trace replay (see examples/msg/actions): + - implement barrier + - Allow to work with splitted trace files for each 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 all processes. + - Fix implementation of collective operations + * Allow task_execute() on 0-sized tasks (closes #10063) + SMPI: + * This is the first release of SimGrid where SMPI is not considered + beta anymore (even if some corners should still be improved) + * Port over the new SIMIX_network submodule (internal refactoring) + * Basic support to log events as with SMPE (use --cfg=SMPE:1) + * Implement more missing elements of the standard: + - MPI_COMM_SELF + - MPI_MAXLOC MPI_MINLOC + all associated datatype MPI_DOUBLE_INT, + MPI_FLOAT_INT, etc. + - MPI_Address() MPI_Get_count() MPI_Type_free() MPI_Type_extent() + MPI_Scan() MPI_Get_processor_name() + - Added implementation of missing case for Alltoall (warning: it's + *not* the bruck variant from OpenMPI; based on Alltoallv instead) + - SMPI_MPI_Gather() SMPI_MPI_Gatherv() SMPI_MPI_Scatterv() + SMPI_MPI_Reduce_scatter() SMPI_MPI_Allgather() + SMPI_MPI_Allgatherv() + * Bug fixes include: + - MPI_Waitsome() was broken + - Allow relative includes in smpicc + - Command line cfg argument 'reference_speed' was ignored... + - Some functions did not properly lead to auto-benching of user code + - smpicc passes -O2 by default (just like openmpi one) + SIMIX: + * add SIMIX_action_suspend() and SIMIX_action_resume() functions + * Bug fixes about timeouts during communications + * add SIMIX_message_sizes_output() as a pimple to write to file the + amount of messages per size. Use gnuplot to get histogram. + Pimple because that's the only user-visible function of simix, + defined directly in xbt.h (irk, sorry) + * About semaphores: + - Add a SIMIX_sem_get_capacity() function + - Fix interactions with processe resume/suspende + - release_forever() was stupidly broken + - Fix SIMIX_display_process_status() for processes in a semaphore + - Make SIMIX_sem_block_onto() user-visible + * Refactoring context stuff: + - Use pseudo-OOP for better modularity + - reimplement SIMIX_process_kill() without process_schedule() so + that the latter can take as invariant that it is called from + maestro. + - Merge context_start into context_new for sake of simplicity + SURF: + * Add a Vivaldi network model, coded live during SUD'10 ;) + * 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 + * Add a long description to the models, that users can see with such + argument on the command line: --cfg=cpu/model:help + * --help-models display the long description of all known models + XBT: + * config: add the ability to set a default value after registration + Does not override any previously set value (e.g. from cmd line) + * dict: allow to have integer key and data. + When so, you need to use the following functions + void xbt_dicti_set(xbt_dict_t dict, uintptr_t key, uintptr_t data); + uintptr_t xbt_dicti_get(xbt_dict_t dict, uintptr_t key); + void xbt_dicti_remove(xbt_dict_t dict, uintptr_t key); + In contrary to regular dicts, the key is not malloced before copy. + Mixing scalar and regular elements in the same dict is not tested + (but may work). + * Allow to use xbt_dynar_shrink() to expend the dynar instead + Tracing for Visualization: + * SimGrid is now instrumented in order to generate a trace file for + visualization analysis: to use it, need to compile SimGrid with the + "tracing" option enabled, and instrument the program using SimGrid with + TRACE_start, TRACE_category, TRACE_msg_set_task_category and TRACE_end + (among other functions). + * The instrumentation only traces the platform utilization for now + * Documentation to use the tracing functions and how to analyze the + traces with the Triva tool is written. + * More information about: SimGrid FAQ (in the section Tracing Simulations + for Visualization) + Build system: + * We moved to cmake as default build system. Autotools support will + be dropped soon. Check the FAQ for more info about how to use it. + * Greatly improved our cdash/ctest interactions + Check http://cdash.inria.fr/CDash/index.php?project=Simgrid + * Added memory checking tests with valgrind; lot of memleak fixing. + This may be the first release of simgrid with so few memory issues + * Added code coverage tests. + Our coverage is still improvable, but at least we see it on cdash. + + -- Da SimGrid team Wed, 28 Apr 2010 28 17:11:16 +0100 + +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 @@ -43,15 +320,28 @@ SimGrid (3.3.4) unstable; urgency=low 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 thanks to the new SIMIX module. + The put/get mechanism was greatly simplified on the way. SIMIX: - * New SIMIX network module - It provides a rendez-vous point (aka mailbox) based send/recv API to perform - synchronous communication. + * 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 @@ -76,20 +366,59 @@ SimGrid (3.3.4) unstable; urgency=low * 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() - -- Da SimGrid team + 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