Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
3 years agooops
degomme [Wed, 6 Mar 2019 15:20:01 +0000 (16:20 +0100)]
oops

3 years agoWIP - SMPI tuto - add parts about sampling and memory sharing
degomme [Wed, 6 Mar 2019 15:01:02 +0000 (16:01 +0100)]
WIP - SMPI tuto - add parts about sampling and memory sharing

TODO :
- collectives, and more ?

3 years agoTry to help sonar.
degomme [Wed, 6 Mar 2019 14:56:25 +0000 (15:56 +0100)]
Try to help sonar.

3 years agoFix mc liveness examples.
degomme [Wed, 6 Mar 2019 14:56:12 +0000 (15:56 +0100)]
Fix mc liveness examples.

3 years agoObjectify MSG task send
Frederic Suter [Wed, 6 Mar 2019 10:57:40 +0000 (11:57 +0100)]
Objectify MSG task send

3 years agoSimplifications in MSG task execution
Frederic Suter [Wed, 6 Mar 2019 10:14:13 +0000 (11:14 +0100)]
Simplifications in MSG task execution

3 years agoplease sonar
Frederic Suter [Wed, 6 Mar 2019 08:23:10 +0000 (09:23 +0100)]
please sonar

3 years agoremove or deprecate now useless code
Frederic Suter [Wed, 6 Mar 2019 08:08:18 +0000 (09:08 +0100)]
remove or deprecate now useless code

3 years agoplease clang
Frederic Suter [Tue, 5 Mar 2019 23:11:18 +0000 (00:11 +0100)]
please clang

3 years agos4u::Exec now has 2 child classes
Frederic Suter [Tue, 5 Mar 2019 22:43:51 +0000 (23:43 +0100)]
s4u::Exec now has 2 child classes
s4u::ExecSeq and s4u::ExecPar

side effects:
+ no more C-style host list in HostImpl and ptaskLO7
+ Sequential execution can have a timeout
TODO:
+ get rid of ExecImplPtr in MSG
+ check and clean

3 years agoParmap status is simply a boolean.
Arnaud Giersch [Tue, 5 Mar 2019 22:20:38 +0000 (23:20 +0100)]
Parmap status is simply a boolean.

3 years agoUse std::function instead of function pointer.
Arnaud Giersch [Tue, 5 Mar 2019 22:05:02 +0000 (23:05 +0100)]
Use std::function instead of function pointer.

3 years agoUse proper type instead of void*.
Arnaud Giersch [Tue, 5 Mar 2019 21:46:54 +0000 (22:46 +0100)]
Use proper type instead of void*.

3 years agoAssert that the pointer is not null when dereferenced.
Arnaud Giersch [Tue, 5 Mar 2019 12:25:11 +0000 (13:25 +0100)]
Assert that the pointer is not null when dereferenced.

3 years agoField is initialized by constructor.
Arnaud Giersch [Tue, 5 Mar 2019 12:22:08 +0000 (13:22 +0100)]
Field is initialized by constructor.

3 years agothose pimpl are actually never null, stop fooling sonar
Martin Quinson [Tue, 5 Mar 2019 08:29:28 +0000 (09:29 +0100)]
those pimpl are actually never null, stop fooling sonar

3 years agoapply agier fixes for StarPU build
Frederic Suter [Tue, 5 Mar 2019 08:46:35 +0000 (09:46 +0100)]
apply agier fixes for StarPU build

3 years agoMerge branch 'master' of https://framagit.org/simgrid/simgrid
Frederic Suter [Tue, 5 Mar 2019 08:22:35 +0000 (09:22 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid

3 years agodon't let sonar think that pimpl_ can be null
Martin Quinson [Tue, 5 Mar 2019 07:03:51 +0000 (08:03 +0100)]
don't let sonar think that pimpl_ can be null

3 years agosonar: pass large parameters as const; don't name unused params
Martin Quinson [Tue, 5 Mar 2019 06:29:53 +0000 (07:29 +0100)]
sonar: pass large parameters as const; don't name unused params

3 years agoSanitize the prototype of Actor::on_exit() callbacks
Martin Quinson [Mon, 4 Mar 2019 23:38:28 +0000 (00:38 +0100)]
Sanitize the prototype of Actor::on_exit() callbacks

Changes on_exit(function<void(int failed, void*data)>, data)
into    on_exit(function<void(bool failed)>)

So, we are using bool for boolean values, and we don't force the user
to build a closure on void* data manually. If you want to pass a data
to the callback, just use the C++ formalism: [data](bool failed){...}

Other changes on the way (that excalated quickly)
- Document some recent changes to the internals in ChangeLog
- Document this_actor::on_exit() and Actor::on_exit() in doxygen
- Also sanitize the prototype of MSG_process_on_exit(). Was taking a
  (void*,void*) function; now takes a (int, void*) one. This was too
  weird to use void* to denote integers -- I actually doubt it ever
  worked the way it was written, but the tests are too poor to be
  sure: the only usage of this function ignores the return value.
- Also add a new test in activity-lifetime: test_sleep_restart_end
  Commented for now as it breaks miserably.

3 years agoMove ForcefulKillException to the root namespace, along with the other exceptions
Martin Quinson [Mon, 4 Mar 2019 22:28:38 +0000 (23:28 +0100)]
Move ForcefulKillException to the root namespace, along with the other exceptions

3 years agoRename StopRequest into ForcefulKillException to contribute to #325
Martin Quinson [Mon, 4 Mar 2019 22:01:36 +0000 (23:01 +0100)]
Rename StopRequest into ForcefulKillException to contribute to #325

3 years agofurther convert some bits of the documentation
Martin Quinson [Mon, 4 Mar 2019 21:48:53 +0000 (22:48 +0100)]
further convert some bits of the documentation

3 years agosnake case this bool
Frederic Suter [Mon, 4 Mar 2019 13:55:53 +0000 (14:55 +0100)]
snake case this bool

3 years agocosmetics
Frederic Suter [Mon, 4 Mar 2019 13:15:04 +0000 (14:15 +0100)]
cosmetics

3 years agomore factoring when sending MSG tasks
Frederic Suter [Sun, 3 Mar 2019 17:17:56 +0000 (18:17 +0100)]
more factoring when sending MSG tasks

3 years agoAdd a comment to explain previous changes.
Arnaud Giersch [Sat, 2 Mar 2019 20:50:55 +0000 (21:50 +0100)]
Add a comment to explain previous changes.

3 years agoFix memleak.
Arnaud Giersch [Sat, 2 Mar 2019 13:19:21 +0000 (14:19 +0100)]
Fix memleak.

3 years agoFix use of invalidated iterator.
Arnaud Giersch [Sat, 2 Mar 2019 09:05:58 +0000 (10:05 +0100)]
Fix use of invalidated iterator.

3 years agoUse C++11 <random> for simcall mc_random.
Arnaud Giersch [Fri, 1 Mar 2019 22:16:49 +0000 (23:16 +0100)]
Use C++11 <random> for simcall mc_random.

3 years agoAvoid shadowing outer variables.
Arnaud Giersch [Fri, 1 Mar 2019 13:03:40 +0000 (14:03 +0100)]
Avoid shadowing outer variables.

3 years agoKill unused parameter and please Sonar.
Arnaud Giersch [Fri, 1 Mar 2019 17:37:59 +0000 (18:37 +0100)]
Kill unused parameter and please Sonar.

3 years agoUse specialized vector::swap.
Arnaud Giersch [Fri, 1 Mar 2019 11:49:41 +0000 (12:49 +0100)]
Use specialized vector::swap.

3 years agoUse Rvalue references for exception constructors.
Arnaud Giersch [Fri, 1 Mar 2019 10:27:27 +0000 (11:27 +0100)]
Use Rvalue references for exception constructors.

It seems to be sufficient for now.
Maybe one day we'll need to complete to handle Lvalues.

3 years agoStop setting random seed at initialization.
Arnaud Giersch [Fri, 1 Mar 2019 09:44:14 +0000 (10:44 +0100)]
Stop setting random seed at initialization.

3 years agokill obsolete doc
Martin Quinson [Fri, 1 Mar 2019 22:46:34 +0000 (23:46 +0100)]
kill obsolete doc

There is no need to convert that.

3 years agoconvert another page from old doc to RST
Martin Quinson [Fri, 1 Mar 2019 22:21:58 +0000 (23:21 +0100)]
convert another page from old doc to RST

3 years agodoc improvement
Martin Quinson [Thu, 28 Feb 2019 23:02:27 +0000 (00:02 +0100)]
doc improvement

I hope that this will clarify #325, and #132.

3 years agomv the internal isend function to the class
Frederic Suter [Fri, 1 Mar 2019 19:45:23 +0000 (20:45 +0100)]
mv the internal isend function to the class

3 years agoremove useless simcall for IO too and use better casts
Frederic Suter [Fri, 1 Mar 2019 18:18:14 +0000 (19:18 +0100)]
remove useless simcall for IO too and use better casts

3 years agoone step further not using kernel execution activities in MSG.
Frederic Suter [Fri, 1 Mar 2019 17:58:38 +0000 (18:58 +0100)]
one step further not using kernel execution activities in MSG.

3 years agoThe creation of the pimpl needs no simcall
Frederic Suter [Fri, 1 Mar 2019 17:52:08 +0000 (18:52 +0100)]
The creation of the pimpl needs no simcall

Now that init and start are split, creating the ExecImpl in init (the
constructor) has no impact on the simulation kernel. The action is
created by start().

This slightly modifies the ordering of the output in one tesh file

3 years agoYell when there is an exception, not when there isn't
Frederic Suter [Fri, 1 Mar 2019 17:51:01 +0000 (18:51 +0100)]
Yell when there is an exception, not when there isn't

3 years agomess with MSG tasks
Frederic Suter [Fri, 1 Mar 2019 09:03:36 +0000 (10:03 +0100)]
mess with MSG tasks

3 years agoMake destructors useless.
Arnaud Giersch [Thu, 28 Feb 2019 22:22:03 +0000 (23:22 +0100)]
Make destructors useless.

3 years agoMake capture list explicit.
Arnaud Giersch [Thu, 28 Feb 2019 21:55:04 +0000 (22:55 +0100)]
Make capture list explicit.

3 years agoEmpty callback is optional.
Arnaud Giersch [Thu, 28 Feb 2019 21:51:44 +0000 (22:51 +0100)]
Empty callback is optional.

3 years agoHide std::free to Sonar.
Arnaud Giersch [Thu, 28 Feb 2019 21:43:39 +0000 (22:43 +0100)]
Hide std::free to Sonar.

3 years agoIgnore Sonar issue "Macros should not be used to define constants" in *.h.
Arnaud Giersch [Thu, 28 Feb 2019 21:39:34 +0000 (22:39 +0100)]
Ignore Sonar issue "Macros should not be used to define constants" in *.h.

3 years agoUse default initialization.
Arnaud Giersch [Thu, 28 Feb 2019 21:32:13 +0000 (22:32 +0100)]
Use default initialization.

3 years agoNo static analyzers, myCoords[] and targetCoords[] don't contain garbage.
Arnaud Giersch [Tue, 26 Feb 2019 20:54:53 +0000 (21:54 +0100)]
No static analyzers, myCoords[] and targetCoords[] don't contain garbage.

Save dimensions_.size() in a local variable to help Sonar and Clang, plus other
simplifications.

3 years agoDon't rely on random to generate temporary file names.
Arnaud Giersch [Thu, 28 Feb 2019 14:35:19 +0000 (15:35 +0100)]
Don't rely on random to generate temporary file names.

3 years agoUse C++11 <random> instead of rand().
Arnaud Giersch [Thu, 28 Feb 2019 14:00:06 +0000 (15:00 +0100)]
Use C++11 <random>  instead of rand().

3 years agoRemove never used FindRngStream.cmake.
Arnaud Giersch [Thu, 28 Feb 2019 13:45:22 +0000 (14:45 +0100)]
Remove never used FindRngStream.cmake.

3 years agobetter message for this exception
Frederic Suter [Thu, 28 Feb 2019 12:52:04 +0000 (13:52 +0100)]
better message for this exception

3 years agoadd test related to #220 + fix killsend
Frederic Suter [Thu, 28 Feb 2019 12:46:12 +0000 (13:46 +0100)]
add test related to #220 + fix killsend

If the test and the launched actors share a scheduling round, the
outer test comes first and execute the asserts before the actors are
able to end their execution. As we want to control the status of the
actors when they end, let the outer test wait a bit before asserting.

3 years agochange exception raised if a StopRequest is catched in Host.off()
Frederic Suter [Thu, 28 Feb 2019 09:12:07 +0000 (10:12 +0100)]
change exception raised if a StopRequest is catched in Host.off()

3 years agoactivity-lifecycle: test exec just as we test sleep
Martin Quinson [Thu, 28 Feb 2019 01:34:12 +0000 (02:34 +0100)]
activity-lifecycle: test exec just as we test sleep

We should also try to cancel all these nice actions. And at some
point, we should probably come up with a DSL or find another way to
factorize some code.

3 years agoDon't give actors a chance to survive their exec if their host is turned off
Martin Quinson [Thu, 28 Feb 2019 01:30:53 +0000 (02:30 +0100)]
Don't give actors a chance to survive their exec if their host is turned off

Before, they received an HostFailureException that they could catch to
survive. Now, they are simply killed (once their on_exit callbacks are
executed).

This is more consistent with what happens with sleep actions, and thus
fixes the github issue #325.

3 years agoplease sonar: don't declare an empty callback
Martin Quinson [Wed, 27 Feb 2019 23:09:44 +0000 (00:09 +0100)]
please sonar: don't declare an empty callback

3 years agoFix forwarding of the program arguments.
Arnaud Giersch [Wed, 27 Feb 2019 22:36:42 +0000 (23:36 +0100)]
Fix forwarding of the program arguments.

Use a static storage to avoid dangling pointers, and ensure that there is no
out of bound array access.

3 years agoFix Backtrace::operator=.
Arnaud Giersch [Wed, 27 Feb 2019 20:49:32 +0000 (21:49 +0100)]
Fix Backtrace::operator=.

3 years agoAnonymize unused parameters.
Arnaud Giersch [Wed, 27 Feb 2019 14:55:56 +0000 (15:55 +0100)]
Anonymize unused parameters.

3 years agoEnforce "Rule-of-Three/Five".
Arnaud Giersch [Wed, 27 Feb 2019 14:11:36 +0000 (15:11 +0100)]
Enforce "Rule-of-Three/Five".

3 years agoAvoid null pointer dereference.
Arnaud Giersch [Tue, 26 Feb 2019 21:54:45 +0000 (22:54 +0100)]
Avoid null pointer dereference.

3 years agosurf_parse_error() never returns, remove dead code after that.
Arnaud Giersch [Tue, 26 Feb 2019 20:34:27 +0000 (21:34 +0100)]
surf_parse_error() never returns, remove dead code after that.

3 years agoRemove dead code after exception throw.
Arnaud Giersch [Tue, 26 Feb 2019 20:32:47 +0000 (21:32 +0100)]
Remove dead code after exception throw.

3 years agoRemove dead code after returrn statement.
Arnaud Giersch [Tue, 26 Feb 2019 20:30:42 +0000 (21:30 +0100)]
Remove dead code after returrn statement.

3 years agoMethod is redundant with base class.
Arnaud Giersch [Tue, 26 Feb 2019 16:29:07 +0000 (17:29 +0100)]
Method is redundant with base class.

3 years agoMark methods as "override".
Arnaud Giersch [Tue, 26 Feb 2019 16:28:41 +0000 (17:28 +0100)]
Mark methods as "override".

3 years agoCapitalize constants.
Arnaud Giersch [Tue, 26 Feb 2019 16:47:53 +0000 (17:47 +0100)]
Capitalize constants.

3 years agoReplace #define with constexpr declarations.
Arnaud Giersch [Tue, 26 Feb 2019 16:23:29 +0000 (17:23 +0100)]
Replace #define with constexpr declarations.

3 years agoKill unused constants.
Arnaud Giersch [Tue, 26 Feb 2019 16:44:17 +0000 (17:44 +0100)]
Kill unused constants.

3 years agofix (#220) ?
Frederic Suter [Wed, 27 Feb 2019 13:49:06 +0000 (14:49 +0100)]
fix (#220) ?

If an actor ends right after a dsend, the Comm should not be canceled
to let the receiver a chance to catch it.

It was removed in Comm::cancel(), now it's not, and the destructor has
to be a bit more careful.

As the comm was canceled, if the receive is posted later, it nevers
find its matching send and may stall forever or timeout.

This changed the output of the chord example (using dsend), but I
suspect it was not so correct before with some dsend being canceled
and the corresponding receive ending on timeout.

This also highlighted an issue in Java. The cleanup function for dsend
is now called at the end of the simulation and get_current_thread_env
crashed (because the current thread is maestro).

Hopefully, this commit does not cause new leaks.

3 years agomake MSG_process_create die if host is off.
Frederic Suter [Wed, 27 Feb 2019 08:31:17 +0000 (09:31 +0100)]
make MSG_process_create die if host is off.
This was requested by adsein long time ago.

3 years agofix typos in warning
Frederic Suter [Wed, 27 Feb 2019 08:15:11 +0000 (09:15 +0100)]
fix typos in warning

3 years agoChange color of "barrier" in trace. It was too close to "computing"
degomme [Tue, 26 Feb 2019 12:07:45 +0000 (13:07 +0100)]
Change color of "barrier" in trace. It was too close to "computing"

3 years agoAdd simple gemm example for SMPI with sampling macros.
degomme [Tue, 26 Feb 2019 10:59:36 +0000 (11:59 +0100)]
Add simple gemm example for SMPI with sampling macros.
Adapted from the proxy app from Codevault.
This could be a good basis for the tuto

3 years agoYet again change the way SMPI_SAMPLE_MACRO works
degomme [Tue, 26 Feb 2019 10:58:12 +0000 (11:58 +0100)]
Yet again change the way SMPI_SAMPLE_MACRO works
There is no need anymore to have the body of the loop inside the macro. Kudos to Arnaud L for the ideas.

now usage is just turning
for(x;y;z) into SMPI_SAMPLE_GLOBAL(x,y,z,iters,thres)

Time injection will be done only once for all the section, speeding up the simulation.

TODO : iterator value will not be correct at the end of the loop for now.
Not important if iterator is local to the loop, but may be annoying if not.

3 years agofix (#324)
Frederic Suter [Tue, 26 Feb 2019 10:28:47 +0000 (11:28 +0100)]
fix (#324)
Throw a HostFailureException when one tries to create (or attach) an
actor an a host that is not on.
If this happens during the parsing of the deployment file, just let it
go.
for MSG, we could die if this happens (we don't for now)

3 years agoBuild still broken with ld 2.31.1. Check only version for gcc.
Arnaud Giersch [Mon, 25 Feb 2019 22:22:10 +0000 (23:22 +0100)]
Build still broken with ld 2.31.1.  Check only version for gcc.

3 years ago[sonar] Improve Cognitive Complexity.
Arnaud Giersch [Mon, 25 Feb 2019 13:58:10 +0000 (14:58 +0100)]
[sonar] Improve Cognitive Complexity.

3 years agoNO_MAX_DURATION is a special value, use (in)equality for testing.
Arnaud Giersch [Mon, 25 Feb 2019 13:39:22 +0000 (14:39 +0100)]
NO_MAX_DURATION is a special value, use (in)equality for testing.

3 years agoMove common test to Action::update_max_duration.
Arnaud Giersch [Mon, 25 Feb 2019 13:20:22 +0000 (14:20 +0100)]
Move common test to Action::update_max_duration.

3 years agoKill now unused functions SIMIX_mutex_{un}ref.
Arnaud Giersch [Sat, 23 Feb 2019 13:31:46 +0000 (14:31 +0100)]
Kill now unused functions SIMIX_mutex_{un}ref.

3 years agoConvert last call to SIMIX_mutex_unref.
Arnaud Giersch [Sat, 23 Feb 2019 13:31:16 +0000 (14:31 +0100)]
Convert last call to SIMIX_mutex_unref.

3 years agofix last issues
Frederic Suter [Mon, 25 Feb 2019 18:09:49 +0000 (19:09 +0100)]
fix last issues
+ counter_ is used by heaps, use id_ instead
+ fix dumb find/replace

3 years agoend objectification of MSG tasks
Frederic Suter [Mon, 25 Feb 2019 16:10:19 +0000 (17:10 +0100)]
end objectification of MSG tasks

3 years agomv counter from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 15:48:49 +0000 (16:48 +0100)]
mv counter from msg_task_t to simgrid::msg::Task
this was the last field, MSG tasks are now objects
have to remove the useless layer now!

3 years agomv data from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 15:30:39 +0000 (16:30 +0100)]
mv data from msg_task_t to simgrid::msg::Task

3 years agosimplify these tests
Frederic Suter [Mon, 25 Feb 2019 15:14:00 +0000 (16:14 +0100)]
simplify these tests

3 years agomv category from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 14:48:36 +0000 (15:48 +0100)]
mv category from msg_task_t to simgrid::msg::Task

3 years agomove name from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 14:19:50 +0000 (15:19 +0100)]
move name from msg_task_t to simgrid::msg::Task

3 years agodo not promote bad practices: use "accessor" to get task name
Frederic Suter [Mon, 25 Feb 2019 14:16:32 +0000 (15:16 +0100)]
do not promote bad practices: use "accessor" to get task name

3 years agoobjectify simdata_task_t
Frederic Suter [Mon, 25 Feb 2019 13:16:57 +0000 (14:16 +0100)]
objectify simdata_task_t

3 years agopriority and bound of MSG tasks can only be set BEFORE execution
Frederic Suter [Mon, 25 Feb 2019 10:44:47 +0000 (11:44 +0100)]
priority and bound of MSG tasks can only be set BEFORE execution

this is the rule for S4U, should be the same for MSG.
BTW, the behavior of the LMM is likely to be confused by such dynamic
changes during execution.

Side effect: we should remove the setters in ExecImpl, but there are
used by two simcalls that are tagged as deprected with v3.25

3 years agosource is sender's host. One field is enough
Frederic Suter [Mon, 25 Feb 2019 10:28:36 +0000 (11:28 +0100)]
source is sender's host. One field is enough

3 years agoplay with (parallel) execs. still not satisfying
Frederic Suter [Sat, 23 Feb 2019 12:46:01 +0000 (13:46 +0100)]
play with (parallel) execs. still not satisfying

3 years agoSIMIX_mutex_{un}ref become MutexImpl::{un}ref
Frederic Suter [Sat, 23 Feb 2019 11:27:27 +0000 (12:27 +0100)]
SIMIX_mutex_{un}ref become MutexImpl::{un}ref