Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
14 months agoComment is not relevant anymore.
Arnaud Giersch [Thu, 23 Feb 2023 15:48:28 +0000 (16:48 +0100)]
Comment is not relevant anymore.

[ci-skip]

14 months agoUse type aid_t for an actor's PID.
Arnaud Giersch [Thu, 23 Feb 2023 14:58:28 +0000 (15:58 +0100)]
Use type aid_t for an actor's PID.

14 months agoMore Sonar issues.
Arnaud Giersch [Thu, 23 Feb 2023 14:53:26 +0000 (15:53 +0100)]
More Sonar issues.

14 months agoUse normal strings instead of f-strings (Sonar).
Arnaud Giersch [Thu, 23 Feb 2023 14:37:40 +0000 (15:37 +0100)]
Use normal strings instead of f-strings (Sonar).

14 months agoUse C++17's std::scoped_lock where appropriate.
Arnaud Giersch [Thu, 23 Feb 2023 13:00:47 +0000 (14:00 +0100)]
Use C++17's std::scoped_lock where appropriate.

Stick to C++14's std::lock_guard in public headers.

14 months agoDon't access variable ouside of the critical section.
Arnaud Giersch [Thu, 23 Feb 2023 12:53:15 +0000 (13:53 +0100)]
Don't access variable ouside of the critical section.

TSan warned about a data race there.
Also use a std::scoped_lock to handle the mutexi (Sonar).

14 months agoVarious cleanups.
Arnaud Giersch [Tue, 21 Feb 2023 10:59:44 +0000 (11:59 +0100)]
Various cleanups.

Includes:
* prefer simpler overload for channel send/receive
* use direct-initialization for variables
* rename variable and avoid it to be shadowed later
* remove unnecessary casts

14 months agoPartially revert 2ad536e710c5936ff8e525e4bbb5e7046f292aac (Simplify the library initi...
Martin Quinson [Wed, 22 Feb 2023 15:55:44 +0000 (16:55 +0100)]
Partially revert 2ad536e710c5936ff8e525e4bbb5e7046f292aac (Simplify the library initialization) to fix a memleak

14 months agoImplement the semaphore functions in sthread
Martin Quinson [Wed, 22 Feb 2023 15:54:18 +0000 (16:54 +0100)]
Implement the semaphore functions in sthread

14 months agoprotect the dict initialization against multithreading
Martin Quinson [Wed, 22 Feb 2023 11:37:36 +0000 (12:37 +0100)]
protect the dict initialization against multithreading

14 months agoCosmetics
Martin Quinson [Tue, 21 Feb 2023 21:08:45 +0000 (22:08 +0100)]
Cosmetics

- Rename xbt_main.cpp -> xbt_misc.cpp to reflect its content
- Stick to our naming schema (Engine::pimpl -> Engine::pimpl_)
- Don't say the loop iterator is const to then const_cast it
- Kill the leftover xbt::binary_name and xbt::cmdline local vars

14 months agologs: protect finalization against multiple calls
Martin Quinson [Tue, 21 Feb 2023 17:21:57 +0000 (18:21 +0100)]
logs: protect finalization against multiple calls

14 months agoLet the xbt_log module register its finalizer itself
Martin Quinson [Tue, 21 Feb 2023 15:00:06 +0000 (16:00 +0100)]
Let the xbt_log module register its finalizer itself

And kill an internal header file that is now empty

14 months agoKill simgrid::xbt::cmdline and simgrid::xbt::binary_name
Martin Quinson [Tue, 21 Feb 2023 14:53:00 +0000 (15:53 +0100)]
Kill simgrid::xbt::cmdline and simgrid::xbt::binary_name

14 months agoSimplify the library initialization + deprecate 2 XBT functions
Martin Quinson [Mon, 20 Feb 2023 14:46:02 +0000 (15:46 +0100)]
Simplify the library initialization + deprecate 2 XBT functions

Work toward making EngineImpl::initialize() the only entry point of
the library initialization. It's now impossible to initialize xbt
separately of EngineImpl.

It should help reducing the mess in that code, which results from the
many ways of initializing the library. simgrid-mc, unit-tests, smpi
and others each have their own way of initializing everything,
resulting in a spagetthi and fragile code. It's a bit of a waste to
initialize an EngineImpl even when you don't want to actually run a
simulation, but easier code is always better.

This commit also includes another one because I git amended locally by
error, sorry for the mess. The other commit was about the deprecation
of xbt_procname and xbt_getpid that were xbt functions relying on S4U.

14 months agoRemove a useless lib constructor (simpler is better)
Martin Quinson [Mon, 20 Feb 2023 09:00:22 +0000 (10:00 +0100)]
Remove a useless lib constructor (simpler is better)

14 months agoInitialize the dict module on need, w/o relying on lib constructors
Martin Quinson [Mon, 20 Feb 2023 08:51:18 +0000 (09:51 +0100)]
Initialize the dict module on need, w/o relying on lib constructors

14 months agoRevert "Upgrade embedded xxhash (-> v0.8.1)."
Arnaud Giersch [Mon, 20 Feb 2023 09:37:04 +0000 (10:37 +0100)]
Revert "Upgrade embedded xxhash (-> v0.8.1)."

It doesn't compile on arm64

This reverts commit 4127fe802ff334591a6ba5b315190523fc2a660e.

14 months agoMerge branch 'fix-probe' into 'master'
Arnaud Giersch [Mon, 20 Feb 2023 09:25:44 +0000 (09:25 +0000)]
Merge branch 'fix-probe' into 'master'

Send actor action probes one at a time

See merge request simgrid/simgrid!131

14 months agoSend actor action probes one at a time
Maxwell Pirtle [Mon, 20 Feb 2023 08:41:16 +0000 (09:41 +0100)]
Send actor action probes one at a time

To avoid the scenario whereby the AppSide
delivers a message larger than the maximum
datagram side allowed by the application,
we instead send a single message for each actor.
This prevents us from needing to complicate the
sending logic in Channel.cpp, which would have
been made more complicated should we have wanted
to send variable-sized messages between the
checker and the application side

14 months agoRemove more occurences of 'surf' with uppercases
Martin Quinson [Sun, 19 Feb 2023 21:34:31 +0000 (22:34 +0100)]
Remove more occurences of 'surf' with uppercases

14 months agoDocument that surf is gone
Martin Quinson [Sun, 19 Feb 2023 15:09:01 +0000 (16:09 +0100)]
Document that surf is gone

14 months agoUpgrade embedded xxhash (-> v0.8.1).
Arnaud Giersch [Sun, 19 Feb 2023 14:48:56 +0000 (15:48 +0100)]
Upgrade embedded xxhash (-> v0.8.1).

Taken from
https://github.com/RedSpah/xxhash_cpp/commit/d21e37c34c4ad4ad562e4ec01ec036e342c422e3

14 months agoUpgrade embedded catch2 (-> v2.13.10).
Arnaud Giersch [Sun, 19 Feb 2023 14:37:48 +0000 (15:37 +0100)]
Upgrade embedded catch2 (-> v2.13.10).

Taken from
https://github.com/catchorg/Catch2/releases/tag/v2.13.10

14 months agoFinally kill surf_interface.hpp watched_host was actually useless
Martin Quinson [Sun, 19 Feb 2023 14:45:51 +0000 (15:45 +0100)]
Finally kill surf_interface.hpp watched_host was actually useless

14 months agorename another file with had 'surf' in its name
Martin Quinson [Sun, 19 Feb 2023 11:53:23 +0000 (12:53 +0100)]
rename another file with had 'surf' in its name

14 months agoKill a file with 'surf' in its name, and further empty surf_interface.cpp
Martin Quinson [Sun, 19 Feb 2023 11:49:24 +0000 (12:49 +0100)]
Kill a file with 'surf' in its name, and further empty surf_interface.cpp

14 months agoRework a comment (to remove 'surf')
Martin Quinson [Sun, 19 Feb 2023 11:21:55 +0000 (12:21 +0100)]
Rework a comment (to remove 'surf')

14 months agoRework compile optimizations for MC.
Arnaud Giersch [Sun, 19 Feb 2023 08:37:22 +0000 (09:37 +0100)]
Rework compile optimizations for MC.

14 months agoMissing includes.
Arnaud Giersch [Sun, 19 Feb 2023 06:27:24 +0000 (07:27 +0100)]
Missing includes.

14 months agoMove -Wno-unused-local-typedefs to common flags.
Arnaud Giersch [Sun, 19 Feb 2023 06:20:34 +0000 (07:20 +0100)]
Move -Wno-unused-local-typedefs to common flags.

It's supported by Clang too, and needed with at least ns-3.31.

14 months agokill src/simix
Martin Quinson [Sat, 18 Feb 2023 21:48:39 +0000 (22:48 +0100)]
kill src/simix

14 months agoMove the non-deprecated bits of simix to kernel::actor::Simcall
Martin Quinson [Sat, 18 Feb 2023 21:44:30 +0000 (22:44 +0100)]
Move the non-deprecated bits of simix to kernel::actor::Simcall

14 months agoKill src/include
Martin Quinson [Sat, 18 Feb 2023 20:49:57 +0000 (21:49 +0100)]
Kill src/include

The -Isrc/include makes it difficult to recognize in the source which
\#include takes a public header and which one is a private header.

Plus, move the third-party headers to a specific directory.

14 months agoreduce the amount of header includes in headers, to speedup recompilation
Martin Quinson [Sat, 18 Feb 2023 20:21:56 +0000 (21:21 +0100)]
reduce the amount of header includes in headers, to speedup recompilation

14 months agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Sat, 18 Feb 2023 19:10:28 +0000 (20:10 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

14 months agoRemove an obsolete cmake warning
Martin Quinson [Sat, 18 Feb 2023 18:37:22 +0000 (19:37 +0100)]
Remove an obsolete cmake warning

14 months agoMove some content of surf_interface to a new math_utils.h
Martin Quinson [Sat, 18 Feb 2023 18:28:37 +0000 (19:28 +0100)]
Move some content of surf_interface to a new math_utils.h

14 months agoUpdate path.
Arnaud Giersch [Sat, 18 Feb 2023 18:04:03 +0000 (19:04 +0100)]
Update path.

Error also seen with clang 11 and ns3.31.

14 months agoMove the files related to the platform parsing to kernel/xml
Martin Quinson [Sat, 18 Feb 2023 17:45:08 +0000 (18:45 +0100)]
Move the files related to the platform parsing to kernel/xml

14 months agomove a symbol declaration out of surf_interface.hpp
Martin Quinson [Sat, 18 Feb 2023 17:32:11 +0000 (18:32 +0100)]
move a symbol declaration out of surf_interface.hpp

14 months agoCMake requires ns3 v3.28+, so don't work around a bug in v3.27
Martin Quinson [Sat, 18 Feb 2023 17:25:55 +0000 (18:25 +0100)]
CMake requires ns3 v3.28+, so don't work around a bug in v3.27

14 months agoMove the ns3 helper files to kernel/models/ns3
Martin Quinson [Sat, 18 Feb 2023 17:23:50 +0000 (18:23 +0100)]
Move the ns3 helper files to kernel/models/ns3

14 months agoMove the surf tesh tests with the other models' ones
Martin Quinson [Sat, 18 Feb 2023 16:59:53 +0000 (17:59 +0100)]
Move the surf tesh tests with the other models' ones

14 months agoRemove some more occurence of 'surf' in comments and such
Martin Quinson [Sat, 18 Feb 2023 16:31:27 +0000 (17:31 +0100)]
Remove some more occurence of 'surf' in comments and such

14 months agoMisc Sonar issues.
Arnaud Giersch [Sat, 18 Feb 2023 16:42:44 +0000 (17:42 +0100)]
Misc Sonar issues.

14 months agoVarious cleanups.
Arnaud Giersch [Sat, 18 Feb 2023 16:39:33 +0000 (17:39 +0100)]
Various cleanups.

14 months agoFurther rename the identifiers of flexml to simgrid_parse_*
Martin Quinson [Sat, 18 Feb 2023 16:21:27 +0000 (17:21 +0100)]
Further rename the identifiers of flexml to simgrid_parse_*

14 months agoChange the namespace of flexml-generated parser from surfxml to simgrid_parse
Martin Quinson [Sat, 18 Feb 2023 10:48:52 +0000 (11:48 +0100)]
Change the namespace of flexml-generated parser from surfxml to simgrid_parse

14 months agoTwo more references of the surf/precision option name
Martin Quinson [Sat, 18 Feb 2023 10:32:21 +0000 (11:32 +0100)]
Two more references of the surf/precision option name

14 months agoRemove surf from the content from the examples of simulated filesystems
Martin Quinson [Sat, 18 Feb 2023 10:07:33 +0000 (11:07 +0100)]
Remove surf from the content from the examples of simulated filesystems

14 months agoRename ActivityImpl::surf_action_ to ActivityImpl::model_action_
Martin Quinson [Sat, 18 Feb 2023 09:38:38 +0000 (10:38 +0100)]
Rename ActivityImpl::surf_action_ to ActivityImpl::model_action_

14 months agoMove HostImpl to kernel/resource with its friends
Martin Quinson [Fri, 17 Feb 2023 22:02:54 +0000 (23:02 +0100)]
Move HostImpl to kernel/resource with its friends

14 months agomove the models to the right directory (empty src/surf a bit)
Martin Quinson [Fri, 17 Feb 2023 21:31:02 +0000 (22:31 +0100)]
move the models to the right directory (empty src/surf a bit)

The remaining parts of src/surf need to be cleaned before being moved

Also, remove almost all #include "surf_interface.hpp"

14 months agoAllow precision/bmf as a synonym to bmf/precision
Martin Quinson [Thu, 16 Feb 2023 23:05:18 +0000 (00:05 +0100)]
Allow precision/bmf as a synonym to bmf/precision

14 months agoRename option maxmin/precision to precision/work-amount for clarity
Martin Quinson [Thu, 16 Feb 2023 23:01:45 +0000 (00:01 +0100)]
Rename option maxmin/precision to precision/work-amount for clarity

14 months agoRename option "surf/precision" to "precision/timing" for clarity.
Martin Quinson [Thu, 16 Feb 2023 22:44:37 +0000 (23:44 +0100)]
Rename option "surf/precision" to "precision/timing" for clarity.

14 months agoRename sg_surf_precision to sg_precision_timing for clarity
Martin Quinson [Thu, 16 Feb 2023 22:39:54 +0000 (23:39 +0100)]
Rename sg_surf_precision to sg_precision_timing for clarity

14 months agoUse surf_precision as a value for PMPI_Wtick
Martin Quinson [Thu, 16 Feb 2023 22:31:53 +0000 (23:31 +0100)]
Use surf_precision as a value for PMPI_Wtick

the unit of maxmin_precision is in flops or bytes (that's an amount of
work) while the unit of surf_precision is in seconds (that's a time).

14 months agodoc: add a little graph about the host energy plugin
Martin Quinson [Thu, 16 Feb 2023 16:48:10 +0000 (17:48 +0100)]
doc: add a little graph about the host energy plugin

14 months agoMerge branch 'fix-mc-tests' into 'master'
Martin Quinson [Thu, 16 Feb 2023 21:13:41 +0000 (21:13 +0000)]
Merge branch 'fix-mc-tests' into 'master'

Fix root node edge case for `State` instance

See merge request simgrid/simgrid!129

14 months agoInitialize uninitialized transition for root state
Maxwell Pirtle [Thu, 16 Feb 2023 14:51:37 +0000 (15:51 +0100)]
Initialize uninitialized transition for root state

The transition in the root state was uninitialized
and this appears to have caused the last of the remaining
issues with the test suite. Of course, reading from the
uninitialized pointer `transition_` is bound to cause
a bunch of problems...

14 months agoFix root-node edge cases for states
Maxwell Pirtle [Thu, 16 Feb 2023 12:11:07 +0000 (13:11 +0100)]
Fix root-node edge cases for states

14 months agofix MC+gcc builds
Martin Quinson [Thu, 16 Feb 2023 10:05:59 +0000 (11:05 +0100)]
fix MC+gcc builds

14 months agoCI: build the model-checker on framagit, to test the MRs
Martin Quinson [Thu, 16 Feb 2023 09:52:21 +0000 (10:52 +0100)]
CI: build the model-checker on framagit, to test the MRs

14 months agofix the build (but not all tests) of MC
Martin Quinson [Thu, 16 Feb 2023 08:45:47 +0000 (09:45 +0100)]
fix the build (but not all tests) of MC

14 months agoMerge branch 'actor-comms' into 'master'
Martin Quinson [Wed, 15 Feb 2023 23:59:31 +0000 (23:59 +0000)]
Merge branch 'actor-comms' into 'master'

Serialize pending transitions when responding to `ACTOR_STATUS` messages on the application side

See merge request simgrid/simgrid!127

14 months agoproperly deal with network/optim (end of the ModuleGroup cleanup)
Martin Quinson [Wed, 15 Feb 2023 23:49:30 +0000 (00:49 +0100)]
properly deal with network/optim (end of the ModuleGroup cleanup)

The network/optim was abusing the model description mechanism, because
it was introduced before the options could be restricted to a list of
values. That's a pretty old cruft :)

Moreover, the config mechanism (probably) allowed network/optim:TI but then
ignored it silently. Not nice for the users.

14 months agoKill a now useless file
Martin Quinson [Wed, 15 Feb 2023 23:31:13 +0000 (00:31 +0100)]
Kill a now useless file

14 months agoCosmetics around the creation of the VM model
Martin Quinson [Wed, 15 Feb 2023 23:26:24 +0000 (00:26 +0100)]
Cosmetics around the creation of the VM model

14 months agoFurther factorization: introduce ModuleGroup::init_from_flag_value()
Martin Quinson [Wed, 15 Feb 2023 23:21:52 +0000 (00:21 +0100)]
Further factorization: introduce ModuleGroup::init_from_flag_value()

14 months ago15 years later, I finally managed to kill host/model:compound
Martin Quinson [Wed, 15 Feb 2023 23:15:19 +0000 (00:15 +0100)]
15 years later, I finally managed to kill host/model:compound

14 months agoObjectif the disk model
Martin Quinson [Wed, 15 Feb 2023 22:41:33 +0000 (23:41 +0100)]
Objectif the disk model

14 months agoThere is no way these names are empty, bc we give a default value
Martin Quinson [Wed, 15 Feb 2023 22:31:53 +0000 (23:31 +0100)]
There is no way these names are empty, bc we give a default value

14 months agoObjectifies the host models
Martin Quinson [Wed, 15 Feb 2023 22:22:10 +0000 (23:22 +0100)]
Objectifies the host models

14 months agofactorize the flags of models and plugins
Martin Quinson [Wed, 15 Feb 2023 22:00:50 +0000 (23:00 +0100)]
factorize the flags of models and plugins

14 months agodocs: fix a sphinx formatting error
Martin Quinson [Wed, 15 Feb 2023 16:38:27 +0000 (17:38 +0100)]
docs: fix a sphinx formatting error

14 months agoObjectifies the CPU model
Martin Quinson [Wed, 15 Feb 2023 16:24:12 +0000 (17:24 +0100)]
Objectifies the CPU model

14 months agoAllow to add a disk to a host after a load_platform from xml
Martin Quinson [Wed, 15 Feb 2023 15:51:00 +0000 (16:51 +0100)]
Allow to add a disk to a host after a load_platform from xml

Fix https://github.com/simgrid/simgrid/issues/383

14 months agoAdd note about resetting `times_considered`
Maxwell Pirtle [Wed, 15 Feb 2023 09:55:14 +0000 (10:55 +0100)]
Add note about resetting `times_considered`

Resetting `times_considered` after multiple
serializations of a particular transition are performed
to give the checker all exections of an actor
that can perform multiple actions. There was concern
that this value would have to be "reset" to the
original value after the serialization, since the latter
modifies the simcall's observer's internal state.

However, no reset is actually needed as each
SIMCALL_EXECUTE message that the checker sends to the
application-side comes equipped with the latest
`times_considered`, and thus preparation will be
performed correctly before execution.

14 months agoReplace pending transition with latest execution
Maxwell Pirtle [Wed, 15 Feb 2023 09:50:16 +0000 (10:50 +0100)]
Replace pending transition with latest execution

The `State::execute_next(aid_t)` method was
adjusted to use the newest copy of the transition
that was executed by an actor in lieu of the
copy of the transition that was previously stored
by the actor, as more information may be gained
during the execution of a transition.

14 months agofix pip build
Martin Quinson [Wed, 15 Feb 2023 09:00:22 +0000 (10:00 +0100)]
fix pip build

14 months agoConvert the network models to the new plugin-like mechanism
Martin Quinson [Wed, 15 Feb 2023 08:30:06 +0000 (09:30 +0100)]
Convert the network models to the new plugin-like mechanism

14 months agoObjectify the model containers
Martin Quinson [Tue, 14 Feb 2023 20:12:10 +0000 (21:12 +0100)]
Objectify the model containers

This should allow further cleanups in the near future, where models
are handled as the plugins already are: no shotgun design anymore with
the registration, and everything about a given model contained in a
single file.

14 months agoMove the surf log categories elsewhere
Martin Quinson [Sun, 12 Feb 2023 22:22:10 +0000 (23:22 +0100)]
Move the surf log categories elsewhere

14 months agoRemove multiarch from the doc: it was never tested, and 32b is soon gone
Martin Quinson [Sat, 11 Feb 2023 23:25:30 +0000 (00:25 +0100)]
Remove multiarch from the doc: it was never tested, and 32b is soon gone

14 months agoDocument the fact that 32bits is gone
Martin Quinson [Sat, 11 Feb 2023 23:24:29 +0000 (00:24 +0100)]
Document the fact that 32bits is gone

14 months agoFix condition for XBT_DECLARE_ENUM_CLASS
Maxwell Pirtle [Tue, 14 Feb 2023 08:06:24 +0000 (09:06 +0100)]
Fix condition for XBT_DECLARE_ENUM_CLASS

The condition for the `is_valid_##EnumType`
was updated. Previously, is was missing the edge
case where `raw_value >= 0`

14 months agoReduce scope for variables.
Arnaud Giersch [Mon, 13 Feb 2023 15:09:47 +0000 (16:09 +0100)]
Reduce scope for variables.

14 months agoSimplify initialization of the root log category.
Arnaud Giersch [Mon, 13 Feb 2023 15:04:25 +0000 (16:04 +0100)]
Simplify initialization of the root log category.

14 months agoFor Sonar.
Arnaud Giersch [Mon, 13 Feb 2023 08:49:37 +0000 (09:49 +0100)]
For Sonar.

14 months agoDefine context related globals as static members of Context.
Arnaud Giersch [Sat, 11 Feb 2023 18:25:25 +0000 (19:25 +0100)]
Define context related globals as static members of Context.

14 months agoMake global variables "const".
Arnaud Giersch [Sat, 11 Feb 2023 10:45:54 +0000 (11:45 +0100)]
Make global variables "const".

Even if it has no importance, take the special values from smpi.h

14 months agoFinalize passing transitions during model checking
Maxwell Pirtle [Mon, 13 Feb 2023 09:48:20 +0000 (10:48 +0100)]
Finalize passing transitions during model checking

Transitions are now serialized and sent to the
checker side whenever a new State instance is
created (when the ACTOR_STATUS message is sent
by the checker). Transition serialization is the
first step before the work on the UDPOR branch(es)
can be integrated into Mc SimGrid.

14 months agomove the flatifier functions to the s4u::Engine, for public consumption
Martin Quinson [Sat, 11 Feb 2023 23:11:57 +0000 (00:11 +0100)]
move the flatifier functions to the s4u::Engine, for public consumption

14 months agoAdd a Link::get_concurrency_limit and use it in the flatifier
Martin Quinson [Sat, 11 Feb 2023 19:17:10 +0000 (20:17 +0100)]
Add a Link::get_concurrency_limit and use it in the flatifier

14 months agoFlatifier: make a function returning a std::string instead of using printf
Martin Quinson [Sat, 11 Feb 2023 18:34:46 +0000 (19:34 +0100)]
Flatifier: make a function returning a std::string instead of using printf

14 months agoflatifier: cosmetics + display the real name of the root zone
Martin Quinson [Fri, 10 Feb 2023 22:30:50 +0000 (23:30 +0100)]
flatifier: cosmetics + display the real name of the root zone

14 months agoFix attribution
Martin Quinson [Fri, 10 Feb 2023 18:39:45 +0000 (19:39 +0100)]
Fix attribution

14 months agoDocument recent changes
Martin Quinson [Sun, 29 Jan 2023 16:20:16 +0000 (17:20 +0100)]
Document recent changes