Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
2 years agomake simix_global->maestro_ private
SUTER Frederic [Wed, 26 May 2021 14:39:49 +0000 (16:39 +0200)]
make simix_global->maestro_ private

2 years agoCheck types matching in MPI communications.
Augustin Degomme [Wed, 26 May 2021 14:49:56 +0000 (16:49 +0200)]
Check types matching in MPI communications.
should work with basic ones and duplicated ones.
todo: derived types matching, which is more tricky.

2 years agomark these as derived datatypes, and don't divide by 0 if possible
Augustin Degomme [Wed, 26 May 2021 14:48:09 +0000 (16:48 +0200)]
mark these as derived datatypes, and don't divide by 0 if possible

2 years agokeep track of which datatype was duplicated, to be able to match with it later
Augustin Degomme [Wed, 26 May 2021 14:47:22 +0000 (16:47 +0200)]
keep track of which datatype was duplicated, to be able to match with it later

2 years agonothing old here, just the type ..
Augustin Degomme [Wed, 26 May 2021 09:44:45 +0000 (11:44 +0200)]
nothing old here, just the type ..

2 years agoprepare transition of context_factory: make it private
SUTER Frederic [Wed, 26 May 2021 10:37:29 +0000 (12:37 +0200)]
prepare transition of context_factory: make it private

2 years agoMinor simplification in CM02::communicate
Bruno Donassolo [Wed, 26 May 2021 10:17:33 +0000 (12:17 +0200)]
Minor simplification in CM02::communicate

Don't need a function in NetworkModel for an "if" used only in CM02

2 years agoFix potential mem leak seen by scan-build.
Arnaud Giersch [Wed, 26 May 2021 07:30:23 +0000 (09:30 +0200)]
Fix potential mem leak seen by scan-build.

Note that ret should not normally be different than MPI_SUCCESS in the other case.

2 years agoDon't create mailbox before engine is turned on.
Arnaud Giersch [Tue, 25 May 2021 15:46:43 +0000 (17:46 +0200)]
Don't create mailbox before engine is turned on.

2 years agoLookup only once on mailbox creation.
Arnaud Giersch [Tue, 25 May 2021 14:58:42 +0000 (16:58 +0200)]
Lookup only once on mailbox creation.

2 years agoMisc sonar smells.
Arnaud Giersch [Tue, 25 May 2021 14:21:20 +0000 (16:21 +0200)]
Misc sonar smells.

2 years agovector::back() is good enough + assert for scan_build.
Arnaud Giersch [Tue, 25 May 2021 14:17:20 +0000 (16:17 +0200)]
vector::back() is good enough + assert for scan_build.

2 years ago[cppcheck] Don't let fields uninitialized.
Arnaud Giersch [Thu, 6 May 2021 18:21:59 +0000 (20:21 +0200)]
[cppcheck] Don't let fields uninitialized.

2 years ago[sonar] Extract assignments from expressions.
Arnaud Giersch [Thu, 6 May 2021 13:49:55 +0000 (15:49 +0200)]
[sonar] Extract assignments from expressions.

2 years agoPlug remaining leaks in mpich3-test/f77/attr.
Arnaud Giersch [Sun, 23 May 2021 22:20:38 +0000 (00:20 +0200)]
Plug remaining leaks in mpich3-test/f77/attr.

2 years agoPlug memleaks with Fortran bindings.
Arnaud Giersch [Sun, 23 May 2021 20:40:39 +0000 (22:40 +0200)]
Plug memleaks with Fortran bindings.

2 years agoReview allocation of MPI attributes with Fortran bindings.
Arnaud Giersch [Sun, 23 May 2021 20:26:58 +0000 (22:26 +0200)]
Review allocation of MPI attributes with Fortran bindings.

2 years agoFix refcounting of MPI keyvals when keyval_free is called twice.
Arnaud Giersch [Tue, 25 May 2021 12:33:56 +0000 (14:33 +0200)]
Fix refcounting of MPI keyvals when keyval_free is called twice.

2 years agoSimplify a bit Keyval::attr_delete.
Arnaud Giersch [Tue, 25 May 2021 12:23:59 +0000 (14:23 +0200)]
Simplify a bit Keyval::attr_delete.

2 years agoDon't increase refcount when existing elem is overwritten.
Arnaud Giersch [Sat, 22 May 2021 20:15:05 +0000 (22:15 +0200)]
Don't increase refcount when existing elem is overwritten.

2 years agoSave an indirection with smpi keyvals.
Arnaud Giersch [Sat, 22 May 2021 19:25:00 +0000 (21:25 +0200)]
Save an indirection with smpi keyvals.

2 years agorevalidate tesh
SUTER Frederic [Tue, 25 May 2021 14:50:11 +0000 (16:50 +0200)]
revalidate tesh

2 years agoremove cruft [ci-skip]
SUTER Frederic [Tue, 25 May 2021 14:28:56 +0000 (16:28 +0200)]
remove cruft [ci-skip]

2 years agoChange way Mailboxes are create, stored, and destroyed
SUTER Frederic [Tue, 25 May 2021 14:13:40 +0000 (16:13 +0200)]
Change way Mailboxes are create, stored, and destroyed

- keep the global map in EngineImpl (not as a static global in
  MailboxImpl.cpp)
- Delete mailboxes in ~EngineImpl() and get rid of SIMIX_mailbox_exit
- replace MailboxImpl::by_name_or_null and
  MailboxImpl::by_name_or_create by Engine::mailbox_by_name_or_create
  + better match with what is done for hosts, links, and actors
  + Mailbox::by_name cause two searchs in the map. One to check if
    name already points to a mailbox (by_name_or_null) and if not
    search again before creating a new mailbox. As there is no
    Mailbox::by_name_or_null, just keep the latter.
- Revalidate a bunch of tests (message ordering mostly)

2 years agodelete Timer when shutting down EngineImpl
SUTER Frederic [Tue, 25 May 2021 13:17:58 +0000 (15:17 +0200)]
delete Timer when shutting down EngineImpl

2 years agoContinue to migrate contents of simix_global to EngineImpl
SUTER Frederic [Tue, 25 May 2021 12:03:10 +0000 (14:03 +0200)]
Continue to migrate contents of simix_global to EngineImpl

thx @agiersch for unblocking this commit with the usual magic!

2 years agoPrefer using emplace() to insert() for smpi keyvals/attributes.
Arnaud Giersch [Sat, 22 May 2021 11:33:17 +0000 (13:33 +0200)]
Prefer using emplace() to insert() for smpi keyvals/attributes.

2 years agoMake smpi::Keyval::attribute() return a reference.
Arnaud Giersch [Sat, 22 May 2021 11:20:02 +0000 (13:20 +0200)]
Make smpi::Keyval::attribute() return a reference.

2 years agoNo need to test for attributes()->empty().
Arnaud Giersch [Sun, 23 May 2021 12:41:53 +0000 (14:41 +0200)]
No need to test for attributes()->empty().

2 years agoFix parameter names.
Arnaud Giersch [Sun, 23 May 2021 20:40:22 +0000 (22:40 +0200)]
Fix parameter names.

2 years agoCoding style: ! -> 'not'.
Arnaud Giersch [Sat, 22 May 2021 16:22:43 +0000 (18:22 +0200)]
Coding style: ! -> 'not'.

2 years agoUpdate filter line for recent versions of Asan.
Arnaud Giersch [Sun, 23 May 2021 22:39:33 +0000 (00:39 +0200)]
Update filter line for recent versions of Asan.

2 years agoDefine variables outside of header file.
Arnaud Giersch [Thu, 20 May 2021 08:37:48 +0000 (10:37 +0200)]
Define variables outside of header file.

2 years ago[sonar] Unused parameter.
Arnaud Giersch [Thu, 20 May 2021 08:28:36 +0000 (10:28 +0200)]
[sonar] Unused parameter.

2 years ago[sonar] Const/explicit methods.
Arnaud Giersch [Thu, 20 May 2021 08:23:58 +0000 (10:23 +0200)]
[sonar] Const/explicit methods.

2 years agoPlease sonar
Bruno Donassolo [Tue, 25 May 2021 08:35:34 +0000 (10:35 +0200)]
Please sonar

2 years agoAdjust test timing
Bruno Donassolo [Thu, 20 May 2021 15:13:59 +0000 (17:13 +0200)]
Adjust test timing

Minor changement in rounding up.
No real changement in timing (manually verified).

2 years agoSingle get_bandwidth_constraint function.
Bruno Donassolo [Thu, 20 May 2021 15:07:52 +0000 (17:07 +0200)]
Single get_bandwidth_constraint function.

Unify behavior of get_bandwidth_constraint function.

Note: Possible side-effect in SMPI communications with user defined
rate. Do not scale the user rate with bandwidth factor.

No impact on tests

2 years agoRefactor of NetworkCm02Model::communicate
Bruno Donassolo [Wed, 19 May 2021 18:55:39 +0000 (20:55 +0200)]
Refactor of NetworkCm02Model::communicate

Divide and conquer.
Reorganize code.
Cosmetics.

2 years agoDynamic factors: implement and test
Bruno Donassolo [Mon, 17 May 2021 17:26:18 +0000 (19:26 +0200)]
Dynamic factors: implement and test

Fully implements the dynamic factors through the NetworkModelIntf API.

Added an example showing its usage.

Added UT and doc.

2 years agoNetworkModelIntf: Interface to dynamic factors
Bruno Donassolo [Fri, 26 Mar 2021 17:27:38 +0000 (18:27 +0100)]
NetworkModelIntf: Interface to dynamic factors

Adding API to set user callbacks for bandwidth and network factors.
Valid for CM02 models and its childrens (SMPI, IB, etc).

Not fully working yet.

2 years agoGet netzones traversed by a route
Bruno Donassolo [Thu, 13 May 2021 16:41:26 +0000 (18:41 +0200)]
Get netzones traversed by a route

Preparing field to implement dynamic bandwidth and latency factors

2 years agomigrate actors_to_run and actors_that_ran to EngineImpl
SUTER Frederic [Fri, 21 May 2021 13:38:56 +0000 (15:38 +0200)]
migrate actors_to_run and actors_that_ran to EngineImpl

2 years agoSMPI should not eat up all exceptions in wait/waitany simcalls silently
Augustin Degomme [Fri, 21 May 2021 10:37:39 +0000 (12:37 +0200)]
SMPI should not eat up all exceptions in wait/waitany simcalls silently
It only deals with cancel ones

2 years agotypo --
Augustin Degomme [Fri, 21 May 2021 10:36:15 +0000 (12:36 +0200)]
typo --

2 years agoprocess -> actor
SUTER Frederic [Fri, 21 May 2021 07:46:15 +0000 (09:46 +0200)]
process -> actor

2 years agofix changelog [ci-skip]
Martin Quinson [Fri, 21 May 2021 08:12:08 +0000 (10:12 +0200)]
fix changelog [ci-skip]

2 years agoAdd a word to the tutorial for older versions of SimGrid
Martin Quinson [Fri, 21 May 2021 08:03:19 +0000 (10:03 +0200)]
Add a word to the tutorial for older versions of SimGrid

Closes https://framagit.org/simgrid/simgrid/-/issues/69

2 years ago [sonar] const
SUTER Frederic [Thu, 20 May 2021 07:30:18 +0000 (09:30 +0200)]
 [sonar] const

2 years ago[sonar] Don't mix public and private data members
SUTER Frederic [Thu, 20 May 2021 07:21:37 +0000 (09:21 +0200)]
[sonar] Don't mix public and private data members

2 years agointroduce a new plugin: stock implementation of a Producer-Consumer with a monitor
SUTER Frederic [Wed, 19 May 2021 16:27:18 +0000 (18:27 +0200)]
introduce a new plugin: stock implementation of a Producer-Consumer with a monitor

2 years agoTypos.
Arnaud Giersch [Wed, 19 May 2021 10:52:00 +0000 (12:52 +0200)]
Typos.

2 years agomigrate daemons from simix::Global to kernel::EngineImpl
SUTER Frederic [Mon, 17 May 2021 18:05:49 +0000 (20:05 +0200)]
migrate daemons from simix::Global to kernel::EngineImpl

go from a public vector to a private set (order doesn't matter) in the
process.

2 years agomigrate execute_tasks from simix::Global to kernel::EngineImpl
SUTER Frederic [Mon, 17 May 2021 09:33:28 +0000 (11:33 +0200)]
migrate execute_tasks from simix::Global to kernel::EngineImpl

2 years agomigrate wake_all_waiting_actors from simix::Global to kernel::EngineImpl
SUTER Frederic [Mon, 17 May 2021 08:33:14 +0000 (10:33 +0200)]
migrate wake_all_waiting_actors from simix::Global to kernel::EngineImpl

2 years agoSIMIX_run becomes EngineImpl::run
SUTER Frederic [Mon, 17 May 2021 08:23:13 +0000 (10:23 +0200)]
SIMIX_run becomes EngineImpl::run

2 years agomove another function out of simix + private field
SUTER Frederic [Sun, 16 May 2021 15:12:34 +0000 (17:12 +0200)]
move another function out of simix + private field

2 years agoMore informative error message when the user does not provide a main() to smpirun...
Martin Quinson [Mon, 17 May 2021 07:33:06 +0000 (09:33 +0200)]
More informative error message when the user does not provide a main() to smpirun [ci-skip]

2 years agomove kernel timers from simix:: to kernel::timer::
SUTER Frederic [Sun, 16 May 2021 12:51:27 +0000 (14:51 +0200)]
move kernel timers from simix:: to kernel::timer::

2 years agoUse correct types for temporary variables.
Arnaud Giersch [Wed, 12 May 2021 10:46:41 +0000 (12:46 +0200)]
Use correct types for temporary variables.

2 years agoCosmetics.
Arnaud Giersch [Wed, 12 May 2021 09:48:38 +0000 (11:48 +0200)]
Cosmetics.

(reduce length of lambda, for sonar).

2 years agoChecking access before open is useless (fix race condition).
Arnaud Giersch [Wed, 12 May 2021 08:09:36 +0000 (10:09 +0200)]
Checking access before open is useless (fix race condition).

2 years agoaccept functions with parameters in Actor::start
SUTER Frederic [Wed, 12 May 2021 10:07:45 +0000 (12:07 +0200)]
accept functions with parameters in Actor::start

2 years agoMinor sonar related changes
Bruno Donassolo [Wed, 12 May 2021 09:11:06 +0000 (11:11 +0200)]
Minor sonar related changes

2 years agoallow to get the number of queued communications in a Mailbox
SUTER Frederic [Tue, 11 May 2021 16:02:54 +0000 (18:02 +0200)]
allow to get the number of queued communications in a Mailbox

2 years agoSeal objects at Engine::run
Bruno Donassolo [Tue, 11 May 2021 14:34:16 +0000 (16:34 +0200)]
Seal objects at Engine::run

Seal, recursively, netzones, hosts, links and disks.
Some extra checks when creating and sealing resources.
Add test for this case.

2 years agoSome cleanup around model description tables.
Arnaud Giersch [Tue, 11 May 2021 12:04:34 +0000 (14:04 +0200)]
Some cleanup around model description tables.

* save a new/delete for plugin descriptions;
* use sdt::function for model_init_preparse;
* return a pointer from find_model_description().

2 years agoConst.
Arnaud Giersch [Tue, 11 May 2021 08:05:53 +0000 (10:05 +0200)]
Const.

2 years agoFix lua compilation
Bruno Donassolo [Mon, 10 May 2021 16:17:22 +0000 (18:17 +0200)]
Fix lua compilation

Get code back to sg_platf since it's used by lua_platf.cpp

2 years agoFix memleak.
Bruno Donassolo [Mon, 10 May 2021 15:11:46 +0000 (17:11 +0200)]
Fix memleak.

Thanks @agiersch

2 years agoWorkaround to unblock.
Bruno Donassolo [Mon, 10 May 2021 14:38:05 +0000 (16:38 +0200)]
Workaround to unblock.

Seems a gcc-11 problem anyway

2 years agoFix NS-3 tests
Bruno Donassolo [Mon, 10 May 2021 14:16:42 +0000 (16:16 +0200)]
Fix NS-3 tests

Since cluster zones are now based on star, we cannot keep the checks

2 years agoFix example: seal zone
Bruno Donassolo [Mon, 10 May 2021 12:24:40 +0000 (14:24 +0200)]
Fix example: seal zone

2 years agoAdjust tests after changes in cluster tag
Bruno Donassolo [Mon, 10 May 2021 10:43:53 +0000 (12:43 +0200)]
Adjust tests after changes in cluster tag

Minor changes in graphicator and flatifier due to internals of StarZone
compared to old ClusterZone

No timing changes in tests.

2 years agoClusterZone placeholder and kill some old code
Bruno Donassolo [Fri, 7 May 2021 18:50:57 +0000 (20:50 +0200)]
ClusterZone placeholder and kill some old code

Put the old ClusterZone class as a placeholder for other "Cluster"
classes.

Keep the same behavior of Engine::get_filtered_netzones for wrench
projects.

The old ClusterZone is now BaseCluster and it's used to implement the
"complex" Clusters (Torus, DragonFly and Fat-Tree).

Kill old code that doesn't make sense for these netzones

2 years agoCluster with StarZones
Bruno Donassolo [Wed, 5 May 2021 16:53:08 +0000 (18:53 +0200)]
Cluster with StarZones

Finish cleaning-up of old cluster zones.
Implements <cluster> and <zone routing="cluster"> with StarZones.

Keep old ClusterZone as base for Torus, Dragonfly and Fat-Tree.

2 years agoFactor common code.
Arnaud Giersch [Mon, 10 May 2021 09:40:55 +0000 (11:40 +0200)]
Factor common code.

2 years agoReduce code duplication.
Arnaud Giersch [Mon, 10 May 2021 09:28:08 +0000 (11:28 +0200)]
Reduce code duplication.

2 years ago[sonar] Prefer empty() to check for emptyness.
Arnaud Giersch [Sun, 9 May 2021 12:39:58 +0000 (14:39 +0200)]
[sonar] Prefer empty() to check for emptyness.

2 years ago[sonar] Minor simplifications.
Arnaud Giersch [Sat, 8 May 2021 12:00:38 +0000 (14:00 +0200)]
[sonar] Minor simplifications.

2 years ago[cppcheck] Pass parameters by const reference.
Arnaud Giersch [Thu, 6 May 2021 13:44:22 +0000 (15:44 +0200)]
[cppcheck] Pass parameters by const reference.

2 years ago[codefactor] Cosmetics.
Arnaud Giersch [Thu, 6 May 2021 13:38:43 +0000 (15:38 +0200)]
[codefactor] Cosmetics.

2 years agoRename kernel::resource:Cpu to CpuImpl
SUTER Frederic [Sun, 9 May 2021 14:41:39 +0000 (16:41 +0200)]
Rename kernel::resource:Cpu to CpuImpl

2 years agouse .data() instead of &v[0] to avoid annoying analyzers.
Augustin Degomme [Fri, 7 May 2021 21:49:48 +0000 (23:49 +0200)]
use .data() instead of &v[0] to avoid annoying analyzers.

2 years agoRevert "Try to activate -Wsugests-override in GNU compiler, as it may help if it...
Martin Quinson [Fri, 7 May 2021 22:16:11 +0000 (00:16 +0200)]
Revert "Try to activate -Wsugests-override in GNU compiler, as it may help if it works"

This fails for old versions of GCC, which could be worked around, but
also on ns-3 headers, which is harder to fix properly.

This reverts commit 694a2b171a6e03d42d5068bc6ba6c353cb0e34e3.

2 years agoTry to activate -Wsugests-override in GNU compiler, as it may help if it works
Martin Quinson [Fri, 7 May 2021 22:01:35 +0000 (00:01 +0200)]
Try to activate -Wsugests-override in GNU compiler, as it may help if it works

2 years agoClose those bugs in the Changelog [ci-skip]
Martin Quinson [Wed, 5 May 2021 18:37:24 +0000 (20:37 +0200)]
Close those bugs in the Changelog [ci-skip]

2 years agonon blocking collectives : array->vector
Augustin Degomme [Fri, 7 May 2021 16:14:52 +0000 (18:14 +0200)]
non blocking collectives : array->vector

2 years agoFix previous fix.
Augustin Degomme [Fri, 7 May 2021 13:45:16 +0000 (15:45 +0200)]
Fix previous fix.
It was turning test into wait for non blocking collectives, which is not what we wanted.

2 years agoFix build with -Werror=undef.
Arnaud Giersch [Fri, 7 May 2021 12:08:43 +0000 (14:08 +0200)]
Fix build with -Werror=undef.

2 years agoAllow an actor to destroy its own VM.
Arnaud Giersch [Fri, 7 May 2021 11:39:11 +0000 (13:39 +0200)]
Allow an actor to destroy its own VM.

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

2 years agoAdd test for VM (self) destruction.
Arnaud Giersch [Fri, 7 May 2021 09:38:13 +0000 (11:38 +0200)]
Add test for VM (self) destruction.

Adapted from https://github.com/simgrid/simgrid/issues/322

2 years agoDistcheck.
Arnaud Giersch [Fri, 7 May 2021 11:28:40 +0000 (13:28 +0200)]
Distcheck.

2 years agoactivate the last nonblocking test in mpich3 suite, as now we should pass it.. probably.
Augustin Degomme [Fri, 7 May 2021 10:20:16 +0000 (12:20 +0200)]
activate the last nonblocking test in mpich3 suite, as now we should pass it.. probably.

2 years agoProperly terminate non blocking collective requests in all cases (mpi_test/testall...
Augustin Degomme [Fri, 7 May 2021 10:17:54 +0000 (12:17 +0200)]
Properly terminate non blocking collective requests in all cases (mpi_test/testall/testany/testsome/waitsome/waitany).
Also use flags to identify non blocking collectivre requests instead of the size of an array (which should be turned in a vector soon)
Fix one issue reported in #67

2 years agoChecks concerning StarZone and NS3
Bruno Donassolo [Fri, 7 May 2021 09:33:26 +0000 (11:33 +0200)]
Checks concerning StarZone and NS3

2 years agoReduce scope for variable.
Arnaud Giersch [Thu, 6 May 2021 21:38:41 +0000 (23:38 +0200)]
Reduce scope for variable.

2 years agoCapitalize enum class.
Arnaud Giersch [Thu, 6 May 2021 21:38:41 +0000 (23:38 +0200)]
Capitalize enum class.

2 years agoCannot destroy iface before impl.
Arnaud Giersch [Thu, 6 May 2021 12:29:52 +0000 (14:29 +0200)]
Cannot destroy iface before impl.

HostImpl::destroy() calls s4u::Host::on_destruction(*this->get_iface());

Move bogus XBT_DEBUG instead.

2 years agoFix use-after-free with VirtualMachine::destroy().
Arnaud Giersch [Thu, 6 May 2021 11:41:41 +0000 (13:41 +0200)]
Fix use-after-free with VirtualMachine::destroy().

Postpone destruction of VirtualMachineImpl, and do it in kernel mode.