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
Christian Heinrich [Tue, 13 Mar 2018 17:19:21 +0000 (18:19 +0100)]
[INSTR] Move vector* to shared_ptr<vector>.
By initializing an object, for instance of type VarCollTIData,
the vectors containing receive and send counts were deleted
when the TI object was deleted. This is unexpected by a 'normal'
user - by accepting shared_ptrs, this can be ameliorated.
The constructor that still accepts vector* should be removed once
all initializations use the constructor accepting the shared_ptr.
Christian Heinrich [Tue, 13 Mar 2018 14:04:02 +0000 (15:04 +0100)]
[SMPI] Move disps arrays to vectors
We now initialize the array immediately and just use disps.data()
to access the internal data array.
Christian Heinrich [Tue, 13 Mar 2018 13:59:20 +0000 (14:59 +0100)]
[SMPI] Replay: Remove local variables from action_reducescatter
Christian Heinrich [Tue, 13 Mar 2018 13:19:38 +0000 (14:19 +0100)]
[SMPI] Replay: Remove unnecessary initialization
Christian Heinrich [Tue, 13 Mar 2018 13:18:34 +0000 (14:18 +0100)]
[SMPI] Replay: Remove side effect from decode_datatype
The MPI_CURRENT_TYPE variable shouldn't be modified here.
Christian Heinrich [Tue, 13 Mar 2018 13:17:02 +0000 (14:17 +0100)]
[SMPI] Replay: Remove unused KEY_SIZE macro from .cpp
Christian Heinrich [Tue, 13 Mar 2018 13:15:47 +0000 (14:15 +0100)]
[SMPI] Replay: Declare variables as static
Christian Heinrich [Tue, 13 Mar 2018 13:12:29 +0000 (14:12 +0100)]
[TESTS] Fix smpi replay test for allgatherv
The trace contains data for 4 hosts, although -np 3 was specified.
This lead to smpi incorrectly reading the specified datatype, as the data
for the 4th host was taken as said datatype.
Christian Heinrich [Mon, 12 Mar 2018 19:11:50 +0000 (20:11 +0100)]
[SMPI] Replay: Use std::vector copy-constr. instead of loop
Christian Heinrich [Mon, 12 Mar 2018 16:05:52 +0000 (17:05 +0100)]
[SMPI] Clean initialization of MPI_CURRENT_TYPE and root
Arnaud Giersch [Wed, 28 Mar 2018 15:26:05 +0000 (17:26 +0200)]
Revert "Please mingw."
This reverts commit
f364225c23f541330fdc9a512d551a683cf374c9.
It was supposed to fix warnings, but now gives errors:
C:/projects/simgrid/include/simgrid/s4u/Mailbox.hpp:116:26: error: function 'void simgrid::s4u::intrusive_ptr_add_ref(simgrid::s4u::Mailbox*)' definition is marked dllimport
friend XBT_PUBLIC void intrusive_ptr_add_ref(Mailbox*) {}
^
C:/projects/simgrid/include/simgrid/s4u/Mailbox.hpp:116:26: warning: 'void simgrid::s4u::intrusive_ptr_add_ref(simgrid::s4u::Mailbox*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
C:/projects/simgrid/include/simgrid/s4u/Mailbox.hpp:116:26: error: function 'void simgrid::s4u::intrusive_ptr_add_ref(simgrid::s4u::Mailbox*)' definition is marked dllimport
Arnaud Giersch [Wed, 28 Mar 2018 15:04:53 +0000 (17:04 +0200)]
Remove extern "C" from cpp files (src/smpi/).
Arnaud Giersch [Wed, 28 Mar 2018 14:52:02 +0000 (16:52 +0200)]
Remove useless extern "C" from msg_private.hpp.
Arnaud Giersch [Wed, 28 Mar 2018 14:49:59 +0000 (16:49 +0200)]
Remove extern "C" from cpp files (src/bindings/).
Arnaud Giersch [Wed, 28 Mar 2018 14:32:20 +0000 (16:32 +0200)]
Remove extern "C" from cpp files.
Specifying extern "C" at declaration in header files should be sufficient.
Arnaud Giersch [Wed, 28 Mar 2018 13:56:59 +0000 (15:56 +0200)]
Call atexit() from xbt_cfg_new().
Arnaud Giersch [Wed, 28 Mar 2018 13:53:45 +0000 (15:53 +0200)]
Rename sg_config.h -> sg_config.hpp.
Arnaud Giersch [Wed, 28 Mar 2018 13:40:34 +0000 (15:40 +0200)]
Function has been renamed.
Arnaud Giersch [Wed, 28 Mar 2018 12:07:56 +0000 (14:07 +0200)]
Return value is useless (always 1).
Arnaud Giersch [Wed, 28 Mar 2018 12:00:54 +0000 (14:00 +0200)]
Use <stdbool.h> for C files.
Arnaud Giersch [Wed, 28 Mar 2018 09:48:58 +0000 (11:48 +0200)]
Use C++'s true/false.
Arnaud Giersch [Wed, 28 Mar 2018 09:28:28 +0000 (11:28 +0200)]
Please mingw.
Arnaud Giersch [Wed, 28 Mar 2018 09:03:10 +0000 (11:03 +0200)]
Remove useless intermediate variables.
Arnaud Giersch [Wed, 28 Mar 2018 08:53:57 +0000 (10:53 +0200)]
Make func_f/fp/fpi static methods of lmm::Lagrange.
Arnaud Giersch [Wed, 28 Mar 2018 08:50:12 +0000 (10:50 +0200)]
Using namespace simgrid::kernel.
Arnaud Giersch [Wed, 28 Mar 2018 08:34:56 +0000 (10:34 +0200)]
Make static functions in lagrange.cpp static methods of lmm::Lagrange.
Arnaud Giersch [Wed, 28 Mar 2018 08:09:40 +0000 (10:09 +0200)]
Make check_feasible() and dual_objective() private methods of lmm::Lagrange.
Arnaud Giersch [Wed, 28 Mar 2018 07:33:05 +0000 (09:33 +0200)]
Kill spurious #ifdef MATH.
Arnaud Giersch [Wed, 28 Mar 2018 07:31:11 +0000 (09:31 +0200)]
Use constexpr instead of #defin.
Arnaud Giersch [Tue, 27 Mar 2018 21:09:03 +0000 (23:09 +0200)]
Be explicit on overridable method.
Arnaud Giersch [Tue, 27 Mar 2018 20:57:55 +0000 (22:57 +0200)]
Give correct function for func_fp().
Arnaud Giersch [Tue, 27 Mar 2018 20:30:42 +0000 (22:30 +0200)]
Kill unused macros.
Martin Quinson [Tue, 27 Mar 2018 19:50:05 +0000 (21:50 +0200)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Arnaud Giersch [Tue, 27 Mar 2018 14:16:22 +0000 (16:16 +0200)]
Define FairBottleneck and Lagrange as subclasses of lmm::System.
Arnaud Giersch [Tue, 27 Mar 2018 09:03:24 +0000 (11:03 +0200)]
Make maxmin_system_ a private field for resource::Model.
Arnaud Giersch [Tue, 27 Mar 2018 13:20:27 +0000 (15:20 +0200)]
Kill unused field.
Arnaud Giersch [Tue, 27 Mar 2018 09:58:50 +0000 (11:58 +0200)]
Move assert befort assignment.
Arnaud Giersch [Tue, 27 Mar 2018 09:53:20 +0000 (11:53 +0200)]
Fix parameter description.
Martin Quinson [Tue, 27 Mar 2018 11:54:46 +0000 (13:54 +0200)]
enum class for Model::UpdateAlgo
Frederic Suter [Tue, 27 Mar 2018 07:18:47 +0000 (09:18 +0200)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Frederic Suter [Tue, 27 Mar 2018 07:18:15 +0000 (09:18 +0200)]
external projects may refcount Mailboxes too
Martin Quinson [Tue, 27 Mar 2018 06:38:39 +0000 (08:38 +0200)]
start snake_casing resource::Model
Frederic Suter [Tue, 27 Mar 2018 06:14:24 +0000 (08:14 +0200)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Martin Quinson [Mon, 26 Mar 2018 18:53:19 +0000 (20:53 +0200)]
these functions always take exactly the same parameter, thus inlining it
Martin Quinson [Mon, 26 Mar 2018 17:14:02 +0000 (19:14 +0200)]
We are in UM=Lazy, that was tested 2 lines above