Arnaud Giersch [Thu, 6 May 2021 13:49:55 +0000 (15:49 +0200)]
[sonar] Extract assignments from expressions.
Arnaud Giersch [Sun, 23 May 2021 22:20:38 +0000 (00:20 +0200)]
Plug remaining leaks in mpich3-test/f77/attr.
Arnaud Giersch [Sun, 23 May 2021 20:40:39 +0000 (22:40 +0200)]
Plug memleaks with Fortran bindings.
Arnaud Giersch [Sun, 23 May 2021 20:26:58 +0000 (22:26 +0200)]
Review allocation of MPI attributes with Fortran bindings.
Arnaud Giersch [Tue, 25 May 2021 12:33:56 +0000 (14:33 +0200)]
Fix refcounting of MPI keyvals when keyval_free is called twice.
Arnaud Giersch [Tue, 25 May 2021 12:23:59 +0000 (14:23 +0200)]
Simplify a bit Keyval::attr_delete.
Arnaud Giersch [Sat, 22 May 2021 20:15:05 +0000 (22:15 +0200)]
Don't increase refcount when existing elem is overwritten.
Arnaud Giersch [Sat, 22 May 2021 19:25:00 +0000 (21:25 +0200)]
Save an indirection with smpi keyvals.
SUTER Frederic [Tue, 25 May 2021 14:50:11 +0000 (16:50 +0200)]
revalidate tesh
SUTER Frederic [Tue, 25 May 2021 14:28:56 +0000 (16:28 +0200)]
remove cruft [ci-skip]
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)
SUTER Frederic [Tue, 25 May 2021 13:17:58 +0000 (15:17 +0200)]
delete Timer when shutting down 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!
Arnaud Giersch [Sat, 22 May 2021 11:33:17 +0000 (13:33 +0200)]
Prefer using emplace() to insert() for smpi keyvals/attributes.
Arnaud Giersch [Sat, 22 May 2021 11:20:02 +0000 (13:20 +0200)]
Make smpi::Keyval::attribute() return a reference.
Arnaud Giersch [Sun, 23 May 2021 12:41:53 +0000 (14:41 +0200)]
No need to test for attributes()->empty().
Arnaud Giersch [Sun, 23 May 2021 20:40:22 +0000 (22:40 +0200)]
Fix parameter names.
Arnaud Giersch [Sat, 22 May 2021 16:22:43 +0000 (18:22 +0200)]
Coding style: ! -> 'not'.
Arnaud Giersch [Sun, 23 May 2021 22:39:33 +0000 (00:39 +0200)]
Update filter line for recent versions of Asan.
Arnaud Giersch [Thu, 20 May 2021 08:37:48 +0000 (10:37 +0200)]
Define variables outside of header file.
Arnaud Giersch [Thu, 20 May 2021 08:28:36 +0000 (10:28 +0200)]
[sonar] Unused parameter.
Arnaud Giersch [Thu, 20 May 2021 08:23:58 +0000 (10:23 +0200)]
[sonar] Const/explicit methods.
Bruno Donassolo [Tue, 25 May 2021 08:35:34 +0000 (10:35 +0200)]
Please sonar
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).
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
Bruno Donassolo [Wed, 19 May 2021 18:55:39 +0000 (20:55 +0200)]
Refactor of NetworkCm02Model::communicate
Divide and conquer.
Reorganize code.
Cosmetics.
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.
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.
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
SUTER Frederic [Fri, 21 May 2021 13:38:56 +0000 (15:38 +0200)]
migrate actors_to_run and actors_that_ran to EngineImpl
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
Augustin Degomme [Fri, 21 May 2021 10:36:15 +0000 (12:36 +0200)]
typo --
SUTER Frederic [Fri, 21 May 2021 07:46:15 +0000 (09:46 +0200)]
process -> actor
Martin Quinson [Fri, 21 May 2021 08:12:08 +0000 (10:12 +0200)]
fix changelog [ci-skip]
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
SUTER Frederic [Thu, 20 May 2021 07:30:18 +0000 (09:30 +0200)]
[sonar] const
SUTER Frederic [Thu, 20 May 2021 07:21:37 +0000 (09:21 +0200)]
[sonar] Don't mix public and private data members
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
Arnaud Giersch [Wed, 19 May 2021 10:52:00 +0000 (12:52 +0200)]
Typos.
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.
SUTER Frederic [Mon, 17 May 2021 09:33:28 +0000 (11:33 +0200)]
migrate execute_tasks 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
SUTER Frederic [Mon, 17 May 2021 08:23:13 +0000 (10:23 +0200)]
SIMIX_run becomes EngineImpl::run
SUTER Frederic [Sun, 16 May 2021 15:12:34 +0000 (17:12 +0200)]
move another function out of simix + private field
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]
SUTER Frederic [Sun, 16 May 2021 12:51:27 +0000 (14:51 +0200)]
move kernel timers from simix:: to kernel::timer::
Arnaud Giersch [Wed, 12 May 2021 10:46:41 +0000 (12:46 +0200)]
Use correct types for temporary variables.
Arnaud Giersch [Wed, 12 May 2021 09:48:38 +0000 (11:48 +0200)]
Cosmetics.
(reduce length of lambda, for sonar).
Arnaud Giersch [Wed, 12 May 2021 08:09:36 +0000 (10:09 +0200)]
Checking access before open is useless (fix race condition).
SUTER Frederic [Wed, 12 May 2021 10:07:45 +0000 (12:07 +0200)]
accept functions with parameters in Actor::start
Bruno Donassolo [Wed, 12 May 2021 09:11:06 +0000 (11:11 +0200)]
Minor sonar related changes
SUTER Frederic [Tue, 11 May 2021 16:02:54 +0000 (18:02 +0200)]
allow to get the number of queued communications in a Mailbox
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.
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().
Arnaud Giersch [Tue, 11 May 2021 08:05:53 +0000 (10:05 +0200)]
Const.
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
Bruno Donassolo [Mon, 10 May 2021 15:11:46 +0000 (17:11 +0200)]
Fix memleak.
Thanks @agiersch
Bruno Donassolo [Mon, 10 May 2021 14:38:05 +0000 (16:38 +0200)]
Workaround to unblock.
Seems a gcc-11 problem anyway
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
Bruno Donassolo [Mon, 10 May 2021 12:24:40 +0000 (14:24 +0200)]
Fix example: seal zone
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.
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
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.
Arnaud Giersch [Mon, 10 May 2021 09:40:55 +0000 (11:40 +0200)]
Factor common code.
Arnaud Giersch [Mon, 10 May 2021 09:28:08 +0000 (11:28 +0200)]
Reduce code duplication.
Arnaud Giersch [Sun, 9 May 2021 12:39:58 +0000 (14:39 +0200)]
[sonar] Prefer empty() to check for emptyness.
Arnaud Giersch [Sat, 8 May 2021 12:00:38 +0000 (14:00 +0200)]
[sonar] Minor simplifications.
Arnaud Giersch [Thu, 6 May 2021 13:44:22 +0000 (15:44 +0200)]
[cppcheck] Pass parameters by const reference.
Arnaud Giersch [Thu, 6 May 2021 13:38:43 +0000 (15:38 +0200)]
[codefactor] Cosmetics.
SUTER Frederic [Sun, 9 May 2021 14:41:39 +0000 (16:41 +0200)]
Rename kernel::resource:Cpu to CpuImpl
Augustin Degomme [Fri, 7 May 2021 21:49:48 +0000 (23:49 +0200)]
use .data() instead of &v[0] to avoid annoying analyzers.
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.
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
Martin Quinson [Wed, 5 May 2021 18:37:24 +0000 (20:37 +0200)]
Close those bugs in the Changelog [ci-skip]
Augustin Degomme [Fri, 7 May 2021 16:14:52 +0000 (18:14 +0200)]
non blocking collectives : array->vector
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.
Arnaud Giersch [Fri, 7 May 2021 12:08:43 +0000 (14:08 +0200)]
Fix build with -Werror=undef.
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
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
Arnaud Giersch [Fri, 7 May 2021 11:28:40 +0000 (13:28 +0200)]
Distcheck.
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.
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
Bruno Donassolo [Fri, 7 May 2021 09:33:26 +0000 (11:33 +0200)]
Checks concerning StarZone and NS3
Arnaud Giersch [Thu, 6 May 2021 21:38:41 +0000 (23:38 +0200)]
Reduce scope for variable.
Arnaud Giersch [Thu, 6 May 2021 21:38:41 +0000 (23:38 +0200)]
Capitalize enum class.
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.
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.
Arnaud Giersch [Thu, 6 May 2021 11:24:00 +0000 (13:24 +0200)]
There is no need to have these functions 'virtual'.
Arnaud Giersch [Wed, 5 May 2021 08:22:46 +0000 (10:22 +0200)]
Fix rst.
SUTER Frederic [Thu, 6 May 2021 08:30:18 +0000 (10:30 +0200)]
[sonar] implicit casts
Martin Quinson [Wed, 5 May 2021 15:43:52 +0000 (17:43 +0200)]
Extend the description of the IB configuration
Martin Quinson [Wed, 5 May 2021 13:00:51 +0000 (15:00 +0200)]
A doc section that I don't know where to put: citations in several languages [ci-skip]
Martin Quinson [Tue, 4 May 2021 22:24:10 +0000 (00:24 +0200)]
MC: Start implementing the dependency functions on the AppSide (TBC)
(code committed to gather feedback: it's not used yet)
Instead of one big function handling the dependencies for every kind
of transition on the CheckerSide, we will split that logic between the
observer subclasses and execute it on the AppSide. This will induce
more latencies, but hopefully this will make the code more managable.
This commit introduces a MutexSimcall observer, as we want to group
MutexLock and MutexUnlock together when computing the dependencies.
But we cannot use it yet, as we need to have asynchronous locks for
the existing independence theorems to be usable.
Bruno Donassolo [Wed, 5 May 2021 09:02:07 +0000 (11:02 +0200)]
Some sonar stuff...
Arnaud Giersch [Tue, 4 May 2021 21:37:07 +0000 (23:37 +0200)]
Don't take default smpi compiler flags from the environment.
The user must explicitly define them through cmake parameters
SMPI_C_FLAGS, SMPI_CXX_FLAGS, or SMPI_Fortran_FLAGS.
Arnaud Giersch [Tue, 4 May 2021 20:37:59 +0000 (22:37 +0200)]
Cosmetics.
Arnaud Giersch [Tue, 4 May 2021 20:08:58 +0000 (22:08 +0200)]
Put stdout in line buffer mode for MCed apps.
The call to fflush before backtrack/exit is certainly superfluous now,
but it doesn't harm.
Martin Quinson [Tue, 4 May 2021 19:00:45 +0000 (21:00 +0200)]
fix my recent commit: build the binaries in the right directory
Martin Quinson [Tue, 4 May 2021 17:33:34 +0000 (19:33 +0200)]
distcheck, but in a new and shiny way with a lot of cmake stars in the sky
Martin Quinson [Tue, 4 May 2021 17:27:34 +0000 (19:27 +0200)]
factorize some code in examples/smpi/CMakeLists.txt
Because factorizing cmake code is what you need today.