X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/77bcf534026fbf87503bb7d796c95e67030ef938..44bb35da9c0093feb66a11b040790fc7054427c4:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 080a858dd4..0e14051eb9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,140 @@ -SimGrid (3.5) unstable; urgency=low +SimGrid (3.6) unstable; urgency=low + + Java and Ruby: + * Bindings now constitute their own package, separated from the main one. + Rationale: reduce our maintainance nightmare by reducing the module coupling + They will soon be released on their own on gforge. + * In the meanwhile: + svn co svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/simgrid-java + svn co svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/simgrid-ruby + + GRAS: It is not considered as stable anymore, but experimental. Sorry. + * It's not quite deprecated for now because we have no replacement, + but it may soon become the case. + + SMPI + * New MPI functions supported: MPI_Comm_disconnect, MPI_Comm_get_name + * Fortran: New user-level cache variable to store the rank of the running + process. This improves performance by an order of magnitude. + * C: New coccinelle script to automatically locate and modifiy global and + local static variables. + * Improved SMPI network model with a sender-side gap to account for multiple + parallel sends. + + MSG + * New function MSG_comm_get_status(). MSG_comm_test() and MSG_comm_testany() + only say if a communication is finished, no matter whether it succeeded or + failed. You can call MSG_comm_get_status() to know the status of a finished + communication. + * New function MSG_task_dsend() to send a task and detach it. When a + communication is detached, you are never notified of its success or failure + and the memory is released automatically once it is finished. This function + is useful when you don't care about the end nor the success of a + communication. + * Change the prototypes of action replay. Sorry for inconvenience, + but this is really more efficient this way (and to adapt your code, + you just have to fix the initialization, that shouldn't be too long) + * Kill the braindead MSG_task_refcount_dec() function. I guess nobody + ever managed to do anything useful with it. + * New function MSG_comm_testany(). Similarly to MSG_comm_waitany(), it + takes a dynar of communications. It returns immediately and gives the + index of a finished communication (if any). + * New example: a basic implementation of the Chord P2P algorithm. + + SURF + * New model for multi-core CPUs. You can now use the core attribute to + precise the number of cores of a host. This is a basic model. Every + process running on the host receives at most the power provided in + the DTD (throughput<=power). Total throughput of process cannot exceed + power * num_cores. + * New peer tag. This peer tag creates a tiny AS comprising a host and a + router linked by an up-link and a down-link (possibly asymmetrical). + This kind of pattern allows to easily build last-mile model style platforms. + Aggregating such patterns in a rule-based AS is thus the technique of + choice for modeling large peer-to-peer/volunteer computing/cloud platforms. + * New model for Vivaldi routing. We transformed the Vivaldi network model + into a Vivaldi routing model (based on the rule-based model). This allows to + combine Vivaldi based latencies with last-mile platforms. + + SIMIX + * Introduce a new context factory "raw", highly inspirated from the + ucontext factory, but using manually crafted functions in assembly to + do the work in an efficient manner. + * Allow to change the used context factory at run time, not only at + compilation time. Use --cfg=contexts/factory:raw for maximal speed. + * Add an option --cfg=contexts/stacksize:N to set the stack size of the user + contextes at runtime (only with raw contexts or ucontexts). + * Completely rewrote this module to allow parallel execution of user + processes. Use --cfg=contexts/nthreads:N to execute user processes + with N parallel threads (the default is 1, meaning no parallelism). + * Allow to decide dynamically between sequential and parallel modes. + When nthreads > 1, you can use --cfg=contexts/threshold:P to run the user + processes in parallel only when their number is greater than or equal to P + (the default is 2). + * Added a check for NaN of IEEE754 infinite in the double entries of + the smx_user.c file + + XBT + * New command line option: if you pass --cfg=verbose-exit:0, SimGrid + won't output the state of processes when interrupted with Ctrl-C + * Add a new function xbt_dynar_to_array that transforms a dynar into a + NULL-terminated array. This may solve backward compatibility issues + due to the change to return type of SD_simulate. See also: + http://lists.gforge.inria.fr/pipermail/simgrid-user/2010-December/002206.html + * Add new macros with variable number of arguments. + - in xbt/log.h: XBT_DEBUG, XBT_VERB, XBT_INFO, etc. + - in xbt/asserts.h: xbt_assert + - in xbt/cunit.h: xbt_test_{add,fail,assert,log} + - in xbt/ex.h: THROWF and RETHROWF. + Define XBT_USE_DEPRECATED if you want to use the old numbered macros like + INFO1, INFO2, etc. + * Change xbt_die() to accept a format string with arguments, just like printf. + * New data structure: xbt_lib_t, like a dict but more general and with better + memory handling. + + INSTR + * New configuration options + Options triva/categorized and triva/uncategorized can be used to generate + graph configuration files for Triva visualization tool. + * Configuration option tracing/platform is renamed to tracing/categorized + * XBT logging makes tracing error checks easier, new root log hierarchy: instr + * New TRACE_user_link_variable interface: + User provides the name of the link and the tracing variable to attach to it + * the declaration of tracing categories must be done after the environment + creation + * simpler tracing interface, just one way to declare categories + TRACE_category or TRACE_category_with_color, it is up to you + * links in the trace file are again identified by their names + * trace contains the full platform hierarchy exactly as declared using the ASes + * Options tracing/msg/[task|process]:1 groups the process by hosts + for both cases, tasks and processes must have names that are unique during the simulation + these options generate traces that are suited to gantt-charts, such as the space-time view of Paje + * The experimental option tracing/msg/volume is deprecated + its functionality may be reincorporated if needed + * Buffering + The tracing generates a trace file with unordered timestamped events, + because of the way the core simulator (surf) works. A script available + at the tools directory (fix-paje-trace.sh) can be used to put the events + in order. We have changed the tracing so it can generate ordered timestamped + events in the final trace, but depending on the simulator (and how much time + is simulated) that can lead to a huge memory utilization. It is desactivated + by default, but it can be activated using the --cfg=tracing/buffer:1 switch. + + Build Infrastructure + * Define a SIMGRID_VERSION macro in simgrid_config.h. + - We are trying hard to keep the API stable, but it may happen that + some things change (we're a research project after all, not a + nuclear plant operating system). If such things should happen, you + could rely on that macro to adapt. + - current value: 30600 for 3.06.00, aka 3.6 + * Define macro MAKE_SIMGRID_VERSION(major, minor, patch) to help building + a number that can be compared with SIMGRID_VERSION. + * Add a build option -Denable_debug (set to ON by default): when set to OFF, + assertions and verbose/debug logging events are disabled at compile time. + + -- Da SimGrid team + +SimGrid (3.5) stable; urgency=medium Model Checking * New feature to any SimGrid-based simulator: Model-Checking @@ -7,26 +143,44 @@ SimGrid (3.5) unstable; urgency=low SMPI * New Model SMPI (three-interval linear regression for correction factors) See RR-7426, available at http://hal.inria.fr/inria-00527150 - * Ability to use fortran MPI code (through f2c, automatically privatized) + * Ability to use FORTRAN MPI code (through f2c, automatically privatized) * New MPI functions supported: MPI_Get_count(), MPI_Comm_split() * New: RAM folding (see RR-7426 and examples/smpi/NAS/DT-folding) * New: execution sampling (see RR-7426 and examples/smpi/NAS/EP-sampling) * See also src/smpi/README + Tracing: 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: + - Tracing API changes: TRACE_start and TRACE_end should not be called + by user-code. They are automatically called by simulators created + with SimDAG, MSG and SMPI if the toolkit is compiled with + tracing_enabled=ON. Categories declaration and utilization remain the + same for MSG and SimDag. + - A function was added to the tracing API to declare categories with + colors: + - TRACE_category_with_color (char *category, char *color) + where color must be in the following format + "%f %f %f", red, green, blue + and red, green, blue are float values in the interval [0, 1] + - User can specify NULL as color parameter, or continue calling + TRACE_category (cat) + On that case, the tracing system will define random colors + - The following command-line options are supported: --cfg=tracing/filename:msg.trace + --cfg=tracing:1 (activate tracing, needed to use others) --cfg=tracing/platform:1 (categorized resource use) + --cfg=tracing/uncategorized:1 (uncategorized 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) + --cfg=tracing/msg/volume:1 (volume of MSG send/recv) + --cfg=tracing/smpi:1 (SMPI interface tracing) + --cfg=tracing/simdag:1 (allow SimDAG tasks receive categories) - examples of examples/msg/tracing updated + * Tracing SimDag + - DAXLoader and DOTLoader functions can generate tasks with categories + - A new function to attribute a category to SD tasks: + TRACE_sd_set_task_category (SD_task_t task, char *category) * Tracing the MPI interface implemented by SMPI - Collective operations are traced with states - Point-to-Point operations are traced with states/links @@ -123,7 +277,7 @@ SimGrid (3.5) unstable; urgency=low * New function SD_workstation_get_current_task() that returns the kind of task currently running on a workstation in the sequential access mode. - * Raise some warnings when unexecuted remains at the end of the + * Raise some warnings when unexecuted tasks remains at the end of the simulation. This is usually caused by cycles in the DAG. SIMIX @@ -167,7 +321,7 @@ SimGrid (3.5) unstable; urgency=low * Port to windows ( TM :) * Fix the 'make install' target. No need to use 'make install-simgrid' anymore - * Introduce a 'make dist' target compiling a *souce* archive + * Introduce a 'make dist' target compiling a *source* archive 'make package' compiles a binary archive * Compile java files only on need * Add --cd and --setenv command line options to tesh @@ -176,10 +330,10 @@ SimGrid (3.5) unstable; urgency=low LUA Bindings * Add layer to set up environment directly from lua, without XML. - * The effect of gras_stub_generator can be achieved athrough + * The effect of gras_stub_generator can be achieved through lua too (check examples/gras/console/ping_generator.lua) - -- Da SimGrid team + -- Wed, 01 Dec 2010 22:09:23 +0100 Da SimGrid team SimGrid (3.4.1) stable; urgency=low