Arnaud Giersch [Fri, 30 Mar 2018 07:56:54 +0000 (09:56 +0200)]
Disable privatization for smpi_replay.
It does't seem to be mandatory, and the tests are broken with mmap privatization
because the global 'previous_send' is not correctly initialized for all processes.
Arnaud Giersch [Fri, 30 Mar 2018 12:23:32 +0000 (14:23 +0200)]
smpirun: really disable privatization with -no-privatize.
Arnaud Giersch [Sat, 31 Mar 2018 15:17:12 +0000 (17:17 +0200)]
Move debug message.
Arnaud Giersch [Sat, 31 Mar 2018 15:16:08 +0000 (17:16 +0200)]
Disable privatization when not run through smpi_main().
SMPI_switch_data_segment is not initialized, and mmap privatization
is crashing when trying to call it.
Arnaud Giersch [Fri, 30 Mar 2018 20:16:44 +0000 (22:16 +0200)]
Use enum class for smpi privatization strategies.
Arnaud Giersch [Fri, 30 Mar 2018 11:24:50 +0000 (13:24 +0200)]
Another fix in regexp.
An hyphen '-' cannot be escaped in bracket expressions, it should be put first
(or last). Anyway, it is not allowed for Fortan identifier, so simply remove it.
Also unescape underscores.
Martin Quinson [Sat, 31 Mar 2018 15:52:26 +0000 (17:52 +0200)]
cosmetics in cpu_ti
Martin Quinson [Sat, 31 Mar 2018 14:37:23 +0000 (16:37 +0200)]
have the maxmin system create by itself what it needs for selective update
Earlier, the modified_set was created externally by some models (but
not all). This lead to the interesting situation where we were asking
for selective update with the boolean field, but not getting this
because the modified_set was not existing.
Now that we get it when we ask for it, we detect that:
- the lmm_usage tests cannot activate selective_update because they
don't have real actions, so they cannot track them to see which were
modified.
- Storage is having selective updates, but with full algorithm (thus
the change to Action::~Action() so that we deal when selective is on
but not Lazy). No idea of whether this is the wanted behavior.
Martin Quinson [Sat, 31 Mar 2018 07:32:36 +0000 (09:32 +0200)]
lmm::System: rename some fields, and initialize them at declaration, not in ctor
Martin Quinson [Fri, 30 Mar 2018 23:13:57 +0000 (01:13 +0200)]
CpuCas01: set updateAlgo as initializer
My goal here is to make updateAlgo a constant in each Model object.
Martin Quinson [Fri, 30 Mar 2018 23:00:17 +0000 (01:00 +0200)]
cleanup the declaration and handling of the cpu/optim option
Martin Quinson [Fri, 30 Mar 2018 22:56:58 +0000 (00:56 +0200)]
config::Flag: allow to pass a map of the valid values
Martin Quinson [Fri, 30 Mar 2018 22:46:01 +0000 (00:46 +0200)]
reduce the visibility of xbt/config.hpp file to the cpp that really need it
Martin Quinson [Fri, 30 Mar 2018 22:15:57 +0000 (00:15 +0200)]
Merge branch 'master' of github.com:simgrid/simgrid
Martin Quinson [Fri, 30 Mar 2018 22:14:51 +0000 (00:14 +0200)]
cosmetics
Martin Quinson [Fri, 30 Mar 2018 22:13:35 +0000 (00:13 +0200)]
Merge pull request #259 from simgrid/configfix
config: fix declareFlag template
Gabriel Corona [Fri, 30 Mar 2018 21:59:02 +0000 (23:59 +0200)]
config: fix declareFlag template
Martin Quinson [Fri, 30 Mar 2018 18:44:58 +0000 (20:44 +0200)]
change a fixme into an assert
Martin Quinson [Fri, 30 Mar 2018 17:47:00 +0000 (19:47 +0200)]
various sonar fixes
- namespaces cannot be uppercased
- classes with a virtual method should have a virtual destructor
- add the missing explicit keyworlds
- each identifier on its line
degomme [Fri, 30 Mar 2018 11:08:21 +0000 (13:08 +0200)]
fix regexp. again.
degomme [Fri, 30 Mar 2018 09:45:00 +0000 (11:45 +0200)]
fix regexp
Arnaud Giersch [Thu, 29 Mar 2018 19:38:58 +0000 (21:38 +0200)]
Move variable definition in cpp file.
Arnaud Giersch [Thu, 29 Mar 2018 12:04:00 +0000 (14:04 +0200)]
Fix comment.
Arnaud Giersch [Thu, 29 Mar 2018 10:04:06 +0000 (12:04 +0200)]
Fix memory leak.
Martin Quinson [Fri, 30 Mar 2018 06:36:29 +0000 (08:36 +0200)]
don't link_set after link_add to not erase the -shared flag
Martin Quinson [Fri, 30 Mar 2018 06:05:11 +0000 (08:05 +0200)]
be verbose when the SMPI_PRETEND_CC trick is activated
Martin Quinson [Thu, 29 Mar 2018 21:31:16 +0000 (23:31 +0200)]
smpicc: don't add -shared when SMPI_PRETEND_CC is on
all mpi programs are compiled in the -shared binary model so that we
can load them with dlopen afterward. But shared binaries cannot be run
by themselves, which is a problem to ./configure that wants to ensure
that mpicc is a real compiler (not a cross-compiler) by executing some
stupid code of its own.
Before the introduction of dlopen as a privatization mechanism, we
used to prevent the binary doing weird things when SMPI_PRETEND_CC was
defined. Now, we extend this mecanism for our compiler wrapers to play
safe in this case.
degomme [Thu, 29 Mar 2018 13:53:27 +0000 (15:53 +0200)]
add gnu+11 flags to smpicxx as this seems needed
Arnaud Giersch [Wed, 28 Mar 2018 20:58:31 +0000 (22:58 +0200)]
Use C++ style casts.
Arnaud Giersch [Wed, 28 Mar 2018 20:45:57 +0000 (22:45 +0200)]
It won't compile without C++ anyway.
Arnaud Giersch [Wed, 28 Mar 2018 20:25:25 +0000 (22:25 +0200)]
Variables are already declared in surf_interface.hpp.
Arnaud Giersch [Wed, 28 Mar 2018 20:22:12 +0000 (22:22 +0200)]
File surf.hpp is C++ only. Remove SG_BEGIN/END_DECL.
Arnaud Giersch [Wed, 28 Mar 2018 20:21:27 +0000 (22:21 +0200)]
Function surf_get_clock() is already declared in surf.hpp.
Martin Quinson [Wed, 28 Mar 2018 20:39:44 +0000 (22:39 +0200)]
prefer this_actor:: to Actor::self()->
Martin Quinson [Wed, 28 Mar 2018 20:00:40 +0000 (22:00 +0200)]
better approximation of a typed #define
Martin Quinson [Wed, 28 Mar 2018 08:14:47 +0000 (10:14 +0200)]
forgot to rename this one
Christian Heinrich [Wed, 28 Mar 2018 19:53:50 +0000 (21:53 +0200)]
[SMPI] Replay: Fix datatype initialization
Christian Heinrich [Wed, 28 Mar 2018 19:35:58 +0000 (21:35 +0200)]
[SMPI] Fix branch conditions
Arnaud Giersch [Wed, 28 Mar 2018 18:13:11 +0000 (20:13 +0200)]
Compile and link smpi_replay with smpicxx.
Arnaud Giersch [Wed, 28 Mar 2018 17:27:00 +0000 (19:27 +0200)]
Use standard __func__ instead of __FUNCTION__.
Arnaud Giersch [Wed, 28 Mar 2018 17:24:42 +0000 (19:24 +0200)]
Fix format.
Arnaud Giersch [Wed, 28 Mar 2018 17:20:31 +0000 (19:20 +0200)]
#include <string>
Arnaud Giersch [Wed, 28 Mar 2018 15:57:55 +0000 (17:57 +0200)]
Remove std::move.
According to clang:
src/xbt/xbt_replay.cpp:123:38: error: moving a temporary object prevents copy elision
[-Werror,-Wpessimizing-move]
simgrid::xbt::ReplayAction evt(std::move(simgrid::xbt::get_action(argv[0])));
^
src/xbt/xbt_replay.cpp:123:38: note: remove std::move call here
simgrid::xbt::ReplayAction evt(std::move(simgrid::xbt::get_action(argv[0])));
^~~~~~~~~~ ~
1 error generated.
Arnaud Giersch [Wed, 28 Mar 2018 15:51:19 +0000 (17:51 +0200)]
Merge branch 'master' of ssh://scm.gforge.inria.fr/gitroot/simgrid/simgrid
Arnaud Giersch [Wed, 28 Mar 2018 15:50:49 +0000 (17:50 +0200)]
Kill unused typedef.
Christian Heinrich [Wed, 28 Mar 2018 15:30:26 +0000 (17:30 +0200)]
[SMPI] Datatype: Make the dt id a std::string
Currently, the Datatype::encode() function returns a
const char*. Using a temporary object as returned from
std::to_string() would return a temporary memory address via
.c_str() and hence cannot be used.
Once encode has been moved to std::string, this could potentially
be an int again...
Christian Heinrich [Wed, 28 Mar 2018 11:37:59 +0000 (13:37 +0200)]
[SMPI] Prohibit execution of negative flops
This was often caused by smpi/host-speed:-1 because
in some cases, flops = duration * host-speed
I replaced one smpi/host-speed:-1 with smpi/simulate-computation:0
due to a brief conversation with Augustin Degomme today:
14:22 < degomme> host-speed -1 c'est une convention qu'on utilisait
14:22 < degomme> c'est synonyme de simulate_computation=0
14:22 < degomme> ou un truc du genre
14:22 < degomme> quand l'option n'existait pas .
Christian Heinrich [Tue, 27 Mar 2018 21:51:58 +0000 (23:51 +0200)]
[SMPI] Rename (recv|send)_sum -> (recv|send)_size_sum
Christian Heinrich [Tue, 27 Mar 2018 21:49:54 +0000 (23:49 +0200)]
[SMPI] Replay: C++-ify AllToAllV action
Christian Heinrich [Tue, 27 Mar 2018 21:34:50 +0000 (23:34 +0200)]
[SMPI] Replay: C++-ify reduceScatter action & change tesh
These modifications also required to adapt the tesh:
Before, the computation value in comp_size was stored in an
integer, which was too small:
-
2147483648 2905064291.000000
^^^^^ ^^^^^^^^^^^^^^^^^
int double (actual value from trace)
This means that all the test results were wrong and had
to be corrected.
Christian Heinrich [Tue, 27 Mar 2018 21:19:04 +0000 (23:19 +0200)]
[SMPI] Replay: C++-ify scatterV action
Christian Heinrich [Tue, 27 Mar 2018 19:02:32 +0000 (21:02 +0200)]
[SMPI] Replay: C++-ify scatter actions
Christian Heinrich [Tue, 27 Mar 2018 18:49:25 +0000 (20:49 +0200)]
[SMPI] Replay: C++-ify gatherV and allGatherV actions
Christian Heinrich [Tue, 27 Mar 2018 18:09:03 +0000 (20:09 +0200)]
[SMPI] Replay: Add name parameter to parser
Christian Heinrich [Tue, 27 Mar 2018 17:19:31 +0000 (19:19 +0200)]
[SMPI] Replay: C++-ify (all)gather action
Christian Heinrich [Tue, 27 Mar 2018 16:59:44 +0000 (18:59 +0200)]
[SMPI] Replay: C++-ify AllReduce & AllToAll actions
Christian Heinrich [Tue, 27 Mar 2018 16:19:32 +0000 (18:19 +0200)]
[SMPI] Replay: C++-ify (All)Reduce Action
Christian Heinrich [Tue, 27 Mar 2018 14:07:24 +0000 (16:07 +0200)]
[SMPI] Replay: Use correct buffer (recvbuffer)
Christian Heinrich [Tue, 27 Mar 2018 13:56:06 +0000 (15:56 +0200)]
[SMPI] Replay: C++-ify bcast action
Christian Heinrich [Tue, 27 Mar 2018 13:08:13 +0000 (15:08 +0200)]
[SMPI] Replay: Cleanup WaitAction a bit
Christian Heinrich [Tue, 27 Mar 2018 13:06:55 +0000 (15:06 +0200)]
[SMPI] Replay: C++-ify barrier action
Christian Heinrich [Tue, 27 Mar 2018 13:01:39 +0000 (15:01 +0200)]
[SMPI] Replay: C++-ify WaitAll Action
Christian Heinrich [Tue, 27 Mar 2018 12:12:04 +0000 (14:12 +0200)]
[SMPI] Replay: C++-ify Communicator-Actions
Christian Heinrich [Tue, 27 Mar 2018 09:27:02 +0000 (11:27 +0200)]
[SMPI] Replay: C++-ify InitAction
Christian Heinrich [Tue, 27 Mar 2018 09:24:28 +0000 (11:24 +0200)]
[SMPI] Replay: Cleanup WaitAction a bit
Christian Heinrich [Tue, 27 Mar 2018 08:55:51 +0000 (10:55 +0200)]
[SMPI] Replay: Remove action_* functions
Since we moved to std::function for the callbacks, it's much more
convenient to just use a lambda-function. The lambda itself is required
as we need to create a new object every time that action is executed
(and not one object that is shared between executions).
Christian Heinrich [Tue, 27 Mar 2018 08:54:03 +0000 (10:54 +0200)]
[SMPI] Replay: C++-ify TestAction.
Christian Heinrich [Tue, 27 Mar 2018 08:51:57 +0000 (10:51 +0200)]
[SMPI] Replay: Remove static communicator_size variable
- This variable was unused, as all of the actions use something like
MPI_COMM_WORLD->size() to obtain the size.
Christian Heinrich [Mon, 26 Mar 2018 17:57:28 +0000 (19:57 +0200)]
[SMPI] Replay: Cosmetics
Christian Heinrich [Mon, 26 Mar 2018 17:56:36 +0000 (19:56 +0200)]
[SMPI] Replay: Make start_time a local variable
Christian Heinrich [Mon, 26 Mar 2018 16:53:00 +0000 (18:53 +0200)]
[SMPI] Replay: C++-ify compute action
Christian Heinrich [Mon, 26 Mar 2018 16:47:43 +0000 (18:47 +0200)]
[SMPI] Replay: Use std::function for i/send, i/recv actions
Christian Heinrich [Mon, 26 Mar 2018 15:33:31 +0000 (17:33 +0200)]
[SMPI] Replay: Use std::bind / std::function for the wait action
Christian Heinrich [Mon, 26 Mar 2018 14:31:17 +0000 (16:31 +0200)]
[SMPI] Replay: Move callbacks to std::function
Christian Heinrich [Mon, 26 Mar 2018 13:40:14 +0000 (15:40 +0200)]
[SMPI] Replay: C++-ify (I)Recv, (I)Send
Christian Heinrich [Mon, 26 Mar 2018 13:37:09 +0000 (15:37 +0200)]
[SMPI] Replay: Classify the actions, start with Wait
Christian Heinrich [Wed, 21 Mar 2018 16:17:51 +0000 (17:17 +0100)]
[SMPI] Cosmetics: Remove 3 blank lines from smpi_global.cpp
Christian Heinrich [Wed, 21 Mar 2018 15:50:36 +0000 (16:50 +0100)]
[SMPI] Deployment: Move function signatures to std::string
Except for the SMPI_app_instance_register, as it is part of the (C-)API.
Christian Heinrich [Wed, 21 Mar 2018 15:07:12 +0000 (16:07 +0100)]
[SMPI] Remove all references to decode_datatype
This is now calling simgrid::smpi::Datatype::decode(std::string) (I moved
the argument from char* to std::string)
sed -i -r -e 's@decode_datatype\((.*?)\)@simgrid::smpi::Datatype::decode(\1)@' src/smpi/internals/smpi_replay.cpp
Christian Heinrich [Wed, 21 Mar 2018 14:53:05 +0000 (15:53 +0100)]
[SMPI] Datatype: Remove all encode_datatype calls
We now use simgrid::smpi::Datatype(dt) instead.
sed -i -r -e 's@encode_datatype\((\w+)\)@simgrid::smpi::Datatype::encode(\1)@' src/smpi/**/*.cpp
Christian Heinrich [Wed, 21 Mar 2018 14:50:17 +0000 (15:50 +0100)]
[SMPI] Datatype: Make encode() a static member
MPI_DATATYPE_NULL may be passed to the encode function and we hence
need to check if the argument is null; if we just call
dt->encode(), we would always have to check before that call if dt is nullptr
This way, we just call Datatype::encode(dt)
Christian Heinrich [Wed, 21 Mar 2018 13:38:40 +0000 (14:38 +0100)]
[SMPI] Remove class definition...
Christian Heinrich [Tue, 20 Mar 2018 21:07:18 +0000 (22:07 +0100)]
[SMPI] Replay: Macro cosmetics
Christian Heinrich [Tue, 20 Mar 2018 16:31:30 +0000 (17:31 +0100)]
[REPLAY] Remove C-based Replay API
This is a huge commit, unfortunately, but it was not possible
to split it up easily without breaking the build.
This commit changes:
- Remove the 'const char* const* action' madness, replace by
std::vector<string> (aliased as ReplayAction)
- Rename replay.c to replay.cpp
- Change CMake files
- Rewrite several macros to make them C++ compliant
Christian Heinrich [Tue, 20 Mar 2018 13:26:27 +0000 (14:26 +0100)]
[SMPI] Replay: Move CHECK_ACTION_PARAMS macro to the top of the file
Christian Heinrich [Tue, 20 Mar 2018 09:48:36 +0000 (10:48 +0100)]
[MSG/Replay] Delete old msg/replay code
Christian Heinrich [Mon, 19 Mar 2018 18:18:48 +0000 (19:18 +0100)]
[XBT] Remove a new/delete pair from xbt-replay code
Christian Heinrich [Mon, 19 Mar 2018 16:34:57 +0000 (17:34 +0100)]
[SMPI] Replay/Memory: Move tmp buffers from replay to memory
This is not the best solution, especially since we need a new function
right now to free tmp buffers at the end of the replay. However, this
may make the replay a bit cleaner and we can find another solution during
this refactoring process.
Christian Heinrich [Mon, 19 Mar 2018 16:30:24 +0000 (17:30 +0100)]
[SMPI] Replay: Use the right buffer (c&p error?)
Christian Heinrich [Mon, 19 Mar 2018 13:47:25 +0000 (14:47 +0100)]
[SMPI] Replay: Replace atoi by std::stoi
Christian Heinrich [Mon, 19 Mar 2018 13:30:24 +0000 (14:30 +0100)]
[SMPI] Replay/Allgatherv: Account for disps parameters in a replay trace
Christian Heinrich [Mon, 19 Mar 2018 13:29:27 +0000 (14:29 +0100)]
[SMPI] Replace encode_datatype calls with dt->encode()
Christian Heinrich [Mon, 19 Mar 2018 13:24:10 +0000 (14:24 +0100)]
[SMPI] Datatypes: Make them all replayable
This commit assigns a unique id to all MPI_* datatypes.
This id is used for 'encoding' the datatype (for traces).
Christian Heinrich [Thu, 15 Mar 2018 10:19:52 +0000 (11:19 +0100)]
[SMPI] Added comment regard Datatype::keyvals
Christian Heinrich [Tue, 13 Mar 2018 22:23:07 +0000 (23:23 +0100)]
[SMPI] Replay: C++ify action_allgatherv
- Move to std::shared_ptr
- Use std::accumulate
Christian Heinrich [Tue, 13 Mar 2018 22:05:27 +0000 (23:05 +0100)]
[SMPI] Replay: Move MPI_CURRENT_TYPE from global to local scope
Christian Heinrich [Tue, 13 Mar 2018 17:51:02 +0000 (18:51 +0100)]
[SMPI] Replay: C++ify action_gatherv
- Move to std::shared_ptr
- Use std::accumulate
Christian Heinrich [Tue, 13 Mar 2018 17:47:02 +0000 (18:47 +0100)]
[SMPI] Replay: C++ify action_scatterv
- Move to std::shared_ptr
- Use std::accumulate
Christian Heinrich [Tue, 13 Mar 2018 17:42:51 +0000 (18:42 +0100)]
[SMPI] Replay: Move action_reducescatter to std::shared_ptr
Christian Heinrich [Tue, 13 Mar 2018 17:40:31 +0000 (18:40 +0100)]
[SMPI] Replay: C++ify action_allToAllv
- Move to std::shared_ptr
- Use std::accumulate