Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
2 years agoBMF: One pass in sonar issues
Bruno Donassolo [Tue, 8 Mar 2022 12:41:05 +0000 (13:41 +0100)]
BMF: One pass in sonar issues

2 years agoMissing include.
Arnaud Giersch [Tue, 8 Mar 2022 12:08:45 +0000 (13:08 +0100)]
Missing include.

2 years agoDefine Comm::send and Comm::recv (replace simcall_comm_send/recv).
Arnaud Giersch [Tue, 8 Mar 2022 09:30:13 +0000 (10:30 +0100)]
Define Comm::send and Comm::recv (replace simcall_comm_send/recv).

Mark last legacy simcalls as deprecated.

2 years agointroduce thread_execute
SUTER Frederic [Tue, 8 Mar 2022 01:31:29 +0000 (02:31 +0100)]
introduce thread_execute

2 years agomark 3 more simcalls as deprecated
SUTER Frederic [Fri, 4 Mar 2022 01:18:09 +0000 (02:18 +0100)]
mark 3 more simcalls as deprecated

2 years agoRevert "Being optimistic for better performance"
Bruno Donassolo [Mon, 7 Mar 2022 18:34:54 +0000 (19:34 +0100)]
Revert "Being optimistic for better performance"

This reverts commit aedc2aa6b82c69adc779ffc4bb8ece31ac423440.

2 years agoBeing optimistic for better performance
Bruno Donassolo [Mon, 7 Mar 2022 18:10:11 +0000 (19:10 +0100)]
Being optimistic for better performance

If the matrix isn't singular (which is true most of the cases) this
PartialPivLU is much faster than FullPivLU.

Let's be optimistic, what can go wrong? ;)

2 years ago[jenkins] Avoid build errors on centos.
Arnaud Giersch [Mon, 7 Mar 2022 16:31:00 +0000 (17:31 +0100)]
[jenkins] Avoid build errors on centos.

2 years agoDISTRIB_ID is apparently now all lowercase on NixOS.
Arnaud Giersch [Mon, 7 Mar 2022 14:42:20 +0000 (15:42 +0100)]
DISTRIB_ID is apparently now all lowercase on NixOS.

2 years agoFix install prefix for Eigen3 on appveyor.
Arnaud Giersch [Mon, 7 Mar 2022 14:09:53 +0000 (15:09 +0100)]
Fix install prefix for Eigen3 on appveyor.

2 years agoTry to fix detection of eigen3.
Arnaud Giersch [Mon, 7 Mar 2022 13:42:40 +0000 (14:42 +0100)]
Try to fix detection of eigen3.

2 years agoblind new attempt for appveyor
Augustin Degomme [Mon, 7 Mar 2022 13:17:30 +0000 (14:17 +0100)]
blind new attempt for appveyor

2 years agoFix build
Bruno Donassolo [Mon, 7 Mar 2022 12:50:21 +0000 (13:50 +0100)]
Fix build

Remove boost container dependency and fix 32 bits build

2 years agonew attempt for appveyor
Augustin Degomme [Mon, 7 Mar 2022 12:47:56 +0000 (13:47 +0100)]
new attempt for appveyor

2 years agoMerge branch 'bmf' into 'master'
Bruno Donassolo [Mon, 7 Mar 2022 11:40:26 +0000 (11:40 +0000)]
Merge branch 'bmf' into 'master'

New model for parallel tasks: host/model:ptask_BMF

See merge request simgrid/simgrid!80

2 years agoGuess for appveyor
Bruno Donassolo [Mon, 7 Mar 2022 11:35:24 +0000 (12:35 +0100)]
Guess for appveyor

2 years agoAdd eigen dependency to dockerfiles
Bruno Donassolo [Mon, 7 Mar 2022 10:46:58 +0000 (11:46 +0100)]
Add eigen dependency to dockerfiles

Improve ChangeLog

2 years agoSonar here too.
Arnaud Giersch [Mon, 7 Mar 2022 10:20:04 +0000 (11:20 +0100)]
Sonar here too.

* remove global variables
* delete unused copy constructor/assignment operator
* use const reference

2 years agoFix bug found at ptask experiments
Bruno Donassolo [Fri, 4 Mar 2022 16:51:02 +0000 (17:51 +0100)]
Fix bug found at ptask experiments

The consumption of bounded variables exceed constraint capacity leading
to wrong behavior of the algorithm.

Added some UTs for special case with bounds.

2 years agoptask_BMF: High-level documentation of BMF and the algorithm
Bruno Donassolo [Fri, 4 Mar 2022 10:14:37 +0000 (11:14 +0100)]
ptask_BMF: High-level documentation of BMF and the algorithm

Add eigen in installation instructions
Add doc for ptask_BMF
Changelog

2 years agoAdding test for subflows
Bruno Donassolo [Thu, 3 Mar 2022 18:26:16 +0000 (19:26 +0100)]
Adding test for subflows

2 years agoBMF sharing penalty/priority
Bruno Donassolo [Thu, 3 Mar 2022 14:41:04 +0000 (15:41 +0100)]
BMF sharing penalty/priority

2 years agoFix error find by IO test.
Bruno Donassolo [Wed, 2 Mar 2022 14:34:08 +0000 (15:34 +0100)]
Fix error find by IO test.

Wrong sharing of saturated (but not selected resources)
UT for it

2 years agoRemove single movement code
Bruno Donassolo [Tue, 1 Mar 2022 11:22:55 +0000 (12:22 +0100)]
Remove single movement code

It seems better to be more aggressive to converge faster.

2 years agoptask_BMF: support for dynamic bounds (user's callback)
Bruno Donassolo [Tue, 1 Mar 2022 10:57:03 +0000 (11:57 +0100)]
ptask_BMF: support for dynamic bounds (user's callback)

Allows the use of user callback to dynamically change the constraint
capacity.

Add a warning message for user since this approach is quite pessimist
when sharing results and may lead to inaccurate resource sharing

2 years agoBMF: Fatpipe support
Bruno Donassolo [Tue, 1 Mar 2022 10:49:54 +0000 (11:49 +0100)]
BMF: Fatpipe support

Adjust A' matrix and is_bmf functions accordingly.

2 years agoImplements selective-update for bmf model (off by default).
Bruno Donassolo [Mon, 28 Feb 2022 13:39:44 +0000 (14:39 +0100)]
Implements selective-update for bmf model (off by default).

Add a cfg parameter: "bmf/selective-update" to enable it

2 years agoptask_BMF: refactor code and loop scenarios
Bruno Donassolo [Wed, 23 Feb 2022 11:32:22 +0000 (12:32 +0100)]
ptask_BMF: refactor code and loop scenarios

New cfg flag: --cfg=bmf/max-iterations:X. Configure the number maximum
of iterations done by BMF solver (default 1000).

Usually the algorithm converges much faster but in some cases it may be
necessary to increase it. However, can impact negatively on execution
time

Refactor code: new BmfSolver class to encapsulate matrix manipulation from system

Add a class to generate all possible allocations if necessary

2 years agoFix: default rate (bound) for comms is -1 not 0
Bruno Donassolo [Wed, 23 Feb 2022 10:15:42 +0000 (11:15 +0100)]
Fix: default rate (bound) for comms is -1 not 0

2 years agoBugfix: ptask should use expand_add for exec tasks
Bruno Donassolo [Wed, 23 Feb 2022 10:15:18 +0000 (11:15 +0100)]
Bugfix: ptask should use expand_add for exec tasks

The variable in the system is the same for ptasks, so use expand_add to
reuse the element if it exists in the system. Similar as it's done for
communications

2 years agoSupport for bounded actions in BMF solver
Bruno Donassolo [Wed, 23 Feb 2022 09:59:35 +0000 (10:59 +0100)]
Support for bounded actions in BMF solver

2 years agoNew model for parallel tasks: host/model:ptask_BMF
Bruno Donassolo [Fri, 18 Feb 2022 09:44:21 +0000 (10:44 +0100)]
New model for parallel tasks: host/model:ptask_BMF

Implement a new solver for lmm::System based on BMF (Bottleneck max
fairness) objective.

BMF provides a more realistic sharing of heterogeneous resources as used
by parallel tasks.

Enable it using: --cfg=host/model:ptask_BMF instead of ptask_L07.

SimGrid compilation from source now requires a new library: Eigen3.

2 years agosonar
Martin Quinson [Mon, 7 Mar 2022 08:09:59 +0000 (09:09 +0100)]
sonar

- Ignore MBI scripts in the coverage
- unused local variable was indeed a bug

2 years agosonar fixes and little cleanups
Martin Quinson [Sun, 6 Mar 2022 23:41:52 +0000 (00:41 +0100)]
sonar fixes and little cleanups

2 years agoUse the sg4 namespace in all examples
Martin Quinson [Sun, 6 Mar 2022 20:24:11 +0000 (21:24 +0100)]
Use the sg4 namespace in all examples

2 years agoRevert "Fix a bug in MBI generators: &com[j] is not &(com[j])"
Martin Quinson [Sun, 6 Mar 2022 19:34:28 +0000 (20:34 +0100)]
Revert "Fix a bug in MBI generators: &com[j] is not &(com[j])"

This reverts commit c2d3a91e47e3fdc89e6818258993128fac8efd43.

2 years agoKeep optimization (only_if_different) when cmake is recent enough.
Arnaud Giersch [Sun, 6 Mar 2022 21:27:45 +0000 (22:27 +0100)]
Keep optimization (only_if_different) when cmake is recent enough.

[ci-skip]

2 years agoReplace file(copy_file), which is supported since cmake 3.21 only.
Arnaud Giersch [Sun, 6 Mar 2022 20:18:56 +0000 (21:18 +0100)]
Replace file(copy_file), which is supported since cmake 3.21 only.

[ci-skip]

2 years agoRemove (last?) reference to umpire test suite.
Arnaud Giersch [Sun, 6 Mar 2022 20:18:09 +0000 (21:18 +0100)]
Remove (last?) reference to umpire test suite.

[ci-skip]

2 years agoUse RAII to simplify the release of semaphores on exit.
Arnaud Giersch [Sun, 6 Mar 2022 14:12:05 +0000 (15:12 +0100)]
Use RAII to simplify the release of semaphores on exit.

2 years agoUpdate .mailmap with new contributor.
Arnaud Giersch [Sun, 6 Mar 2022 14:07:43 +0000 (15:07 +0100)]
Update .mailmap with new contributor.

2 years agoMark unused type aliases as deprecated.
Arnaud Giersch [Sat, 5 Mar 2022 10:46:04 +0000 (11:46 +0100)]
Mark unused type aliases as deprecated.

2 years agoMark old simcall_comm_isend/irecv/wait as deprecated.
Arnaud Giersch [Thu, 3 Mar 2022 21:25:57 +0000 (22:25 +0100)]
Mark old simcall_comm_isend/irecv/wait as deprecated.

2 years agoFix a bug in MBI generators: &com[j] is not &(com[j])
Martin Quinson [Sun, 6 Mar 2022 14:37:08 +0000 (15:37 +0100)]
Fix a bug in MBI generators: &com[j] is not &(com[j])

2 years agoAdd another MBI test generator, to ease its debugging
Martin Quinson [Sun, 6 Mar 2022 14:27:21 +0000 (15:27 +0100)]
Add another MBI test generator, to ease its debugging

2 years agoMerge branch 'add_wait_for_to_py_comm_binding' into 'master'
Martin Quinson [Sun, 6 Mar 2022 13:09:51 +0000 (13:09 +0000)]
Merge branch 'add_wait_for_to_py_comm_binding' into 'master'

Add Comm::wait_for to Python bindings

See merge request simgrid/simgrid!79

2 years agoImport (some bits of) the MBI test suite
Martin Quinson [Sun, 6 Mar 2022 13:41:03 +0000 (14:41 +0100)]
Import (some bits of) the MBI test suite

Not activated on the robots for now, as some tests fail.

2 years agoAdded Python bindings: Comm.wait_for() and Comm.wait_any_for()
Jean-Edouard BOULANGER [Sun, 6 Mar 2022 09:19:23 +0000 (10:19 +0100)]
Added Python bindings: Comm.wait_for() and Comm.wait_any_for()

2 years agokeep cool, sonar, everything's under control
Martin Quinson [Sat, 5 Mar 2022 22:09:12 +0000 (23:09 +0100)]
keep cool, sonar, everything's under control

2 years agoRemove the ISP test suite (not free, superseeded by MBI)
Martin Quinson [Sat, 5 Mar 2022 14:05:39 +0000 (15:05 +0100)]
Remove the ISP test suite (not free, superseeded by MBI)

2 years agoPlug a memleak in barriers
Martin Quinson [Sat, 5 Mar 2022 09:58:19 +0000 (10:58 +0100)]
Plug a memleak in barriers

2 years agoFix the usage of cmake in FindSimGrid 'documentation'
Martin Quinson [Fri, 4 Mar 2022 23:15:34 +0000 (00:15 +0100)]
Fix the usage of cmake in FindSimGrid 'documentation'

2 years agoReimplement s4u::Barrier natively, and make them visible from MC
Martin Quinson [Fri, 4 Mar 2022 21:03:19 +0000 (22:03 +0100)]
Reimplement s4u::Barrier natively, and make them visible from MC

It comes with a DPOR dependency computation and a s4u hijacked test.

The ordering of some simcalls changed in SMPI, as there now much less
of them when using barriers. This impacts in particular the order in
which PID are given in the gh-139 test. Adding a link here for reference:
https://github.com/simgrid/simgrid/issues/139

MSG_barrier_destroy() cannot take a const barrier anymore, but how was
it possible in the first place?

2 years agoUse -- to separate command [ci-skip]
Arnaud Giersch [Fri, 4 Mar 2022 10:01:01 +0000 (11:01 +0100)]
Use -- to separate command [ci-skip]

2 years agoFix pip builds
Martin Quinson [Thu, 3 Mar 2022 23:07:51 +0000 (00:07 +0100)]
Fix pip builds

2 years agoActivate valgrind analysis on monkey tests
Martin Quinson [Thu, 3 Mar 2022 22:59:06 +0000 (23:59 +0100)]
Activate valgrind analysis on monkey tests

2 years agosemaphore monkey
Martin Quinson [Thu, 3 Mar 2022 22:45:34 +0000 (23:45 +0100)]
semaphore monkey

C++ only for now, as we don't have semaphores in the current Python interface.

2 years agoKill dead MC code
Martin Quinson [Thu, 3 Mar 2022 20:42:29 +0000 (21:42 +0100)]
Kill dead MC code

2 years agoMutex are now DPOR compatible
Martin Quinson [Thu, 3 Mar 2022 14:42:57 +0000 (15:42 +0100)]
Mutex are now DPOR compatible

2 years agoput back s4u barrier for MC only (untested)
Augustin Degomme [Thu, 3 Mar 2022 20:25:25 +0000 (21:25 +0100)]
put back s4u barrier for MC only (untested)

2 years agoUpdate URL for article.
Arnaud Giersch [Thu, 3 Mar 2022 16:35:43 +0000 (17:35 +0100)]
Update URL for article.

Full reference is:

Eitan Zahavi
"D-Mod-K Routing Providing Non-Blocking Traffic for Shift Permutations on
 Real Life Fat Trees"
CCIT Report #776, September 2010

IRWIN AND JOAN JACOBS
CENTER FOR COMMUNICATION AND INFORMATION TECHNOLOGIES
DEPARTMENT OF ELECTRICAL ENGINEERING
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY, HAIFA 32000, ISRAEL

2 years agoSMPI. RMA: get rid of the s4u barrier, use an MPI one instead.
Augustin Degomme [Thu, 3 Mar 2022 16:27:31 +0000 (17:27 +0100)]
SMPI. RMA: get rid of the s4u barrier, use an MPI one instead.

2 years agocmake simplification so that you only have to edit one list when adding an hijack...
Martin Quinson [Thu, 3 Mar 2022 14:18:04 +0000 (15:18 +0100)]
cmake simplification so that you only have to edit one list when adding an hijack of MC onto an existing test

2 years agoDocument recent changes
Martin Quinson [Thu, 3 Mar 2022 13:46:52 +0000 (14:46 +0100)]
Document recent changes

2 years agoPolish previous fix.
Arnaud Giersch [Thu, 3 Mar 2022 14:14:04 +0000 (15:14 +0100)]
Polish previous fix.

2 years agoMake smpi compilation script work when there are spaces in path names.
Arnaud Giersch [Thu, 3 Mar 2022 13:30:09 +0000 (14:30 +0100)]
Make smpi compilation script work when there are spaces in path names.

Fix simgrid/simgrid#87

2 years agoAdd a test for Semaphores + DPOR
Martin Quinson [Thu, 3 Mar 2022 13:40:26 +0000 (14:40 +0100)]
Add a test for Semaphores + DPOR

2 years agoSemaphore made observable from the Checker side
Martin Quinson [Thu, 3 Mar 2022 13:39:46 +0000 (14:39 +0100)]
Semaphore made observable from the Checker side

2 years agoDisplay a nice error message when ptrace is not usable
Martin Quinson [Thu, 3 Mar 2022 11:12:59 +0000 (12:12 +0100)]
Display a nice error message when ptrace is not usable

Fixes https://framagit.org/simgrid/simgrid/-/issues/57

2 years agoMissing files, bummer
Martin Quinson [Thu, 3 Mar 2022 07:26:25 +0000 (08:26 +0100)]
Missing files, bummer

2 years agofix weird bug on pstate changes with VM
SUTER Frederic [Thu, 3 Mar 2022 03:36:17 +0000 (04:36 +0100)]
fix weird bug on pstate changes with VM

at VM creation we did this:

/* We create cpu_action corresponding to a VM process on the host
operating system. */
action_ = physical_host_->get_cpu()->execution_start(0,core_amount_)

but in the version of execution with 2 parameters, the second one is a
user_bound not the desired amount of cores!!
This leads to entering a special in Cas01::on_speed_change and change
the bound to 1 instead of the new speed! (cpu_cas01.cpp:92)

2 years agoPython version of the masterworkers monkey
Martin Quinson [Wed, 2 Mar 2022 22:28:18 +0000 (23:28 +0100)]
Python version of the masterworkers monkey

2 years agoChaos-monkey: use the new Engine::on_simulation_start signal
Martin Quinson [Wed, 2 Mar 2022 21:25:33 +0000 (22:25 +0100)]
Chaos-monkey: use the new Engine::on_simulation_start signal

The plaform_created one that we used earlier is only reliable with XML
platforms.

2 years agoNew signal: Engine::on_simulation_start
Martin Quinson [Wed, 2 Mar 2022 21:23:54 +0000 (22:23 +0100)]
New signal: Engine::on_simulation_start

2 years agoPass the boolean parameter to the on_exit python binding
Martin Quinson [Wed, 2 Mar 2022 17:35:36 +0000 (18:35 +0100)]
Pass the boolean parameter to the on_exit python binding

2 years agosimgrid-monkey: if the test is run within valgrind, display the summary in terse...
Martin Quinson [Tue, 1 Mar 2022 00:11:04 +0000 (01:11 +0100)]
simgrid-monkey: if the test is run within valgrind, display the summary in terse output

The final return value will be the amount of errors detected by
valgrind over all tests

2 years agoRevert "blind guess for coverage fix.. [ci-skip]"
Arnaud Giersch [Wed, 2 Mar 2022 22:08:37 +0000 (23:08 +0100)]
Revert "blind guess for coverage fix.. [ci-skip]"

This reverts commit a3176f643eb9ca791f6fd555787dd5127da47007.

This makes a double-blind guess... see if it restores correct coverage on sonar.

2 years agoRename method for consistency.
Arnaud Giersch [Wed, 2 Mar 2022 22:06:48 +0000 (23:06 +0100)]
Rename method for consistency.

2 years agoConst methods.
Arnaud Giersch [Wed, 2 Mar 2022 22:03:38 +0000 (23:03 +0100)]
Const methods.

2 years agoDisable the copy constructor and the copy-assignment operator for MailboxImpl.
Arnaud Giersch [Wed, 2 Mar 2022 21:38:11 +0000 (22:38 +0100)]
Disable the copy constructor and the copy-assignment operator for MailboxImpl.

Please Sonar rule cpp:S3624

2 years agoUse payload with static storage duration to avoid memory leak.
Arnaud Giersch [Wed, 2 Mar 2022 21:26:51 +0000 (22:26 +0100)]
Use payload with static storage duration to avoid memory leak.

Since comm is detached, the sender has no way to know when it's received,
and correctly release or delete the payload in any case.

2 years agoCreate absolute path names in .gcno files.
Arnaud Giersch [Wed, 2 Mar 2022 15:06:50 +0000 (16:06 +0100)]
Create absolute path names in .gcno files.

2 years agoUse a single definition for coverage build flags.
Arnaud Giersch [Wed, 2 Mar 2022 15:05:04 +0000 (16:05 +0100)]
Use a single definition for coverage build flags.

2 years agoFix cmake warning.
Arnaud Giersch [Wed, 2 Mar 2022 15:03:53 +0000 (16:03 +0100)]
Fix cmake warning.

2 years agoMerge branch 'dev' into 'master'
Martin Quinson [Tue, 1 Mar 2022 18:35:53 +0000 (18:35 +0000)]
Merge branch 'dev' into 'master'

Minimal changes to support hosts on/off

See merge request simgrid/simgrid!77

2 years agoRevert Python stuff but the py_context instantiation change
Fabien Chaix [Tue, 1 Mar 2022 17:04:20 +0000 (19:04 +0200)]
Revert Python stuff but the py_context instantiation change

2 years agoblind guess for coverage fix.. [ci-skip]
Augustin Degomme [Tue, 1 Mar 2022 16:26:15 +0000 (16:26 +0000)]
blind guess for coverage fix.. [ci-skip]

2 years agoFix the python patches
Fabien Chaix [Tue, 1 Mar 2022 16:07:54 +0000 (18:07 +0200)]
Fix the python patches

2 years agoCall __gcov_reset after __gcov_dump.
Arnaud Giersch [Tue, 1 Mar 2022 15:42:06 +0000 (16:42 +0100)]
Call __gcov_reset after __gcov_dump.

__gcov_flush did it before its removal:
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=811b7636cb8c10f1a550a76242b5666c7ae36da2

[ci-skip]

2 years agoComplete warning message [ci-skip].
Arnaud Giersch [Tue, 1 Mar 2022 14:56:15 +0000 (15:56 +0100)]
Complete warning message [ci-skip].

2 years ago[mc_dwarf] Another assert turns into warning.
Arnaud Giersch [Tue, 1 Mar 2022 13:57:21 +0000 (14:57 +0100)]
[mc_dwarf] Another assert turns into warning.

2 years agoMove py_context to get Python exception match to work also on old platforms
Fabien Chaix [Tue, 1 Mar 2022 13:51:18 +0000 (15:51 +0200)]
Move py_context to get Python exception match to work also on old platforms

2 years agoMake python catch verbose
Fabien Chaix [Tue, 1 Mar 2022 12:56:34 +0000 (14:56 +0200)]
Make python catch verbose

2 years agoKill unused function.
Arnaud Giersch [Tue, 1 Mar 2022 08:50:33 +0000 (09:50 +0100)]
Kill unused function.

2 years agoconst++
Arnaud Giersch [Tue, 1 Mar 2022 08:49:08 +0000 (09:49 +0100)]
const++

2 years ago__gcov_flush was removed in gcc11 (untested) [ci-skip]
Augustin Degomme [Tue, 1 Mar 2022 07:20:21 +0000 (07:20 +0000)]
__gcov_flush was removed in gcc11 (untested) [ci-skip]

2 years agorework how host-to-host comms are managed
SUTER Frederic [Tue, 1 Mar 2022 03:53:48 +0000 (04:53 +0100)]
rework how host-to-host comms are managed

2 years agoget/set for CommImpl::type
SUTER Frederic [Sun, 27 Feb 2022 22:15:07 +0000 (23:15 +0100)]
get/set for CommImpl::type

2 years agoclean up before modifications
SUTER Frederic [Thu, 24 Feb 2022 00:56:40 +0000 (01:56 +0100)]
clean up before modifications

2 years agoAnswer to Martin's feedback
Fabien Chaix [Mon, 28 Feb 2022 22:38:54 +0000 (00:38 +0200)]
Answer to Martin's feedback