Simgrid

Latest version: v4.0

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

Scan your dependencies

Page 5 of 9

3.11

The Class Release.

Tools:
* Normalizing pointers addresses tool for better diff between logs

Examples:
* Add cloud examples using new VMs
- examples/msg/cloud/two_tasks_vm.tesh
- examples/msg/cloud/simple_vm.tesh
- examples/java/cloud/cloud.tesh
- examples/java/cloud/migration/migration.tesh
* Add java surf examples:
- examples/java/surfPlugin/surf_plugin.tesh
- examples/java/reservationSurfPlugin/reservation_surf_plugin.tes
- examples/java/surfCpuModel/surf_cpu_model.tesh
* Add SMPI+MSG example:
- examples/smpi/smpi_msg_masterslave/

TeshSuite:
* Add tests:
- msg process test
- msg task destroy cancel test
- msg_host on/off test
* Move all tests in testsuite to teshsuite (adding tesh files)
* Restructure teshsuites
- one folder for each kind of test
* Restructure AddTests.cmake
- unify tests names
- structure the order of tests (with sections)

MSG:
* Add virtual machine
- creation of a VM on a PM
- migration of a VM from a PM to another PM
* New functions
- MSG_process_join(msg_process_t process, double timeout)
- msg_bar_t MSG_barrier_init(unsigned int count)
- int MSG_barrier_wait(msg_bar_t barrier)
- void MSG_barrier_destroy(msg_bar_t barrier)
- msg_as_t MSG_environment_as_get_by_name(const char * name)
* New option "msg/debug_multiple_use" to help debugging when a task is used
several times
* MSG IO
- Improvements and finalization of MSG_storage, MSG_file APIs and their
documentation
- Increase code coverage in test suites
- Bug fixes

SIMIX:
* Protect context stacks against stack overflow. The number of protected memory
pages allocated on the top of each stack (1 by default) can be configured
with the new command line option --cfg=contexts/guard_size:<value>.
* Simcalls are now generated by a python script that
- generates files included by SimGrid
- checks that all the functions exist, and proposes prototypes
* Clean simcalls
- remove sem_destroy, file_set_data, comm_destroy, vm_set_state,
host_set_data, host_get_data
* New simcalls
- simcall_process_join(smx_process_t process, double timeout)
* Fix bug where sleeping processing could not be suspended.

SURF:
* Translate surf models from C to C++
- Generic classes for all models: Model, Resource, Action
- A generic interface for each kind of model (CPU, Network, Storage
Workstation, WorkstationVM)
- C bindings
* Translate surf routings from C to C++
* Add callbacks using sigc++ or boost::signals2
- Add callback functions for resource creation/destruction
- Add callback functions for action state change
- Handle Energy as a plugin
* Replace swag by boost::intrusive
* Add new routing models for clusters. For documentation, see
http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html#pf_cluster
- tori, with topology="TORUS" and topo_parameters="ndim1,ndim2,...,ndimn"
parameters for cluster tag
- Fat trees, with topology="FAT_TREE" and
topo_parameters="h;m1,...,mh;w1,...,wh;p1,...,ph" parameters for cluster tag
- see examples/platforms/torus_cluster.xml and
examples/platforms/fat_tree_cluster.xml
* More documentation

SMPI:
* Hostfiles support host:nb_processes construct to deploy several processes on
one node.
* Collective communication algorithms should not crash if used with
improper number of nodes and report the error.
* SMPI now partially supports MPI_Topologies: MPI_Cart_create, MPI_Cart_shift,
MPI_Cart_rank, MPI_Cart_get, MPI_Cart_coords, MPI_Cartdim_get,
MPI_Dims_create, MPI_Cart_sub are supported.
* New interface to use SMPI programmatically (still depends on MSG for
some parts, see examples/smpi/smpi_msg_masterslave):
- SMPI_app_instance_register(const char *name, xbt_main_func_t code,
int num_processes)
- SMPI_init()
- SMPI_finalize();
* Global variables privatization in MPI executables is now performed at runtime
with the option smpi/privatize_global_variables (default:no).
Limitations: Linux/BSD only, with mmap enabled. Global variables inside
dynamic libraries loaded by the application are not privatized (static
linking with these libraries is advised in this case)

Tracing:
* Options defined in XML work correctly now.

Java:
* New cmake option, enable_lib_in_jar, to control whether native libraries are
copied into simgrid.jar or not (ON by default). Use this option if you want
to reduce the size of the installed simgrid.jar, *and* the native libraries
are kept installed elsewhere.
* Surf binding with SWIG (code generated in maintainer mode only):
- plugin to handle callbacks
- CPU model only for the moment

Build System:
* Supernovae build mode is definitively removed. It was used to improve
inlining and inter-module optimizations. It is nowadays superseded by
link-time optimizations commonly available in compilers.
* Update ns-3 find lib. Bindings for ns-3 should work again now.
* Add boost dependency for surf++
* Add new macro for tests
- ADD_TESH(name <tesh_args>)
- ADD_TESH_FACTORIES(name "thread;ucontext;raw" <tesh_args>)

XBT:
* New functions
- xbt_bar_t XBT_barrier_init(unsigned int count)
- int XBT_barrier_wait(xbt_bar_t barrier)
- void XBT_barrier_destroy(xbt_bar_t barrier)
* Make the xbt_os_time module public

-- Sat May 31 22:39:38 CEST 2014 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

3.10

The Clean Diaper Release, a.k.a. SimGrid is leak-free.

Java:
* Reintegrate Java to the main archive as desynchronizing these
package is not acceptable anymore (Java is now considered stable)
* Add explicit synchronization facilities through semaphores
* Bug fix: Task.setDataSize() only changed the C world, not the value
cached in the Java world

MSG:
* Dramatically change the way files are handled. API and internals changed, but
this part of MSG was not considered as production grade either.
* Add explicit synchronization facilities through semaphores
* Add a new function MSG_host_get_process_list()
* Preliminary DVFS support (see examples/msg/energy/ for details)

SMPI:
* SMPI is now included directly in the libsimgrid as the windows
linker doesn't force us on splitting it anymore.
* Improvements of the SMPI replay tool:
- Most of the collective communications are now rooted in the same process as
in the original application.
- Traces now rely on the same MPI data type as the application (MPI_BYTE was
used until now). Multiple data types can now be used in a trace.
- The replay tool now supports traces produce either by TAU or a modified
version of MPE.
- Bug Fix: the compute part of the reduce action is now taken into account.
- Gatherv collective is now supported
- SimGrid (SMPI for now) can generate replay traces as well. Option -trace-ti
of smpirun outputs time independent traces for the current run. One file
is created per process. If too many processes are simulated, this behavior
can be changed to one file for all processes by using the
tracing/smpi/format/ti_one_file flag
* smpirun generates the host file if needed (with given host count and platform)
* Integration of more than 100 STAR-MPI, MPICH, OpenMPI collective algorithms
- allows to select one in particular with --cfg=smpi/coll_name:algorithm
- allows to use the decision logic of OpenMPI(1.7) or MPICH(3.0.4) by setting
--cfg=smpi/coll_selector:(mpich/ompi)
* Support for new functions: MPI_Issend, MPI_Ssend, Commutative operations in
Reduce
* Add a --cfg:tracing/smpi/internals option, to trace internal communications
happening inside a collective SMPI call.
* Fix the behavior of complex data types handling.
* Make MPI_Wtime another synchronization point to take computations into
account.
* Replace MPICH-1 test suite by the one from MPICH 3.0.4. Can be built using
enable_smpi_MPICH3_testsuite flag in cmake. Run with ctest.
* Add all missing Fortran bindings, SMPI should work with Fortran 90
(no privatization of global variables yet)
* Preliminary DVFS support (see examples/smpi/energy/ for details)

Model-Checking;
* Verification of liveness properties is now available for SMPI applications
(in addition to MSG applications)
* Bugged examples using SMPI in examples/smpi/mc/
* Add --cfg=model-check/visited option. Allows the verification of infinite
programs. Detection of loops in the execution thanks to the system state
comparison and reduction of the state space to explore. Can be combined with
DPOR for safety properties.

SimDag:
* Allow to change SimGrid configuration (see --help) within the code
thanks to SD_config() as it can be done in MSG.
* Add a new function SD_task_set_amount() upon user request.

PLATFORM:
* Handle units for values (10ms, 10kiloflops, 10Bps, 1GB, ...)
* Remove rule based routing (no more PCRE dependency)
* Add a limiter_link option to cluster tag, to specify a maximum reachable
bandwidth in fullduplex mode when it is less than twice the nominal bandwidth.
* Add a loopback_bw and loopback_lat options to cluster tag.
* Fix the peer tag that could not be mixed with other AS within a Vivaldi
routing. Now peers are encapsulated in an AS and have their own private
router but this is transparent.

XBT:
* Our own implementation of getline is renamed xbt_getline, and gets
used even if the OS provide a getline(). This should reduce the
configuration complexity by using the same code on all platforms.
* New type: xbt_cfg_elm_boolean.
* Allow to use yes/no for boolean configuration options in the command line.
* Allow to disable SimGrid cleanups at exit from command line option.
There are situations where one may want a simulation to end with an exit.
Unfortunately, calling exit may cause SimGrid to segfault, which is quite
annoying when scripting around the simulator. Adding a
--cfg=clean_atexit:no allows to circumvent this issue.

Build System:
* Lots of memory leaks were corrected in this release.
There is no known memory leaks anymore, in all of our 600+ tests.
* New command line option --version, to get SimGrid version information.
Packagers may want to add extra words to SIMGRID_VERSION_EXTRA defined in
CMakeLists.txt.
* Supernovae builds are deprecated, and expected to be removed in the next
version of SimGrid.

-- Sun Nov 17 00:26:44 CET 2013 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

3.9

The Grasgory release: GRAS is really dead now.

* Complete overhaul of the internal host structures scheme.

GRAS:
* If you use GRAS, you should stay at SimGrid 3.5 (at most) since it
was considered as experimental and badly maintained since then.
* Keeping it was thus a trap to our potential users, that could take
it instead of MSG or SMPI by mistake despite is pity state.
* GRAS seems to have very few users (if any), and no one volunteered
to maintain it further. It also induces a lot of XBT code (for
portability sake), that must be maintained too.
* For all these reasons, we killed GRAS. If someone wants to revive it
in the future, don't cry, our git history still remembers of GRAS.

Documentation:
* Major overhaul. Merge our documentation again as time proved that
splitting it was really not helping our users.
* Further improve the developer documentation to help newcomers
hacking on SimGrid itself. The user documentation (and in
particular, the beginner documentation) is still in a sorry state.

SMPI:
* Now works on Windows too!
* Much more extensive test suite, from MPICH

SIMDAG:
* Add a new loader (SD_PTG_dotload) that creates a parallel task graph
(i.e., a DAG whose nodes are parallel tasks) from a dot file. Creates a
dynar of SD_TASK_COMP_PAR_AMDAHL and SD_TASK_COMM_MXN_1D_BLOCK tasks.
* Bug fix: let task be scheduled when the last dependency to be solved is
a control dependency.
* Remove SD_load_environment_script function.
Use the C sg_platf function if you want to declare a platform
programmatically.

MSG:
* New function: MSG_process_get_number()
* Old function documented: MSG_config()
* Remove MSG_load_platform_script function
Use the C sg_platf function if you want to declare a platform
programmatically.

SURF:
* Change the default value of the TCP_gamma constant (maximal size of TCP
congestion window) to a more realistic 4MiB value. If you notice changes in
your simulation results, you can fall back to the previous 20k tiny window
by adding --cfg=network/TCP_gamma:20000 on command line.
* (Hopefully) fix a bug wrt periodic availability and state traces
* Bug fix: use default values at start when first event in availability/state
trace is not at time 0.

PLATFORM:
* remove the "new_" part of function name sg_platf_new_trace_connect
(resulting in sg_platf_trace_connect), since it does not create
anything new

XBT:
* Kill synchronized dynars, and xbt_dynar_dopar(). We cannot think of a
use case where it's really mandatory, and maintaining it was a pain in
our code base.
* New: xbt_fifo_search(), search an item with a user-provided
comparison function instead of dumb pointer comparison.

LUA:
* Fix the lua deployment:
Use `simgrid.init_application()` before deployment instead of
`simgrid.msg_register_application()` after.

TRACING:
* Transfer the tracing files into the corresponding modules.

-- Tue Feb 5 11:31:43 CET 2013 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

3.8.1

The "we are told that some people want to also *install* the simgrid
framework" release.

* Add missing file "tesh.1" to the archive.

-- Sat Oct 27 16:12:11 CEST 2012 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

3.8

The Psssshiiiit release: SimGrid jumps into the Cloud.

MSG:
* Add an experimental interface to manipulate VMs. They are mainly
process groups with very few intrinsic semantic, but they should
allow you to build the semantic you want easily.
* New function: MSG_host_set_property_value()
* New function: MSG_process_on_exit(). To clean memory in all cases.
* Bug fixes that made the host (and link) failures unusable.
* Add a way to auto-restart process when the host in which they are
executing comes back (ON_FAILURE="RESTART" on deployment file,
MSG_process_auto_restart_set).
* Use the "msg_" prefix for all datatypes (instead of m_, msg_ and MSG_),
please stop using the old ones, they are DEPRECATED.

* Deprecate functions MSG_global_init() / MSG_global_init_args()
Please use MSG_init() instead. (reducing the amount of entry
points in the library helps us).
* Make it impossible to link against the wrong version of the lib
* Deprecate MSG_clean(). No need to call it anymore.
* Function MSG_get_host_number() is not deprecated anymore.

Documentation:
* Split the doc into a user guide and a reference guide.
* Start a developper guide to help people hacking on SimGrid.

Cmake:
* Enable tracing by default. This modules rocks you should use it.
* Remove option custom_flags. Now use environment variables CFLAGS
and LDFLAGS.
* Use default cmake things to detect lua instead of home grown ones.
* New option "enable_mallocators" to disable mallocators, for debugging
purpose ("on" by default).

SIMIX:
* Bug fixes around the resource failures: don't let the processes
survive the host they are running onto.
* Add an interface to auto-restart processes when the host in which they are
executing comes back.
* Ensures that SIMIX_clean is called automatically. It's not part of
the public interface anymore (bindings should be updated).

SimDag:
* Bug fix for when SD_Simulate is called with a positive value: be careful
when comparing doubles. Sometimes they are different for non significant
digits only.
* New types of typed tasks. SD_TASK_COMP_PAR_AMDAHL represents a
parallel task whose initial work is distributed among host according
to the Amdahl's law. Such tasks are created with a parameter alpha
that corresponds to the non-parallelizable part of the computation.
SD_TASK_COMM_PAR_MXN_1D_BLOCK represents a complex data redistribution
between two sets of workstations assuming a 1D block distribution (each
workstation owns a similar share of data) on both sides.

These tasks can be scheduled with SD_task_schedulel or SD_task_schedulev.
Data redistribution will be automatically scheduled once parent and child
are both scheduled. The filling of computation_amount and
communication_amount structures is now done seamlessly thanks to the chosen
assumptions.
* New function SD_workstation_dump to display various information
* New function SD_task_set_rate to throttle the bandwidth allowed to be used
by a SD_TASK_COMM_E2E typed task. This rate depends on both the nominal
bandwidth on the route onto which the task is scheduled and the amount of
data to transfer.
To divide the nominal bandwidth by 2, the rate then has to be:
rate = bandwidth/(2*amount)
* Compute tasks that have failed can now be rescheduled and executed again
(from their beginning)
* Increasing source code coverage (src/simdag is now covered at 95.8%
on average)

SMPI:
* Re-implement time-independent trace replay using SMPI (at the
smpi_smp_* level) instead of MSG. This should replace
examples/msg/actions/actions.c
* Implement support of MPI Datatypes (vectors, hvectors, indexed,
hindexed and structs)
* Implement the exchange of non-contiguous data.
[Khalid Hasanov & Jean-Noel Quintin] Thanks for the patch, guys.
* Correct behavior of smpi/sender_gap and set its default value to 0
* Add option to asynchronously send small messages to allow better
simulation of pt2pt communications. --cfg=smpi/async_small_threshold:value
specifies the size in bytes under which messages will be asynchronously sent.
* Add support of MPI_Iprobe, MPI_Probe, MPI_Testall, MPI_Wtick functions
* SMPI now handles more MPI specific values in input. Closes [14389] and [14388]

SimGrid:
* New C interface to define a platform: XML is now optional.
For more info, please check include/simgrid/platf.h.
* New interface to define random platforms from the C:
For more info, please check include/simgrid/platf_generator.h and
examples/msg/masterslave/masterslave_platfgen.c
* Export a sg_cmdline dynar containing all the arguments we got from
the command line.

TRACE:
* Two new tracing options for adding comments to trace file so you
can track your experiments (see --help-tracing for details).
* New option to generate an impoverished trace file (--cfg=tracing/basic:1)
* Adding the SimGrid version that generated the trace file as a comment.
* Instrumenting other MSG functions (MSG_task_isend_with_matching and MSG_task_dsend)
* Fix to avoid key clashes on Paje links
* Other minor fixes related to the Paje specification

XBT:
* Functions xbt_dict_hash() and xbt_dict_hash_ext() are made public,
and renamed to xbt_str_hash() and xbt_str_hash_ext().
* New function: xbt_os_timer_resume() to restart a timer w/o resetting it.
* Greatly improve the robustness of mmalloc to user errors (such as
using an area after freeing it, or freeing it twice)

-- Thu Oct 25 17:30:06 CEST 2012 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

SimGrid-java (3.8.1) stable; urgency=low

* New module: org.simgrid.trace.Trace (SimGrid trace bindings)
Warning: all methods are visible, but only some of them are
implemented so far. Check the source (src/jtrace.c)
for further information.
* New module: org.simgrid.msg.File (SimGrid File management functions)
* New Module: org.simgrid.msg.VM (SimGrid interface to mimick IAAS clouds)
* Change the meaning of Process.restart: now restart the process from
the beginning, like MSG_process_restart in C.
* Add Process.setAutoRestart: handling of process restart when failed
host comes back.
* Add Process.getProperty, Host.getProperty, Host.getProperty: allows
you to retrieve the properties of the processes/hosts
* Deprecate Msg.clean(): you can just forget about it now.
* New function Process.getCount(), that only works when compiling
with the not yet released version 3.9 of the C library.

* New context factory based on Coroutines. It mandates a modified JVM
but then, the simulations run about five times faster, and there is
no limit to the amount of processes (beside of the available memory).

-- 2012-12-04 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

3.7.1

MSG:
* Restore the prototype of MSG_process_create_with_environment() to
the pre-3.7 situation by removing the kill_time argument.
* Add a MSG_process_set_kill_time() function instead.

SURF:
* Fix weird behaviors when dealing with parallel tasks.

WINDOWS:
* Simgrid is now built as a dll.
* Simgrid-java now works on Windows.
* Simgrid-Java is now included into Windows package.

MacOS:
* First pre-build package for MacOSX.

Build System:
* Fix compilation when using MSG_USE_DEPRECATED.
* Fix some compilation issues on Macs and Windows.
* Reduce the number of failing tests on exotic systems, like Debian/Hurd.
* Environment variables CFLAGS and LDFLAGS are now honored by cmake.

We discovered that the Lua console is broken, but we are missing the
manpower to fix it right now. The problem existed in 3.7 too, so we
are not blocking the release for that. Sorry if you depended on this
feature, any help would be really welcome.

-- Thu Jun 7 2012 Da SimGrid team <simgrid-devellists.gforge.inria.fr>


SimGrid-java (3.7.1) stable; urgency=low

The "Java aint got to be bloated and slow" release

Major cleanups:
* Various internal cleanups and performance improvement
Simulations are expected to run up to twice faster or so
* Make Process.kill(process) an instance method, not a static one
* User processes are not java.lang.Thread subclasses.
This breaks the compatibility (sorry), but previous API was
brain-dead, making it impossible to have non-trivial
initializations in the process constructor.
* Require a full constructor per Process sub-class.
Kinda breaks the compatibility (sorry), but this allows a much more
efficient way to launch the processes at simulation startup.
* Do not embeed our version of semaphores, java 1.5 can be considered
as sufficiently prevalent for us to not dupplicate its features.
* Lot of bug fixes

Extend the API:
* Add examples for almost every part of the API
We spotted and fixed a lot of bugs in the process

* New module: asynchronous communication API
* New function: Process.sleep()
It takes milliseconds as argument, just as java.lang.Thread.sleep()
* New module: org.simgrid.msg.Mutex (SimGrid mutexes)
* New module: org.simgrid.msg.RngStream (RngStreams random generators)

-- 2012-06-12 Da SimGrid team <simgrid-devellists.gforge.inria.fr>

Page 5 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.