X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e2189eb21a0ab923b4192babe88ca08f589f1245..84a97ed228d9c1b703dfd0f5898c4d1ef8f4bc17:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 8a1b9f8b7a..a393f8453e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,26 +1,120 @@ -SimGrid (3.5) unstable; urgency=low +SimGrid (3.6) unstable; urgency=low + + 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 receive 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 + * Completely rewrote this module to allow parallel execution. + + XBT + * 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 + + -- Da SimGrid team + +SimGrid (3.5) stable; urgency=medium + + Model Checking + * New feature to any SimGrid-based simulator: Model-Checking + Check SIN#1 for more details. + + 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) + * 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 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/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 + - 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 + - See examples/smpi/NAS/DT-trace + * 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 MSG + * Asynchronous communications through the functions: + MSG_task_isend/irecv and MSG_comm_test/wait/waitall * 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 + * New functions: MSG_task_set_name(), MSG_task_set_compute_duration() - 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 + Platforms: Add some more examples in examples/platforms + * Grid'5000: see www.grid5000.fr + * *_30000_hosts.xml: various huge files [mainly scalability testing] SURF * Change the XML format. This is a very important modification. SimGrid 3.5 introduces a new hierarchical format based on the notion of Autonomous Systems. Compatibility with old format is ensured - through the perl script provided in the contrib section of the - svn. [PIERRE GIVE THE PATH] + through the perl script provided in the install bin directory + bin/simgrid_update_xml. It is now possible to build platforms with specific routing mechanism (Full/Dijkstra/DijkstraCache/Floyd) and to easily connect several platforms together. We will try to provide soon set of realistic platforms exploiting these properties (have a look at examples/platforms/ for the moment). + * Take the opportunity of the XML format change to be a good XML citizen: + rename link:ctn to link_ctn and similar changes (also dealed with by + simgrid_update_xml) * Add a new routing scheme (rule-based) using regular expressions. It enables to have an extremely low memory footprint when the underlying routing is simple and can be compactly described. You @@ -31,11 +125,12 @@ SimGrid (3.5) unstable; urgency=low at teshsuite/simdag/platforms/ to see how this can be done. With this tag, you can create clusters with thousands of tasks at no cost (have a look at examples/platforms/). - * 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. + Note: clusters are implemented as ASes, so there is no need for an + enclosing AS tag if you have only one cluster in your platform. + * Add new generic functions in the public interface that allows the user + to call SURF 'create_resource' methods from your code (same + functionality as the XML bypass mechanism but with a much lighter + burden). * Add a new model (enabled through command line --cfg=network/model:SMPI) that uses a piecewise linear approximation to produce better results when exchanging small messages. @@ -43,93 +138,94 @@ SimGrid (3.5) unstable; urgency=low for interferences between uplink and downlink communications (activate with --cfg=fullduplex:1). - SIMIX - * New function: SIMIX_process_set_function() called by MSG_set_function - * 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}. - SIMDAG - * Fix a bug in the management of tasks of size 0 in the surf network - models. This problem was only visible with SIMDAG and you should - thus disregard results produced with earlier versions if you - relied on this feature (some tasks were blocked because of this). + * 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. * 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 + * 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. + * Fix a bug in the management of tasks of size 0 in the surf network + models. This problem was only visible with SIMDAG and you should + thus disregard results produced with earlier versions if you + relied on this feature (some tasks were blocked because of this). + * Fix a bunch of stuff that prevented to use classical models with SIMDAG + even though your applications were doing only point-to-point + communications and sequential computations. Now you can really use any + model you want (of course, if you create real parallel tasks, which are + not implemented in most models beside ptaskL07, this will abort). + * Add an example that schedules a DAX on an heterogeneous platform + using a Min-Min strategy. + * 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 tasks remains at the end of the + simulation. This is usually caused by cycles in the DAG. + + SIMIX + * New function: SIMIX_process_set_function() called by MSG_set_function + * 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}. + * kill the dirty pimple SIMIX_message_sizes_output() + Please use (proper) visualization instead XBT * New data container: setset (set of sets of elements) - * New module: mmalloc (mapped malloc) + * New module: mmalloc (mapped malloc, allowing to have several + independent segments of malloc) * New function: xbt_dict_cursor_set_data() - * New function: xbt_dynar_sort() + * New functions: xbt_dynar_sort(), xbt_dynar_compare() * New function: xbt_dynar_is_empty() * New function: xbt_fifo_get_last_item() - * Bug fix in xbt_dynar_shrink(): use the right element size + * Fix xbt_dynar_shrink(): use the right element size. + * Fix xbt_dynar_set*(): allow index larger than current size and memset 0 + uninitialized areas during expand. + * Fix semaphores: previous implementation was severely broken. * 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 + * Port GRAS to new SIMIX mechanisms. This allows gras users to + benefit from the latest improvement to the simulation kernel. + * Kill measurement sockets for now. If you rely on them, sorry. This + release is not for you. This feature will be reintroduced in the + future, but we cannot delay the release any further. + * New function: gras_msgtype_get_name(). + * Implement gras_agent_spawn in RL too (the prototype changed a bit) + * Fix (at last) the pmm example: it should not randomly fail anymore. + + Build chain: bug fixes and overall polishing + * Cmake is now stable enough. Hence, we killed the autotools. + * Port to windows ( TM :) * 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) + 'make package' compiles a binary archive * Compile java files only on need + * Add --cd and --setenv command line options to tesh + * Out of source builds are not fully supported yet, but we are close + * Enable supernovae and optimization flags by default for our users - 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 + LUA Bindings + * Add layer to set up environment directly from lua, without XML. + * 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