Commit Graph

290 Commits

Author SHA1 Message Date
Alain Miniussi
a45e542b61 dead code, refs #70 2018-09-05 14:03:46 +02:00
Alain Miniussi
f3c8419f70 dead code.
refs #70
2018-09-05 12:11:29 +02:00
Alain Miniussi
6216acadad dead code 2018-09-05 11:44:57 +02:00
Alain Miniussi
9a4aa79b33 simplify legacy handler of serialized array.
refs #70
2018-09-05 11:43:36 +02:00
Alain Miniussi
3c1699b841 useless template ctor
refs #70
2018-09-05 11:06:40 +02:00
Alain Miniussi
88692b3bf3 simplify legacy request handler ctor
refs #70
2018-09-05 10:30:26 +02:00
Alain Miniussi
403b513d72 Merge branch 'feature/70p2p-opt-probe' of github.com:boostorg/mpi into feature/70p2p-opt-probe 2018-09-04 23:03:17 +02:00
Alain Miniussi
e65aaca3cd Provide two communications methods for dynamic primitive arrays, with and whithout probes.
refs #70
2018-09-04 22:55:37 +02:00
Alain Miniussi
919d8475f0 avoid data indirection in serialized handler.
refs #70
2018-08-31 00:10:55 +02:00
Alain Miniussi
6461f38648 add detection of MPI_XXprobe through function.
refs #70
2018-08-30 23:21:13 +02:00
Alain Miniussi
e44cf7a41f Include dependency issue.
Should be globally refactored one day.
refs #70
2018-08-30 22:59:55 +02:00
Alain Miniussi
8a7eea3d83 Request handler data factorization. refs #70 2018-08-30 19:27:54 +02:00
Alain Miniussi
36e959318f Removed global handler functions. refs #70 2018-08-30 19:06:17 +02:00
Alain Miniussi
5aa9dfb925 Moved wait code in it specific legacy handlers. refs #70 2018-08-30 18:51:10 +02:00
Alain Miniussi
47eb629997 Moved wait code in it specific handler for serialized object reception. refs #70 2018-08-30 18:42:44 +02:00
Alain Miniussi
dd9de0e91b prepare fro more specific, smaller handler. refs #70 2018-08-30 18:00:04 +02:00
Alain Miniussi
d5eab301f1 dead code, refs #70 2018-08-30 17:30:44 +02:00
Alain Miniussi
0522c817b4 moved implementation class into implementation file
refs #70
2018-08-30 17:27:24 +02:00
Alain Miniussi
15d044d56c Make request class lighter. Regroup request handler implementation.
refs #70
2018-08-30 17:23:08 +02:00
Alain Miniussi
f5df9713ab Put request handler implementation details in their own header.
refs #70
2018-08-30 17:03:13 +02:00
Alain Miniussi
1429b6cc01 All requests are now created through factory methods.
refs #70
2018-08-30 16:42:40 +02:00
Alain Miniussi
156beaa457 Potentialy create all request through factory methods.
refs #70
2018-08-30 14:20:26 +02:00
Alain Miniussi
74b01dc877 Start using dynamic handler for request requests.
refs #70
2018-08-30 13:23:33 +02:00
Alain Miniussi
544848be92 start using dynamic handler factory method.
refs #70
2018-08-30 13:02:39 +02:00
Alain Miniussi
eee9a4396a factory method for trivial request handler.
refs #70
2018-08-30 12:18:06 +02:00
Alain Miniussi
115ded5b0f First move toward envelope/letter implementation of requests.
refs #70
2018-08-30 10:25:33 +02:00
Alain Miniussi
56c2a212e5 better request encapsulation.
refs #70
2018-08-29 23:03:34 +02:00
Alain Miniussi
6c21e65256 no ZNORT, it's rude.
refs #70
2018-08-29 22:45:39 +02:00
Alain Miniussi
2a674a4cfc Mre data encapsulation in requests.
refs #70
2018-08-29 22:43:26 +02:00
Alain Miniussi
174e2c8a86 Better encapsulation of the request class.
refs #70
2018-08-29 18:09:01 +02:00
Alain Miniussi
d77f9d805a Indicate MPI_Improbe availability.
refs #70
2018-08-29 15:37:06 +02:00
Alain Miniussi
b4c3f40556 Merge branch 'develop' 2018-08-20 14:13:45 +02:00
Alain Miniussi
d7a4917683 Merge branch 'develop' into bugfix/vectors-mix-62 2018-08-02 14:51:41 +02:00
Alain Miniussi
1e0cb0816b avoir unused arg warning.
refs #68
2018-08-02 14:31:59 +02:00
Alain Miniussi
9d8f15146b Try to make sure user's operators are stateless, and do not use their state if any.
refs #68
2018-08-01 15:08:35 +02:00
Alain Miniussi
389602fbe7 Hide vector implementation.
refs #62 and #67
2018-08-01 14:18:57 +02:00
Alain Miniussi
d94ba7531b Add a documentation note for vector point to point transmition.
refs #62
2018-08-01 13:01:06 +02:00
Alain Miniussi
1aa7354ee6 non blocking send/blocking receiv implementted for dynamic array(vector of staticaly unknown size) of primitive types.
refs #62
2018-08-01 11:53:03 +02:00
Alain Miniussi
45f3a7f786 The blocking send / non blocking recv works with dynamic arrays (eg: we do not know the size statically) with primitive types.
Now working on the other way round.
refs #62
2018-08-01 11:01:44 +02:00
Alain Miniussi
30f32d5319 Merge branch 'develop' of github.com:boostorg/mpi into develop
fixes #58
2018-05-23 11:55:29 +02:00
Alain Miniussi
dfea112ffe use BOOST_NO_CXX11_DEFAULTED_MOVES to approximate support of move ctor/ass.
refs #57
2018-04-18 16:33:43 +02:00
Alain Miniussi
ae6734c3aa Merge branch 'develop' into move57
refs #57
2018-04-18 16:16:45 +02:00
Alain Miniussi
41125d37b5 Merge branch 'err55' into develop
fixes #55
2018-04-18 16:09:32 +02:00
Alain Miniussi
e27c06fe33 Modify the signature of the move ctor to avoid infinite loop.
Test move ctor on cartesian topology.
refs #57
2018-04-09 15:34:54 +02:00
Alain Miniussi
913882914c Add MPI error code to string convertion
refs #55
2018-03-13 17:50:59 +01:00
Alain Miniussi
26f462256c Deal with partialy transmited serialized messages.
This is a fix proposed by hirschsn
refs !53
2018-03-13 10:53:32 +01:00
Pavel I. Kryukov
c6760b3c75
Add missing '{' to the previous commit 2017-11-25 10:31:04 +03:00
Pavel I. Kryukov
ed54dfdf3f
Remove deprecated std::binary_function 2017-11-21 20:12:49 +03:00
Alain Miniussi
2c5ec6ef15 Add const conversion to accomodate open MPI 1.6 2017-07-24 12:39:50 +02:00
Alain Miniussi
ee8cf105dd Merge branch 'develop' into antique 2017-07-23 09:49:40 +02:00
Alain Miniussi
5d9acb73a2 Merge branch 'master' into develop 2017-07-21 10:16:54 +02:00
Jonathan Wakely
e2537e507f Add header for serialization::make_array (#40) 2017-07-21 00:08:41 +02:00
Alain Miniussi
fab4d716a5 Merge branch 'master' into develop 2017-07-19 23:02:47 +02:00
Alain Miniussi
00e55d8f5e Do not include serialization/detail/get_data.hpp as it disapear in 1.64. 2017-07-15 14:00:06 +02:00
Alain Miniussi
c5964b4397 void using vector::data in order to comply to old pre C++ compilers. 2017-02-28 13:44:44 +01:00
Alain Miniussi
7c925147a9 Merge pull request #43 from boostorg/if0
Delete now clearly obsolete #if 0ed code.
2017-02-23 14:01:34 +01:00
Alain Miniussi
90e84fe143 Change partial specialization position to agree with nvcc/icc 2017-02-23 13:47:23 +01:00
Alain Miniussi
5afae48612 Delete now clearly obsolete #if 0ed code. 2017-02-23 11:31:39 +01:00
Alain Miniussi
98c406a77f documentation typo 2017-02-23 11:26:49 +01:00
Jonathan Wakely
947d171573 Add header for serialization::make_array (#40) 2017-02-22 19:19:45 -07:00
Jonathan Wakely
f5bdcc1ebf Replace boost::serialization::detail::get_data function. (#39) 2017-02-22 19:18:58 -07:00
Andrey Semashev
b21d956760 Fix incorrect usage of auto_ptr to free an array (#38)
The `auto_ptr` would use `delete p` to free an array allocated with `operator new[]`, which could result in heap corruption. Replaced it with `scoped_array`.
2017-02-22 19:17:32 -07:00
Alain Miniussi
dc9122c00d workaround an Open MPI bug: (#37)
According to:
http://mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf
input data on Scatter should be passed as a pointer to const. Open MPI miss that const which invalidate the implicit conversion.
2017-02-22 19:16:46 -07:00
Alain Miniussi
c5df30a54d Support recent g++ without c++11. 2016-11-04 00:11:14 +01:00
Florian Weik
7615e17bff specialization of is_mpi_datatype for std::array 2016-11-03 12:33:20 -06:00
K. Noel Belcourt
e2ebac2b4d Add allocator support to vector send recv api.
Added test case to send recv a vector of udt with an
overload of get_mpi_datatype.  Added test to Jamfile
for nightly testing.
2016-11-03 12:32:20 -06:00
K. Noel Belcourt
333508581f Add send and recv overloads for std::vector. 2016-11-03 12:30:56 -06:00
Alain Miniussi
415a41f6ea Test that static and dynamic MPI versions matches 2016-11-02 14:52:01 +01:00
Alain Miniussi
9d4e00a3c8 using g++5.4 detected a lot of compilation problems on template code that wasn't instantiated by the tests (which is an issue to deal with). 2016-10-28 00:48:20 +02:00
Alain Miniussi
e3b0d08c7e Explicitly avoid temporary in isend. 2016-10-27 00:54:51 +02:00
Alain Miniussi
91a19d2e6a uniform var name. 2016-10-26 10:15:29 +02:00
Alain Miniussi
864ad60116 Only allocate receiv buffer on root node in gather. 2016-10-26 10:10:04 +02:00
Alain Miniussi
d3f671ea0a factorize 2016-10-25 16:34:46 +02:00
Alain Miniussi
debeb7c8c4 Renaming 2016-10-25 15:53:14 +02:00
Alain Miniussi
e169ada110 renaming 2016-10-25 15:47:45 +02:00
Alain Miniussi
4f6d3a5f8c typo 2016-10-25 15:47:39 +02:00
Alain Miniussi
8ff3bf01e0 all_gatherv implementation 2016-10-25 15:36:38 +02:00
Alain Miniussi
da49ba7d4c special flag to mark non rooted opertaions 2016-10-25 15:34:22 +02:00
Alain Miniussi
2a31dde183 Inject sizes and displacement support. 2016-10-25 13:42:58 +02:00
Alain Miniussi
61e0654098 Iterate on ouput instead of using indexed access.
Will make sharing implementation with variadic version easier.
2016-10-25 12:05:10 +02:00
Alain Miniussi
d81cbab4a1 gatherv is now point 2 point free. 2016-10-24 20:49:23 +02:00
Alain Miniussi
0a6092d5ff Generalized the gather MPI implementation function for non MPI datatypes in order to accomodate the variadic implementation. 2016-10-24 19:45:43 +02:00
Alain Miniussi
f55fee5e36 Iterate on output instead of using indexes.
It will be easier to merge with the variadic version.
2016-10-24 19:19:44 +02:00
Alain Miniussi
806d161cac add scatter example code 2016-10-24 17:33:10 +02:00
Alain Miniussi
2c9d9e6df7 Move non template code in non template file. 2016-10-24 15:35:33 +02:00
Alain Miniussi
abded0963a scatterv whithout point to point communication 2016-10-24 13:22:09 +02:00
Alain Miniussi
2003a35286 get a vector free version. 2016-10-24 13:21:41 +02:00
Alain Miniussi
f9d9ac9414 try to get a core dump in debug mode 2016-10-24 13:21:03 +02:00
Alain Miniussi
60360763f4 scatter is now clearly divided in 2 step: 1) fill the buffer, 2) dispatch the buffer 2016-10-21 17:21:00 +02:00
Alain Miniussi
3a0109112c prepare for passing each proc's number of element explicitly. 2016-10-21 16:58:23 +02:00
Alain Miniussi
7b27c12ab4 started isolating the scatter send bufferfilling. Will be shared with scatterv 2016-10-21 16:48:55 +02:00
Alain Miniussi
ef30d347f7 scatter does not use point to point anymore 2016-10-21 16:23:43 +02:00
Alain Miniussi
96def4ce61 was missing in previous commit, the name of sizes2offsetshas changed. 2016-10-21 16:22:57 +02:00
Alain Miniussi
e3f076023e There are as many sizes as offsets 2016-10-21 16:20:34 +02:00
Alain Miniussi
cdabc4398d Comply to boost indentation rules 2016-10-21 13:46:52 +02:00
Alain Miniussi
8aec85cfb0 allocae sizes only on root. 2016-10-21 11:12:37 +02:00
Alain Miniussi
a8b8049995 use data() instead of hacky &array[0] 2016-10-21 11:12:02 +02:00
Alain Miniussi
590c8c69b0 Set the output buffer size.
This function is often called on the root node only, so it is more convenient to allocate memory on demand.
2016-10-21 11:10:46 +02:00
Alain Miniussi
f254852f3d Comment typo, a template was wrongly calling gather (a test should be added for that case) 2016-10-21 10:48:24 +02:00
Alain Miniussi
23a64c3ef6 all_gather does not use point to point anymore. 2016-10-20 21:21:45 +02:00