Simgrid

Latest version: v4.0

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 9

3.4

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 <job> 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 bandwidth
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 <simgrid-devellists.gforge.inria.fr> Wed, 28 Apr 2010 28 17:11:16 +0100

3.3.4

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 mechanism 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 debugging 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 <cluster> 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 <route:multi> tag is just broken. Actually that's brain-dead.
We need sth like <route:multi src="myCluster" dst="$*-${myCluster}">
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 <simgrid-devellists.gforge.inria.fr> Thu, 24 Dec 2009 19:07:39 +0100

3.3.3

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 <simgrid-devellists.gforge.inria.fr> Thu, 20 Aug 2009 21:21:33 +0200

3.3.2

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 contexts). The gain is less than expected, we are
investigating this for next release.

-- Da SimGrid team <simgrid-devellists.gforge.inria.fr> Wed, 19 Aug 2009 17:07:12 +0200

3.3.1

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 example 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 <simgrid-devellists.gforge.inria.fr> Sat, 27 Jun 2009 00:14:30 +0200

3.3

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 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. 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 contexts, 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 incoming
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 <simgrid-devellists.gforge.inria.fr> Sun Apr 12 05:20:36 CEST 2009

Page 7 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.