Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
4 years agoshy attempt at simplifying the simcall mechanism
Martin Quinson [Thu, 8 Aug 2019 16:08:43 +0000 (18:08 +0200)]
shy attempt at simplifying the simcall mechanism

4 years agoforcefully kill exiting actors even if their host is not off
Martin Quinson [Fri, 2 Aug 2019 18:12:24 +0000 (20:12 +0200)]
forcefully kill exiting actors even if their host is not off

Without this, this_actor::exit() deadlocks on Thread factory because
the actor does not exit soon enough to release maestro that is joining
its thread.

4 years agoimprove debug msg
Martin Quinson [Fri, 2 Aug 2019 18:11:41 +0000 (20:11 +0200)]
improve debug msg

4 years agorun Actor::on_destruction even if the actor was killed before starting, but not on...
Martin Quinson [Fri, 2 Aug 2019 16:55:49 +0000 (18:55 +0200)]
run Actor::on_destruction even if the actor was killed before starting, but not on maestro

It seems that the actors are sometimes killed after the simix_global
destruction... Maybe when the user code keeps a reference on them.

4 years agoNew signal: Actor::on_termination (when its code terminates)
Martin Quinson [Fri, 2 Aug 2019 15:50:49 +0000 (17:50 +0200)]
New signal: Actor::on_termination (when its code terminates)

4 years agoactivity-lifecycle: make tests shorter to ensure that they are really done when we...
Martin Quinson [Fri, 2 Aug 2019 15:49:14 +0000 (17:49 +0200)]
activity-lifecycle: make tests shorter to ensure that they are really done when we test them so

4 years agoActor: make the refcount observable, and improve debug messages
Martin Quinson [Thu, 1 Aug 2019 20:49:34 +0000 (22:49 +0200)]
Actor: make the refcount observable, and improve debug messages

4 years agosmpicxx: obey the VERBOSE environment variable and display what we do
Martin Quinson [Thu, 1 Aug 2019 20:47:23 +0000 (22:47 +0200)]
smpicxx: obey the VERBOSE environment variable and display what we do

4 years agoActor::by_pid: also search through the dead actors
Martin Quinson [Thu, 1 Aug 2019 20:44:06 +0000 (22:44 +0200)]
Actor::by_pid: also search through the dead actors

Finally, my trick works with it. MPI ranks are not garbage collected
as soon as they end because the MPI instance keeps a reference on
them. With this, by_pid() works properly, even on dead but not
collected actors.

But this only works until the trash is emptied, obviously. This seem
to be enough for the test I wanted to get running, so I will not fix
that point tonight.

4 years agoActorImpl: postpone the on_destroy signal to the destructor
Martin Quinson [Thu, 1 Aug 2019 20:41:59 +0000 (22:41 +0200)]
ActorImpl: postpone the on_destroy signal to the destructor

This is to prevent that the SMPI extension gets destroyed too early.
The problem is also that this extension is not really an extension but
manually handled, but I'll not fix that tonight.

4 years agoRestore the -no-privatize to the ampi example
Martin Quinson [Thu, 1 Aug 2019 20:40:14 +0000 (22:40 +0200)]
Restore the -no-privatize to the ampi example

4 years agofix ampi example by not cleaning the tracing submodule before the actor end
Martin Quinson [Thu, 1 Aug 2019 15:55:38 +0000 (17:55 +0200)]
fix ampi example by not cleaning the tracing submodule before the actor end

4 years agoadd a dependency of this test to mpi, as required on jenkins
Martin Quinson [Thu, 1 Aug 2019 12:57:31 +0000 (14:57 +0200)]
add a dependency of this test to mpi, as required on jenkins

4 years agoSMPI: redesign the end of actors/ranks' lifetime
Martin Quinson [Thu, 1 Aug 2019 07:34:53 +0000 (09:34 +0200)]
SMPI: redesign the end of actors/ranks' lifetime

The problem is that we don't use enough of refcounting in SMPI, so we
should not let any rank finish before the others, because it may be
involved in a communication or something.

Previously, there were a barrier at the end of the user code, so that
every ranks finishes exactly at the same time.

Now, the MPI instance keeps a reference on every actor it contains,
and the actor terminates with no delay after its code. The terminating
actors unregister from their MPI instance, but they are still
referenced until the last actor unregisters from the MPI instance.
Once the MPI instance is empty, it unregisters all the actors,
allowing their collection by the refcounting.

This commit changes the ending time of many ranks in many examples, as
expected. The ranks now terminate as soon as they are done, they are
not waiting the others anymore.

It introduces a segfault in ampi that I fail to understand. It seems
that a container is used after being collected in this example, but I
fail to see the reason so far.

4 years agosort out the functions on MPI init/fini
Martin Quinson [Thu, 1 Aug 2019 05:11:31 +0000 (07:11 +0200)]
sort out the functions on MPI init/fini

4 years agosmall simplification of MPI initialization
Martin Quinson [Thu, 1 Aug 2019 04:45:53 +0000 (06:45 +0200)]
small simplification of MPI initialization

4 years agoMPI: we don't mess with argc/argv anymore nowadays
Martin Quinson [Thu, 1 Aug 2019 03:53:31 +0000 (05:53 +0200)]
MPI: we don't mess with argc/argv anymore nowadays

Previously, the rank and instance were added in argv, mandating a
specific handling of MPI_Init parameters. But now, they are passed as
properties, and the argv is left unmodified. So there is no need to
deal specifically with the MPI_Init parameters.

4 years agosmpi_deployment: obey our coding rules
Martin Quinson [Thu, 1 Aug 2019 03:25:31 +0000 (05:25 +0200)]
smpi_deployment: obey our coding rules

4 years agoI'd like to turn process_data into a regular extension of Actor
Martin Quinson [Wed, 31 Jul 2019 16:55:08 +0000 (18:55 +0200)]
I'd like to turn process_data into a regular extension of Actor

4 years agoSMPI: prefer xbt_assert to 'if () xbt_die'
Martin Quinson [Wed, 31 Jul 2019 16:46:37 +0000 (18:46 +0200)]
SMPI: prefer xbt_assert to 'if () xbt_die'

4 years agoMPI init: inline a function and various small cleanups
Martin Quinson [Wed, 31 Jul 2019 16:35:02 +0000 (18:35 +0200)]
MPI init: inline a function and various small cleanups

4 years agosmpi::ActorExt: this constructor parameter is not used
Martin Quinson [Wed, 31 Jul 2019 16:12:10 +0000 (18:12 +0200)]
smpi::ActorExt: this constructor parameter is not used

4 years agoMPI init: inline a function
Martin Quinson [Wed, 31 Jul 2019 15:58:33 +0000 (17:58 +0200)]
MPI init: inline a function

4 years agoSMPI init: stringify and rename a variable
Martin Quinson [Wed, 31 Jul 2019 09:25:17 +0000 (11:25 +0200)]
SMPI init: stringify and rename a variable

4 years agokill smpi_process_count(), use smpi_get_universe_size() instead
Martin Quinson [Sun, 28 Jul 2019 23:55:25 +0000 (01:55 +0200)]
kill smpi_process_count(), use smpi_get_universe_size() instead

process_count was probably the original name while universe_size was
added to implement MPI_Attr_get(MPI_UNIVERSE_SIZE). Merge both to sort
things out.

While I'm at it, move all of it to smpi_deployment to reduce the
amount of globals made visible to more than one module.

4 years agocmake: build smpi internals before the collectives
Martin Quinson [Sun, 28 Jul 2019 23:42:33 +0000 (01:42 +0200)]
cmake: build smpi internals before the collectives

My changes break more often the internals than the collectives (that
are rarely modified)

4 years agoMC: kill a useless function
Martin Quinson [Sun, 28 Jul 2019 23:31:06 +0000 (01:31 +0200)]
MC: kill a useless function

4 years agosmpi: some useless cleanups while I read this code
Martin Quinson [Sun, 28 Jul 2019 22:38:00 +0000 (00:38 +0200)]
smpi: some useless cleanups while I read this code

4 years agoavoid mixing travis builders
Augustin Degomme [Sat, 27 Jul 2019 09:04:36 +0000 (11:04 +0200)]
avoid mixing travis builders

4 years agodocs: fix some typos reported by Gene
Martin Quinson [Fri, 26 Jul 2019 16:20:34 +0000 (18:20 +0200)]
docs: fix some typos reported by Gene

4 years agotypo...
Augustin Degomme [Fri, 26 Jul 2019 21:27:50 +0000 (23:27 +0200)]
typo...

4 years agomerge before pushing, next time
Augustin Degomme [Fri, 26 Jul 2019 21:26:08 +0000 (23:26 +0200)]
merge before pushing, next time

4 years agoreally build on mojave
Augustin Degomme [Fri, 26 Jul 2019 21:21:27 +0000 (23:21 +0200)]
really build on mojave

4 years agotry to fix broken detection of boost_stacktrace on mojave. Hope it does not break...
Augustin Degomme [Fri, 26 Jul 2019 20:57:25 +0000 (22:57 +0200)]
try to fix broken detection of boost_stacktrace on mojave. Hope it does not break cold cmakes

4 years agoadd color for travis and appveyor builds
Augustin Degomme [Fri, 26 Jul 2019 18:10:40 +0000 (20:10 +0200)]
add color for travis and appveyor builds

4 years agotypo
Augustin Degomme [Fri, 26 Jul 2019 17:42:25 +0000 (19:42 +0200)]
typo

4 years agoadd some comments on tests we don't pass
Augustin Degomme [Fri, 26 Jul 2019 14:28:37 +0000 (16:28 +0200)]
add some comments on tests we don't pass

4 years agoPartially revert 2b4dcee56 and activate a test.
Augustin Degomme [Fri, 26 Jul 2019 13:15:25 +0000 (15:15 +0200)]
Partially revert 2b4dcee56 and activate a test.
mpi_type_create_x actually handle MPI_Aint, only mpi_type_x need conversion

4 years agoactivate a fortran test
Augustin Degomme [Fri, 26 Jul 2019 12:34:49 +0000 (14:34 +0200)]
activate a fortran test

4 years agostandard says : "The names attached to opaque objects do not propagate when the objec...
Augustin Degomme [Fri, 26 Jul 2019 12:27:14 +0000 (14:27 +0200)]
standard says : "The names attached to opaque objects do not propagate when the object is duplicated or copied by MPI routines. "

4 years agoappveyor's back
Augustin Degomme [Fri, 26 Jul 2019 08:59:27 +0000 (10:59 +0200)]
appveyor's back

4 years agoMake SG_BARRIER_SERIAL_THREAD visible from C files too
Martin Quinson [Fri, 26 Jul 2019 13:47:34 +0000 (15:47 +0200)]
Make SG_BARRIER_SERIAL_THREAD visible from C files too

Fix https://framagit.org/simgrid/simgrid/issues/34 again, hopefully
properly this time.

4 years agosafety: give some basic logging at verbose level already
Martin Quinson [Wed, 24 Jul 2019 23:42:50 +0000 (01:42 +0200)]
safety: give some basic logging at verbose level already

4 years agoMove 'unit-tests' binary from 'all' target to 'tests'
Martin Quinson [Wed, 24 Jul 2019 23:27:12 +0000 (01:27 +0200)]
Move 'unit-tests' binary from 'all' target to 'tests'

4 years agosmpi: cut some includes
Martin Quinson [Wed, 24 Jul 2019 23:24:40 +0000 (01:24 +0200)]
smpi: cut some includes

4 years agoChange a bit F2C handling
Augustin Degomme [Fri, 26 Jul 2019 08:09:57 +0000 (10:09 +0200)]
Change a bit F2C handling
Store the f2c id in the objects, instead of stupidly browsing the entire map to get it each time
In some cases we had issues with old pointers not being removed from the map, and being reused for other objects, which could cause mismatches.

4 years agodon't referenece missing symbol
Augustin Degomme [Wed, 24 Jul 2019 23:46:48 +0000 (01:46 +0200)]
don't referenece missing symbol

4 years agotake care of some C/Fortran discrepancies
Augustin Degomme [Wed, 24 Jul 2019 23:13:33 +0000 (01:13 +0200)]
take care of some C/Fortran discrepancies

4 years agoactivate some C/Fortran tests
Augustin Degomme [Wed, 24 Jul 2019 21:38:33 +0000 (23:38 +0200)]
activate some C/Fortran tests

4 years agoconvert between Fortran and C MPI_*_NULL handles
Augustin Degomme [Wed, 24 Jul 2019 21:38:03 +0000 (23:38 +0200)]
convert between Fortran and C MPI_*_NULL handles

4 years agodon't test on a cancelled comm
Augustin Degomme [Wed, 24 Jul 2019 21:37:10 +0000 (23:37 +0200)]
don't test on a cancelled comm

4 years agoinline a function
Martin Quinson [Wed, 24 Jul 2019 22:03:53 +0000 (00:03 +0200)]
inline a function

4 years agodoc/mc: improve the replay documentation
Martin Quinson [Wed, 24 Jul 2019 22:02:36 +0000 (00:02 +0200)]
doc/mc: improve the replay documentation

4 years agocosmetic to make the code easier to read
Martin Quinson [Wed, 24 Jul 2019 21:50:55 +0000 (23:50 +0200)]
cosmetic to make the code easier to read

4 years agoDon't whine that smpi/host-speed was not set in MC mode
Martin Quinson [Wed, 24 Jul 2019 21:33:31 +0000 (23:33 +0200)]
Don't whine that smpi/host-speed was not set in MC mode

4 years agoexample s4u-platform-properties: test thehost->get_englobing_zone and diplay its...
Martin Quinson [Wed, 24 Jul 2019 13:19:37 +0000 (15:19 +0200)]
example s4u-platform-properties: test thehost->get_englobing_zone and diplay its properties

4 years agoHost::get_englobing_zone() returns the englobing netzone
Martin Quinson [Wed, 24 Jul 2019 13:18:44 +0000 (15:18 +0200)]
Host::get_englobing_zone() returns the englobing netzone

4 years agodon't swallow the zone properties while parsing the XML
Martin Quinson [Wed, 24 Jul 2019 13:17:33 +0000 (15:17 +0200)]
don't swallow the zone properties while parsing the XML

4 years agotravis: we now use travis
Martin Quinson [Wed, 24 Jul 2019 09:05:09 +0000 (11:05 +0200)]
travis: we now use travis

4 years agotravis: manually use apt-get since the apt addon is borken on bionic
Martin Quinson [Wed, 24 Jul 2019 08:29:55 +0000 (10:29 +0200)]
travis: manually use apt-get since the apt addon is borken on bionic

https://travis-ci.community/t/apt-addon-doesnt-run-in-bionic/4061/2

4 years agotravis: cleanups and simplify our use of the apt addon
Martin Quinson [Wed, 24 Jul 2019 08:04:57 +0000 (10:04 +0200)]
travis: cleanups and simplify our use of the apt addon

- Remove some extraneous parameters to the apt addon since it does not
  seem to start since I switched to bionic. The doc says that some
  features were removed in that addon, but I'm not sure of whether it
  should affect us given our config. Let's see if it's better this way.
- Kill dead code about lua. 5.3 is part of Debian since a very long time
- Reindent the build rules for linux and osx (no change)

4 years agofix the link of smpireplaymain on alpha and ia64
Martin Quinson [Wed, 24 Jul 2019 07:10:35 +0000 (09:10 +0200)]
fix the link of smpireplaymain on alpha and ia64

4 years agotravis: use the bionic image
Martin Quinson [Tue, 23 Jul 2019 21:48:05 +0000 (23:48 +0200)]
travis: use the bionic image

4 years agoChange -fpic to -fPIC as the former is not always sufficient
Martin Quinson [Thu, 18 Jul 2019 15:43:18 +0000 (17:43 +0200)]
Change -fpic to -fPIC as the former is not always sufficient

4 years agodoc: fix the list of make targets
Martin Quinson [Thu, 18 Jul 2019 15:40:55 +0000 (17:40 +0200)]
doc: fix the list of make targets

4 years agoadd some grey
Augustin Degomme [Mon, 22 Jul 2019 14:09:52 +0000 (16:09 +0200)]
add some grey

4 years agoadd some color to project description
Augustin Degomme [Mon, 22 Jul 2019 13:44:29 +0000 (15:44 +0200)]
add some color to project description

4 years agobetter handling of some datatypes in fortran
Augustin Degomme [Mon, 22 Jul 2019 11:43:05 +0000 (13:43 +0200)]
better handling of some datatypes in fortran

4 years agoMerge branch 'master' into 'master'
Augustin Degomme [Sun, 21 Jul 2019 20:11:22 +0000 (22:11 +0200)]
Merge branch 'master' into 'master'

MC: complete workaround in the error msg seen on modern systems

See merge request simgrid/simgrid!13

4 years agoMC: complete workaround in the error msg seen on modern systems
Samuel Thibault [Sun, 21 Jul 2019 18:46:30 +0000 (20:46 +0200)]
MC: complete workaround in the error msg seen on modern systems

Ref #35

4 years agothat can be a bit too much for our poor ci vms
Augustin Degomme [Thu, 18 Jul 2019 23:20:19 +0000 (01:20 +0200)]
that can be a bit too much for our poor ci vms

4 years agocmake 3.15 changed its boost detection message
Augustin Degomme [Thu, 18 Jul 2019 22:14:16 +0000 (00:14 +0200)]
cmake 3.15 changed its boost detection message

4 years agosomehow mpich forgot to activate these tests
Augustin Degomme [Thu, 18 Jul 2019 21:36:12 +0000 (23:36 +0200)]
somehow mpich forgot to activate these tests

4 years agoActivate some OP tests, and add some optional (stupid) operations
Augustin Degomme [Thu, 18 Jul 2019 21:26:59 +0000 (23:26 +0200)]
Activate some OP tests, and add some optional (stupid) operations

4 years agoOnly wait on active requests (not null and not finished)
Augustin Degomme [Thu, 18 Jul 2019 16:25:56 +0000 (18:25 +0200)]
Only wait on active requests (not null and not finished)

4 years agofinally activate all weird modes of allpairf(90)
Augustin Degomme [Thu, 18 Jul 2019 15:04:18 +0000 (17:04 +0200)]
finally activate all weird modes of allpairf(90)

4 years agoFix the fix of the fix of testsome.
Augustin Degomme [Thu, 18 Jul 2019 15:03:56 +0000 (17:03 +0200)]
Fix the fix of the fix of testsome.

4 years agotestsome and waitsome in fortran need to fortranize indices.
Augustin Degomme [Thu, 18 Jul 2019 12:34:23 +0000 (14:34 +0200)]
testsome and waitsome in fortran need to fortranize indices.

4 years agoStatus must be given for a detached request. But not for a finished one.
Augustin Degomme [Thu, 18 Jul 2019 12:26:38 +0000 (14:26 +0200)]
Status must be given for a detached request. But not for a finished one.

4 years agothese can now be activated
Augustin Degomme [Wed, 17 Jul 2019 20:57:44 +0000 (22:57 +0200)]
these can now be activated

4 years agoreduce some tests duration as comm_create takes longer now (comms)
Augustin Degomme [Wed, 17 Jul 2019 20:53:58 +0000 (22:53 +0200)]
reduce some tests duration as comm_create takes longer now (comms)

4 years agoHave the communicators created together share a unique ID.
Augustin Degomme [Wed, 17 Jul 2019 20:53:20 +0000 (22:53 +0200)]
Have the communicators created together share a unique ID.
This allows to avoid matching communications meant for another communicator.
This was potentially causing very nasty bugs and was totally overlooked in SMPI.

4 years agoAdd simple support for MPI_Rsend, MPI_Rsend_init.
Arnaud Giersch [Wed, 17 Jul 2019 09:03:35 +0000 (11:03 +0200)]
Add simple support for MPI_Rsend, MPI_Rsend_init.

4 years agobe compatible with the standard of cmake+MPI
Martin Quinson [Tue, 16 Jul 2019 23:18:00 +0000 (01:18 +0200)]
be compatible with the standard of cmake+MPI

(even if that combination seems somewhat unholy :)

4 years agoAdd support for MPI_Irsend
Martin Quinson [Tue, 16 Jul 2019 21:05:19 +0000 (23:05 +0200)]
Add support for MPI_Irsend

4 years agoCosmetics.
Arnaud Giersch [Tue, 16 Jul 2019 08:58:08 +0000 (10:58 +0200)]
Cosmetics.

4 years agoMC: provide a workaround in the error msg seen on modern systems
Martin Quinson [Sun, 14 Jul 2019 22:15:47 +0000 (00:15 +0200)]
MC: provide a workaround in the error msg seen on modern systems

Fix https://framagit.org/simgrid/simgrid/issues/35

4 years agoAdd a missing build-dep of the website
Martin Quinson [Sun, 14 Jul 2019 20:19:11 +0000 (22:19 +0200)]
Add a missing build-dep of the website

4 years agoIntroduce SG_BARRIER_SERIAL_THREAD
Martin Quinson [Sat, 13 Jul 2019 21:42:00 +0000 (23:42 +0200)]
Introduce SG_BARRIER_SERIAL_THREAD

Fix https://framagit.org/simgrid/simgrid/issues/34

4 years ago[sonar] Preserve const qualifier with cast.
Arnaud Giersch [Fri, 12 Jul 2019 05:40:03 +0000 (07:40 +0200)]
[sonar] Preserve const qualifier with cast.

4 years ago[sonar] More dead code.
Arnaud Giersch [Fri, 12 Jul 2019 05:35:47 +0000 (07:35 +0200)]
[sonar] More dead code.

4 years agoUseless casts.
Arnaud Giersch [Thu, 11 Jul 2019 21:34:36 +0000 (23:34 +0200)]
Useless casts.

4 years agomc: better way to check if address is on heap.
Arnaud Giersch [Thu, 11 Jul 2019 21:24:19 +0000 (23:24 +0200)]
mc: better way to check if address is on heap.

4 years agoDead code.
Arnaud Giersch [Thu, 11 Jul 2019 20:54:04 +0000 (22:54 +0200)]
Dead code.

4 years agointroducing the new <disk> tag
Martin Quinson [Thu, 11 Jul 2019 21:39:49 +0000 (23:39 +0200)]
introducing the new <disk> tag

4 years agoadd Host::send_to and sg_send_to
Frederic Suter [Thu, 11 Jul 2019 21:38:31 +0000 (23:38 +0200)]
add Host::send_to and sg_send_to
* mimics a sort of RMA between two hosts (with a parallel task within)
* refactor file system plugin
* fix https://framagit.org/simgrid/simgrid/issues/36

4 years agoprefer to fail stop instead of logging
Martin Quinson [Thu, 11 Jul 2019 20:33:37 +0000 (22:33 +0200)]
prefer to fail stop instead of logging

4 years agodocker/build-deps: install the website dependencies
Martin Quinson [Thu, 11 Jul 2019 13:24:46 +0000 (15:24 +0200)]
docker/build-deps: install the website dependencies

4 years agofx
Arnaud Giersch [Thu, 11 Jul 2019 15:39:36 +0000 (17:39 +0200)]
fx

4 years agomc/compare: cleanup++
Arnaud Giersch [Thu, 11 Jul 2019 15:28:49 +0000 (17:28 +0200)]
mc/compare: cleanup++