Fred Suter [Mon, 26 Jun 2023 16:35:39 +0000 (12:35 -0400)]
add missing copyright notes
Martin Quinson [Mon, 26 Jun 2023 15:13:10 +0000 (17:13 +0200)]
Add the release date to the ChangeLog (woops)
Martin Quinson [Mon, 26 Jun 2023 14:59:27 +0000 (16:59 +0200)]
Release 3.34
Martin Quinson [Mon, 26 Jun 2023 15:00:15 +0000 (17:00 +0200)]
Revert "Remove deprecated features for the new next release (3.34)" until after the release
Formally, this could be done, since we skipped the v3.33. But I prefer
to postpone these changes until after the release of v3.34 to release
today a code base that was throughoutly tested. Keeping these changes
would require to wait for the tests to be run again.
This reverts commit
66d0f6e192b8205fb6b7919ac1dc5475d3435d54.
Arnaud Giersch [Mon, 26 Jun 2023 14:24:19 +0000 (16:24 +0200)]
Whitespace cleanup (codefactor.io).
[ci-skip]
Arnaud Giersch [Mon, 26 Jun 2023 13:50:56 +0000 (15:50 +0200)]
Remove deprecated features for the new next release (3.34).
Arnaud Giersch [Mon, 26 Jun 2023 13:01:52 +0000 (15:01 +0200)]
Typos.
[ci-skip]
Martin Quinson [Mon, 26 Jun 2023 09:44:33 +0000 (11:44 +0200)]
Since we skip a release, use XBT_ATTRIB_DEPRECATED_v338 instead of v337
Martin Quinson [Mon, 26 Jun 2023 09:43:41 +0000 (11:43 +0200)]
Improve the documentation of this release, and introduce a release nick
Martin Quinson [Sat, 24 Jun 2023 17:13:48 +0000 (19:13 +0200)]
complete the release notes. They need more reviews
Martin Quinson [Sat, 24 Jun 2023 14:26:04 +0000 (16:26 +0200)]
sleep sets are not an option in MC. We always need them
It was useful to have it as an option when debugging.
Martin Quinson [Fri, 23 Jun 2023 22:41:33 +0000 (00:41 +0200)]
Extend the release notes with the work done until March 31.
Martin Quinson [Fri, 23 Jun 2023 10:25:31 +0000 (12:25 +0200)]
Reorg the MPI doc, and document SMPI_app_instance_start in release notes
Martin Quinson [Thu, 22 Jun 2023 07:21:41 +0000 (09:21 +0200)]
Fix MC builds
Martin Quinson [Thu, 22 Jun 2023 00:25:49 +0000 (02:25 +0200)]
Merge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Thu, 22 Jun 2023 00:24:47 +0000 (02:24 +0200)]
Improve the release notes for MC
Martin Quinson [Thu, 22 Jun 2023 00:13:04 +0000 (02:13 +0200)]
Document source-set and DPOR options
Martin Quinson [Thu, 22 Jun 2023 00:01:18 +0000 (02:01 +0200)]
model-check/sleep-set is now true by default
Martin Quinson [Wed, 21 Jun 2023 23:36:22 +0000 (01:36 +0200)]
Increase a bit an example which size got reduced when DPOR efficiency reduced, and test odpor+sdpor on it
Fred Suter [Wed, 21 Jun 2023 21:25:46 +0000 (17:25 -0400)]
[ci-skip] document s4u::Task
Fred Suter [Wed, 21 Jun 2023 18:54:17 +0000 (14:54 -0400)]
rename enqueue_execs into enqueue_firings
Fred Suter [Wed, 21 Jun 2023 18:25:39 +0000 (14:25 -0400)]
[Sonar] shadowed variable
Fred Suter [Wed, 21 Jun 2023 18:18:02 +0000 (14:18 -0400)]
[sonar] make signals private
Fred Suter [Wed, 21 Jun 2023 18:10:32 +0000 (14:10 -0400)]
[sonar] explicit capture
Fred Suter [Wed, 21 Jun 2023 16:57:36 +0000 (12:57 -0400)]
cleanups and refactoring in s4u::Task
Fred Suter [Tue, 20 Jun 2023 13:24:41 +0000 (09:24 -0400)]
Move Tasks from a plugin to s4u
Fred Suter [Tue, 20 Jun 2023 12:03:29 +0000 (12:03 +0000)]
Merge branch 'task-token' into 'master'
Task Token
See merge request simgrid/simgrid!163
Fred Suter [Tue, 20 Jun 2023 12:00:03 +0000 (12:00 +0000)]
Merge branch 'master' into 'task-token'
# Conflicts:
# docs/source/Installing_SimGrid.rst
# examples/cpp/mc-bugged2/s4u-mc-bugged2.tesh
# teshsuite/smpi/coll-allreduce-with-leaks/mc-coll-allreduce-with-leaks.tesh
Fred Suter [Mon, 19 Jun 2023 12:13:20 +0000 (08:13 -0400)]
more use of get_unique_data
Martin Quinson [Fri, 16 Jun 2023 16:14:51 +0000 (18:14 +0200)]
Fix indent in an example
Arnaud Giersch [Fri, 16 Jun 2023 14:16:49 +0000 (14:16 +0000)]
Merge branch 'fix-wakeup-tree-iterator' into 'master'
Fix `WakeupTreeIterator` bug comparing different iterators
See merge request simgrid/simgrid!165
Maxwell Pirtle [Fri, 16 Jun 2023 13:25:01 +0000 (15:25 +0200)]
Fix WakeupTreeIterator bug comparing diff iterators
Prior to this commit, the WakeupTreeIterator
compared iterators stemming from different
collections. This isn't defined behavior though :/.
The goal was to determine if a node should add its
children again when moving to the next node in the
iteration. Instead it suffices to keep track of which
nodes have already added their children after adding
them to the ordering.
Martin Quinson [Thu, 15 Jun 2023 18:58:00 +0000 (20:58 +0200)]
fix the instructions on how to use local installs of python bindings
Martin Quinson [Thu, 15 Jun 2023 18:49:47 +0000 (20:49 +0200)]
Fix the liveness tests by ignoring the Comm ID memory that breaks the state equality detection
Martin Quinson [Thu, 15 Jun 2023 16:11:38 +0000 (18:11 +0200)]
Revalidate the tesh files after the recent MC depends change
Martin Quinson [Thu, 15 Jun 2023 16:10:59 +0000 (18:10 +0200)]
Do not consider the memory addresses in MC depends function
There is no use for that, and it makes depends system-dependent.
Martin Quinson [Thu, 15 Jun 2023 15:58:16 +0000 (17:58 +0200)]
MC: Give an ID to comms to not use their pointer value, that can be reused over time
Not doing so made the dependency architecture- and system- dependent:
if a pointer address got reused for another comm, that would have
impacted the depends() result on the MC side.
Adrien Gougeon [Thu, 15 Jun 2023 16:58:12 +0000 (18:58 +0200)]
use get_unique_data()
Fred Suter [Thu, 15 Jun 2023 15:17:47 +0000 (11:17 -0400)]
add a get_unique_data to Extendable and test it in one example
Martin Quinson [Thu, 15 Jun 2023 08:36:19 +0000 (10:36 +0200)]
Explain the relevant PYTHONPATH when installing from source
Arnaud Giersch [Tue, 13 Jun 2023 19:51:48 +0000 (21:51 +0200)]
A few spelling mistakes and many replacements: [Ss]imgrid -> SimGrid.
[ci-skip]
Martin Quinson [Tue, 13 Jun 2023 15:05:23 +0000 (17:05 +0200)]
Revalidate the MC tesh files after the recent changes in the depend of wait and send
Martin Quinson [Tue, 13 Jun 2023 13:31:14 +0000 (15:31 +0200)]
re-add --help-coll to the doc now that it's implemented
Arnaud Giersch [Tue, 13 Jun 2023 12:09:15 +0000 (14:09 +0200)]
Complete "smpirun -help" [ci-skip]
Arnaud Giersch [Tue, 13 Jun 2023 10:04:41 +0000 (12:04 +0200)]
Another unw_accessor forgotten in previous commit.
Arnaud Giersch [Tue, 13 Jun 2023 09:50:08 +0000 (11:50 +0200)]
Fix error: missing initializer for member unw_accessors::ptrauth_insn_mask
Seen with some version of libunwind.
Arnaud Giersch [Tue, 13 Jun 2023 08:49:01 +0000 (10:49 +0200)]
Implement smpirun --help-coll.
Martin Quinson [Tue, 13 Jun 2023 06:53:03 +0000 (08:53 +0200)]
Tiny doc improvement
Martin Quinson [Thu, 8 Jun 2023 09:07:12 +0000 (11:07 +0200)]
improve the doc of how to select the right algorithm
Fred Suter [Thu, 15 Jun 2023 15:17:47 +0000 (11:17 -0400)]
add a get_unique_data to Extendable and test it in one example
Adrien Gougeon [Thu, 15 Jun 2023 14:14:29 +0000 (16:14 +0200)]
add simgrid::plugins::Token. switch from get_tokens to get_next_token_from
Martin Quinson [Thu, 15 Jun 2023 08:36:19 +0000 (10:36 +0200)]
Explain the relevant PYTHONPATH when installing from source
Adrien Gougeon [Wed, 14 Jun 2023 14:31:02 +0000 (16:31 +0200)]
rename get_tokens to get_next_execution_tokens
Arnaud Giersch [Tue, 13 Jun 2023 19:51:48 +0000 (21:51 +0200)]
A few spelling mistakes and many replacements: [Ss]imgrid -> SimGrid.
[ci-skip]
Martin Quinson [Tue, 13 Jun 2023 15:05:23 +0000 (17:05 +0200)]
Revalidate the MC tesh files after the recent changes in the depend of wait and send
Martin Quinson [Tue, 13 Jun 2023 13:31:14 +0000 (15:31 +0200)]
re-add --help-coll to the doc now that it's implemented
Arnaud Giersch [Tue, 13 Jun 2023 12:09:15 +0000 (14:09 +0200)]
Complete "smpirun -help" [ci-skip]
Arnaud Giersch [Tue, 13 Jun 2023 10:04:41 +0000 (12:04 +0200)]
Another unw_accessor forgotten in previous commit.
Arnaud Giersch [Tue, 13 Jun 2023 09:50:08 +0000 (11:50 +0200)]
Fix error: missing initializer for member unw_accessors::ptrauth_insn_mask
Seen with some version of libunwind.
Arnaud Giersch [Tue, 13 Jun 2023 08:49:01 +0000 (10:49 +0200)]
Implement smpirun --help-coll.
Martin Quinson [Tue, 13 Jun 2023 06:53:03 +0000 (08:53 +0200)]
Tiny doc improvement
Martin Quinson [Thu, 8 Jun 2023 09:07:12 +0000 (11:07 +0200)]
improve the doc of how to select the right algorithm
Adrien Gougeon [Mon, 12 Jun 2023 15:42:42 +0000 (17:42 +0200)]
task can now pass tokens (void*) to other tasks. add example using tokens and apache storm terminology
Arnaud Giersch [Fri, 9 Jun 2023 14:48:14 +0000 (16:48 +0200)]
Disable s4u-mc-bugged1-liveness-visited-ucontext only.
Sorry for the noise [ci-skip]
Arnaud Giersch [Fri, 9 Jun 2023 14:33:05 +0000 (16:33 +0200)]
Disable liveness model-checking tests outside Linux.
It seems to fall in an infinite loop under FreeBSD for example.
[ci-skip]
Arnaud Giersch [Fri, 9 Jun 2023 13:45:53 +0000 (15:45 +0200)]
Sometimes the expansion may work and the memory address should stay the same.
Martin Quinson [Fri, 9 Jun 2023 12:15:57 +0000 (12:15 +0000)]
Merge branch 'udpor-phase8' into 'master'
Add `ex(C)` computations for remaining primitives
See merge request simgrid/simgrid!147
Maxwell Pirtle [Fri, 2 Jun 2023 08:35:53 +0000 (10:35 +0200)]
Only compute extensions for enabled events
Maxwell Pirtle [Mon, 24 Apr 2023 07:01:59 +0000 (09:01 +0200)]
Add events with implicit bottom event
A bug was caught whereby events of the
form MUTEX* were not added properly
when following the pseudocode directly.
The problem is that SimGrid does not
explicitly represent the "bottom" event
with which every event in an unfolding is
implicitly dependent; instead, events are
simply processed without it. The implication
is such that technically, all events would
have the "previously-executed event" as
the bottom event if it was the first action taken
by the actor in the configuration, while SimGrid
will return a `std::nullopt_t` if no such
action has been taken.
The solution is very simple: we simply
add the event without any dependencies
(representing the root event) if the
previous event can't be found for the
action. This is the case in the
other pseudocode that exists, but
is a bit more subtle when readingh the
pseudocode for mutexes
Maxwell Pirtle [Thu, 20 Apr 2023 08:29:21 +0000 (10:29 +0200)]
Add partial implementation for MutexWait/MutexTest
The full implementation for computing extension
sets for MutexWait and MutexTest was *almost*
added in this commit. Again, though, we need to
be able to determine dependecies in the context
of mutex transitions which implies we need to
be have more information from the application side.
This work will be added in subsequent commits
Maxwell Pirtle [Thu, 20 Apr 2023 08:05:29 +0000 (10:05 +0200)]
Add ex(C) computation for mutex lock/unlock
The pseudcode for computing the incremental
portion of the extension set for the transitions
MUTEX_ASYNC_LOCK and MUTEX_UNLOCK were partially
added. What's importantly missing is one key
element of detecting dependencies in the specific
configuration context between a MUTEX_UNLOCK and
a MUTEX_WAIT. This will also prove to be an issue
when implementing the corresponding function for
MUTEX_WAIT.
Maxwell Pirtle [Wed, 19 Apr 2023 14:09:32 +0000 (16:09 +0200)]
Add tentative implementation of CommTest ex(C) pseudocode
Maxwell Pirtle [Wed, 19 Apr 2023 13:02:50 +0000 (15:02 +0200)]
Reorder loop processing in CommWait ex(C) comp
Maxwell Pirtle [Wed, 19 Apr 2023 08:53:08 +0000 (10:53 +0200)]
Add "working" UDPOR on small examples with CommWait independence
In forcing each CommWait transition to be
independent with all other CommWait transitions as
assumed in The Anh Pham's thesis, UDPOR appears to
correctly identify the errors in the few programs
that are used to test SimGrid's model checking
component.
Maxwell Pirtle [Tue, 18 Apr 2023 11:19:16 +0000 (13:19 +0200)]
Add ex(C) example with a small program
Incorporating extension set computations into
unit tests is rather difficult, as it requires
effectively enumerating each step followed by
UDPOR during one of its computations. This
commit adds one such expansion for a very simple
program with two threads each running two actions,
resulting in a single Mazurkiewicz trace.
More tests will be added with more actors
as a stress test for the more elaborate conditions
checked for when computing extension sets for
CommWait
Maxwell Pirtle [Tue, 18 Apr 2023 08:17:51 +0000 (10:17 +0200)]
Add monotonically-increasing IDs for UnfoldingEvent
UDPOR is inherently non-deterministic in the
sense that multiple routes may exist that UDPOR
can follow from any given configuration. Correctness
and optimality are not affected by these results;
however, we seek for SimGrid to have a deterministic
execution on all platforms while running UDPOR.
Prior to this commit, arbitrarily the first event in
an unordered set was selected. But since the "first"
event in an unordered set is implementation-defined,
we seek to avoid leaving it up to the standard library's
ordering and define instead an ordering ourselves.
This motivates assigning a monotonically-increasing
ID to each newly-created event. Note that since
events may be created and then ultimately
destroyed after UDPOR realizes it has created a duplicate
event (which can happen when computing the extension
set of two configurations whose extension sets overlap),
events that exist in the unfolding need not contain
a contiguous range of IDs.
To provide a deterministic order, we must first process
the transitions that are enabled from any given state
in a determinstic order so that events are discovered
in a determinstic order. Furthermore, we must always
pick events from the intersection of en(C) and A in
a determinstic order. Here, we always pick events
with the smallest assigned ID first.
Maxwell Pirtle [Mon, 17 Apr 2023 09:24:37 +0000 (11:24 +0200)]
Expand sanity-check tests for CommSend/CommRecv transitions
A very, very basic test was added to ensure that
the most trivial program was treated correctly.
More tests will be added which will make for more
interesting scenarios. The difficulty lies with
creating the unfolding itself: there's no better
way than to do so manually and to follow along
with where UDPOR would take us...
Maxwell Pirtle [Mon, 17 Apr 2023 08:38:29 +0000 (10:38 +0200)]
Add preliminary basic tests for ex(C) computation
Testing the correctness of the computation for
extension sets is critical, as extension sets
guide the entire UDPOR search. Unfortunately it
is also very difficult to create tests for computing
the extension sets...
Arnaud Giersch [Thu, 8 Jun 2023 20:35:40 +0000 (22:35 +0200)]
Factorize common code to cancel actions when a resource is turned off.
Martin Quinson [Wed, 7 Jun 2023 15:20:44 +0000 (15:20 +0000)]
Merge branch 'master' into 'master'
Enhancing guiding strategies for McSimGrid
See merge request simgrid/simgrid!161
mlaurent [Wed, 7 Jun 2023 15:03:32 +0000 (17:03 +0200)]
Fix CI tests
mlaurent [Wed, 7 Jun 2023 14:49:27 +0000 (16:49 +0200)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Wed, 7 Jun 2023 14:12:38 +0000 (16:12 +0200)]
Better strategy documentation
Arnaud Giersch [Wed, 7 Jun 2023 07:37:02 +0000 (09:37 +0200)]
Buffers should not be considered by CommWaitTransition::depends.
Update tesh files accordingly.
mlaurent [Wed, 7 Jun 2023 13:26:35 +0000 (15:26 +0200)]
Use xbt::random instead of rand and srand
mlaurent [Wed, 7 Jun 2023 12:39:42 +0000 (14:39 +0200)]
Better warning message for max-depth
mlaurent [Wed, 7 Jun 2023 10:46:36 +0000 (12:46 +0200)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
Arnaud Giersch [Wed, 7 Jun 2023 09:44:02 +0000 (11:44 +0200)]
Remove unused parameters (sonar).
Arnaud Giersch [Wed, 7 Jun 2023 09:38:07 +0000 (11:38 +0200)]
Connect the right signal.
Arnaud Giersch [Wed, 7 Jun 2023 09:37:05 +0000 (11:37 +0200)]
Declare functions "const" (sonar).
Arnaud Giersch [Wed, 7 Jun 2023 09:03:12 +0000 (11:03 +0200)]
Another round of pointer-to-const for sonar.
Arnaud Giersch [Wed, 7 Jun 2023 08:44:40 +0000 (10:44 +0200)]
Use xbt_die instead of xbt_assert(false).
Arnaud Giersch [Wed, 7 Jun 2023 08:28:32 +0000 (10:28 +0200)]
Disable maybe throwing move constructor (sonar).
mlaurent [Tue, 6 Jun 2023 15:11:35 +0000 (17:11 +0200)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
Arnaud Giersch [Tue, 6 Jun 2023 13:07:10 +0000 (15:07 +0200)]
Sort MANIFEST.in.
[ci-skip]
mlaurent [Tue, 6 Jun 2023 12:19:49 +0000 (14:19 +0200)]
Few more CI tesh fixing
mlaurent [Tue, 6 Jun 2023 12:06:18 +0000 (14:06 +0200)]
Fix stat order for CI tests
Arnaud Giersch [Tue, 6 Jun 2023 10:51:16 +0000 (12:51 +0200)]
Fix build without MC.
mlaurent [Tue, 6 Jun 2023 10:05:29 +0000 (12:05 +0200)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Tue, 6 Jun 2023 10:05:18 +0000 (12:05 +0200)]
Fix Manifest.in