Commit Graph

290 Commits

Author SHA1 Message Date
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
Alain Miniussi
6e06e914c6 convert a sequence of size to a sequence of offsets 2016-10-20 21:21:11 +02:00
Alain Miniussi
f8340229af identation 2016-10-20 21:20:42 +02:00
Alain Miniussi
8158aebc01 Use C API in gather implementation 2016-10-20 20:25:27 +02:00
Alain Miniussi
0efb1415f6 identation 2016-10-20 20:10:02 +02:00
Alain Miniussi
2bdf8df315 Pessimistic comment, broadcast never uses point to point 2016-10-20 19:34:14 +02:00
Alain Miniussi
a5b5a2c4d3 Fixed a pessimistic comment, all_to_all never uses individual send reciv. 2016-10-20 19:32:55 +02:00
Alain Miniussi
5e4beaccda Implement gather without any point to point communication. 2016-10-20 19:16:27 +02:00
Alain Miniussi
916e51dc62 Use broadcast imlementation proposed by Lorenz Hübschle-Schneider (https://gist.github.com/lorenzhs/79dab54552fd1f9381da): ofr non primitive/mpi type, broadcast the archive content as a primitive byte array. 2016-10-20 16:11:12 +02:00
Alain Miniussi
e47c532155 Merge pull request #36 from fweik/array
specialization of is_mpi_datatype for std::array
2016-10-19 15:52:17 +02:00
Alain Miniussi
9a90ae9048 Doc 2016-10-19 15:49:36 +02:00
Alain Miniussi
b5140a7dda Add basic ctor/dtor to topology class. 2016-10-19 15:47:51 +02:00
Alain Miniussi
876ac2e6f4 Not worth a function. 2016-10-19 15:05:03 +02:00
Alain Miniussi
c41d5e8476 Renamed coords -> coordinates
Removed inplace coortdinate retreiver (move ctor makes them useless)
2016-10-19 15:02:57 +02:00
Alain Miniussi
7d73ef198f Added a few topology ctors.
Documentation
2016-10-19 14:43:59 +02:00
Alain Miniussi
ebb22ff06b typo in doc 2016-10-15 22:45:18 +02:00
Alain Miniussi
56551fa441 Merge branch 'develop' into cartesian
Reintegration
2016-10-15 16:12:14 +02:00
Florian Weik
1c082e1ff8 specialization of is_mpi_datatype for std::array 2016-09-20 17:15:33 -06:00
K. Noel Belcourt
3eabcce9b6 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-07-22 12:14:58 -06:00
K. Noel Belcourt
85bb58d75b Add send and recv overloads for std::vector. 2016-07-21 21:48:02 -06:00
Jonathan Wakely
8b73e340f0 Fix spelling in docs and config.hpp (#35) 2016-07-16 17:00:03 -06:00
Jonathan Wakely
004df1037e Fix spelling in docs and config.hpp (#35) 2016-05-23 11:33:11 -06:00
K. Noel Belcourt
7d33e519b3 Fix typo with rename to array_wrapper. 2016-04-26 13:38:25 -06:00
Jürgen Hunold
0dce8d2c2a Fix: adapt to renaming of serialization::array_wrapper (#30)
Fix: adapt to renaming of serialization::array_wrapper

Tested that both graph_parallel and MPI work fine with El Capitan and clang, thanks for the patch!
2016-04-26 13:38:12 -06:00
K. Noel Belcourt
e4be4411c8 Fix typo with rename to array_wrapper. 2016-04-25 13:15:25 -06:00
Jürgen Hunold
c70e7ff243 Fix: adapt to renaming of serialization::array_wrapper (#30)
Fix: adapt to renaming of serialization::array_wrapper

Tested that both graph_parallel and MPI work fine with El Capitan and clang, thanks for the patch!
2016-04-24 13:59:36 -06:00
Alain Miniussi
7791752122 Merge branch 'fix_compilation' of https://github.com/MarcelRaad/mpi into MarcelRaad-fix_compilation 2015-09-21 23:50:11 +02:00
Alain Miniussi
1bd679217c Remove unused parameter warning from scan.hpp
by nasailja
2015-09-21 23:46:02 +02:00
Ilja
ceafbbfe2d Remove unused parameter warnings from reduce.hpp 2015-09-21 20:06:05 +02:00
Marcel Raad
76b3b16ae3 Fix compilation
There were several errors when compiling with MSVC 14 and --build-type=complete.
2015-06-06 20:39:54 +02:00
Alain Miniussi
58713af3e2 Workaround MPI_Bcast bug w.r.t. MPI_BOTTOM.
Some implementations have issues with  using MPI_BOTTOM in MPI_Bcast.
If that the case we can use an alternate implementation.

There is a macro in config.hpp named BOOST_MPI_BCAST_BOTTOM_WORKS_FINE
that can be used to control that. broadcast_test.cpp print a message
that point to that macro if suspicious behavior is detected.

LAM and Bull X MPI seems to have that problem.
2015-04-24 01:02:52 +02:00
Alain Miniussi
6469e38af0 remove all references to pfto.hpp
pfto.hpp has been removed from serialization. Although it was not used
anymore, it was still referenced in MPI.

The reason why the problem went unotced for such long time was that
there is a regular distribution of boost on a developper platform.

Shame on him.
2015-04-22 17:53:18 +02:00
Alain Miniussi
e24fd6da99 Doxygen documentation of BOOST_MI_HOMOGENEOUS 2015-04-22 16:12:47 +02:00
Alain Miniussi
f0a95bdb9d Make homogeneous platform the default.
It is the default in HPC anyway, and the default of most underlying MPI implementions.
2015-04-21 16:57:28 +02:00
Alain Miniussi
15ad1b215b When ptfo workaround was removed from serialization, some changes
had to be made in the  MPI library (extra argument were inserted only
to help overloading resolution and had to be removed). I missed one
in heterogrneous mode. Here it is.
2015-04-16 17:09:35 +02:00
Alain Miniussi
fc959903e3 Consistency between mpl's true and fale usage. 2015-04-16 17:08:42 +02:00
Alain Miniussi
5a17a3b90a restore the default setting 2015-04-16 17:08:21 +02:00
Alain Miniussi
db6b816964 Following a change in serializtion, the
save_override(const archive::class_id_optional_type & )
was not overriden anymore in oarchive.
2015-04-16 15:16:59 +02:00
Alain Miniussi
b21015c131 Select homogeneous platform. That's the most common situationin HPC but it is not selected by default for portability. 2015-04-15 13:10:24 +02:00
Alain Miniussi
40c3f3ec2e Propagated some changes made in serilization related with archive version and pfto removal. 2015-04-14 17:10:39 +02:00
Alain Miniussi
b907db31ce Merge branch 'develop' into cartesian 2014-11-03 14:44:18 +01:00
Noel Belcourt
cf5785e040 Merge pull request #11 from ventrebd/fix-#10444-mpi-archive-failure
Fix #10444: MPI archive failure

No, I wasn't sure enough of the impact of this change to want it in 1.57.  I just merged it now, we'll have 3 months to make sure it doesn't cause any problems.  I apologize for the delay.
2014-10-31 14:37:41 -06:00
Alain Miniussi
fe76d96819 Merge branch 'develop' into cartesian 2014-10-29 01:07:01 +01:00
Alain Miniussi
3884466f5c Forgot to test the non mpi primitive type. 2014-10-29 00:47:37 +01:00
Alain Miniussi
fad1e0737b Add a basic sendrecv that should be a direct transcription of the C interface. 2014-10-28 14:47:37 +01:00
Alain Miniussi
911209c554 checkpointing before transfert 2014-10-10 16:38:44 +02:00
Alain Miniussi
243fa971c4 Added topology pretty printing
Removed a few "unsigned int" comparuson warnings with g++
Splitted bug test_main function
2014-10-06 18:05:44 +02:00
Alain Miniussi
5f46dec83c Merge branch 'develop' into cartesian 2014-09-16 14:11:27 +02:00
Alain Miniussi
1d498e48d5 Merge branch 'develop' into compound_recv_wait 2014-09-16 13:47:01 +02:00
Alain Miniussi
00a49f55c9 doxygen typo 2014-09-15 17:17:45 +02:00
Alain Miniussi
cbbb9a450f Added down cast functions for communicator to cartesian communicator conversion. 2014-09-15 17:02:51 +02:00
Alain Miniussi
b7e89aeb60 Merge branch 'map-c-update' into cartesian 2014-09-15 15:42:59 +02:00
Alain Miniussi
99acdb85fd added some documentation 2014-09-15 15:18:28 +02:00
Alain Miniussi
0f13d9a20c Improved cartesian topology description. 2014-09-12 18:38:45 +02:00
Alain Miniussi
a1c6e750cb Added first tentative implementation of cartesian_communicator.
The API should be complete although primitive.
No documentation yet.
2014-09-11 14:46:22 +02:00
Alain Miniussi
ed4852863a In wait_any, we need to test for compound recv of serialized object that just got the size but not the body (that is, request[1] == null & handler != null).
Note that in:
if (current->m_requests[0] != MPI_REQUEST_NULL &&
        (current->m_requests[1] != MPI_REQUEST_NULL ||
         current->m_handler)) {
      if (optional<status> result = current->test())
        return std::make_pair(*result, current);
    }

I suspect the 3 line test should be removed and every thng handled in request::test (which is supposed to tell wheter we have a complete request).
But I have no idea why it was done like that in the first place.
2014-09-10 13:37:11 +02:00
Alain Miniussi
6c597245a2 test_any was actually nly testing the firt request due to a typo in the for loop. 2014-09-10 11:03:11 +02:00
Ventre, Brian D.
463e897f75 Fix #10444: MPI archive failure
Add "const" to save_override for archive::class_id_type and archive::version_type.  WIthout it, they do not participate in overload resolution when called with a const argument, and the default template function is called.  This leads to saving 4 bytes for archive::version_type, but only loading 1 -- all subsequent load operations are then off by 3 bytes.
2014-09-04 09:07:03 -04:00
Alain Miniussi
9ddbac64c8 First incompomplete skectch of apossible cartesian communicator. 2014-09-04 14:12:46 +02:00
K. Noel Belcourt
fe6e8b77ac Only resize vector on root rank we're reducing to.
As Steve Nowlen (drnuke@lanl.gov) pointed out, we can
avoid the vector resize on all ranks except the root we're
reducing to.
2014-09-01 21:07:53 -06:00
Noel Belcourt
76c79c90f8 Merge pull request #6 from juliohm/develop
Add scatterv and gatherv collective operations

Tested with clang-5.1 on Mavericks and gcc-4.8.2 on Linux.  I'll make some wordsmithing, column 80, and a couple of other small changes after the commit.  Thanks Julio, nice work.
2014-07-12 15:21:23 -06:00
Júlio Hoffimann
e70a7f937f Fix indentation in scatterv.hpp and gatherv.hpp 2014-06-17 13:23:53 -03:00
Júlio Hoffimann
f1ec2fcb22 Make scatterv and gatherv into collectives.hpp 2014-06-16 15:24:34 -03:00
K. Noel Belcourt
fd54b706c6 Merge branch 'master' into develop
Conflicts:
	include/boost/mpi/packed_iarchive.hpp
	include/boost/mpi/packed_oarchive.hpp
2014-05-09 19:56:18 -06:00
Júlio Hoffimann
1f651b8cb1 Add scatterv and gatherv collective operations 2014-05-03 14:26:06 -03:00
K. Noel Belcourt
a7a2501242 Fix problems caused by serialization changes. 2014-02-21 20:46:26 -07:00
Jürgen Hunold
b33caa7d6c Add visibility support for Boost.MPI. Fixes #2114 2014-01-04 11:04:06 +01:00
Matthias Troyer
9193f9942e Fixed #9401
[SVN r86734]
2013-11-17 10:46:25 +00:00
Matthias Troyer
c2b505cca8 Fixed #9356
[SVN r86712]
2013-11-15 19:22:18 +00:00
Matthias Troyer
d8663f9c3d Fixed #9258
[SVN r86353]
2013-10-18 14:56:51 +00:00
Matthias Troyer
e6a31170ea Fixed #9208
[SVN r86207]
2013-10-08 19:05:04 +00:00
Matthias Troyer
8817058e0a Merged Boost.MPI patches to release
[SVN r85553]
2013-09-03 19:31:55 +00:00
Matthias Troyer
e9b92c58c8 Various additiond and patches for Boost.MPI
[SVN r85527]
2013-08-30 14:30:09 +00:00
Matthias Troyer
7cfa3db27a Fixed #6436 #5596 and added threaded initialization
[SVN r84739]
2013-06-11 08:30:39 +00:00
Matthias Troyer
ff6f4c64f7 Several minor bug fixes and updates
[SVN r82524]
2013-01-17 15:25:50 +00:00
Matthias Troyer
967114eb31 Added missing resize of vector, to become compatible with documentation
[SVN r76186]
2011-12-26 17:29:36 +00:00
Matthias Troyer
040a3a9654 Added missing include headers for assert
[SVN r76182]
2011-12-26 17:25:21 +00:00
Matthias Troyer
a1ca5b5e7b Fixed tickets #4693 and #4772
[SVN r66785]
2010-11-27 12:40:31 +00:00
Matthias Troyer
b9343fe56c Moved Boost.MPI fixes for the 1.45 release to the release branch
[SVN r66067]
2010-10-18 06:22:09 +00:00
Matthias Troyer
459dfc7e98 Fixed pointer serialization in Boost.MPI
[SVN r65997]
2010-10-16 00:49:36 +00:00
Matthias Troyer
170dfd4717 Fixes for homogenous MPI when using new version of the serialization library
[SVN r65965]
2010-10-14 20:08:27 +00:00
Matthias Troyer
9a6c6a5f7b Added shared pointer support
[SVN r65556]
2010-09-23 19:26:26 +00:00
Matthias Troyer
50f71c9b00 Changes required to make Boost.MPI work with Boost.Serialization after breaking changes for 1.44
[SVN r64423]
2010-07-29 03:27:09 +00:00
Matthias Troyer
fdc02fc7f9 Attempted workaround to breaking changes in Boost.Serialization and removed any remaining dependence on binary archives
[SVN r64343]
2010-07-25 22:53:03 +00:00
Matthias Troyer
015b27c70a Fixed Boost.MPI following breaking changes in Boost.Serialization
[SVN r63537]
2010-07-03 03:20:14 +00:00
Matthias Troyer
30f9e8afe6 replaced MPL_ASSERT by STATIS_ASSERT because of gcc-4.4 bug
[SVN r56979]
2009-10-18 16:03:53 +00:00
Matthias Troyer
27893126b6 replaced MPL_ASSERT by STATIS_ASSERT because of gcc-4.4 bug
[SVN r56978]
2009-10-18 16:03:46 +00:00
Matthias Troyer
a8ada68d28 Templated string serialization on the char type
[SVN r56138]
2009-09-10 15:22:21 +00:00
Matthias Troyer
d9138b55d4 Removing assert that fails to compile on some compilers
[SVN r56130]
2009-09-10 07:08:26 +00:00
Matthias Troyer
4438c5850d Added missing includes to Boost.MPI archives
[SVN r55505]
2009-08-10 16:51:15 +00:00
Matthias Troyer
2a937afbbe Moved last unmerged changes for MPI in Boost 1.40
[SVN r55504]
2009-08-10 16:47:36 +00:00
Matthias Troyer
3f8772abe9 Added missing includes to Boost.MPI archives
[SVN r55503]
2009-08-10 16:46:59 +00:00
Matthias Troyer
33a8f15b45 Fixed trac issue 3261
[SVN r55438]
2009-08-06 20:41:28 +00:00
Matthias Troyer
ff26392c36 Fixed trac issue 3261
[SVN r55437]
2009-08-06 20:41:25 +00:00
Matthias Troyer
03852ad934 Moved Boost.MPI from trunk to release to make it compile with Boost.Serialization on the release branch
[SVN r55433]
2009-08-06 19:04:54 +00:00
Matthias Troyer
2138aefce1 Added missing declspec
[SVN r55426]
2009-08-05 22:00:12 +00:00
Matthias Troyer
e985aae60c Fixed ticket #2151
[SVN r55418]
2009-08-05 05:02:04 +00:00
Matthias Troyer
84a5fc599f Made Boost.MPI work with the new pointer serialization
[SVN r55139]
2009-07-23 23:19:16 +00:00
Daniel James
4bf37892a1 Switch to boost/serialization/pfto.hpp. Fixes #3061.
Merged revisions 48610 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r48610 | dgregor | 2008-09-05 14:39:26 +0100 (Fri, 05 Sep 2008) | 1 line
  
  Silence -Wunused warnings and switch to boost/serialization/pfto.hpp
........


[SVN r53755]
2009-06-08 19:03:11 +00:00
Matthias Troyer
c8fe71649f Fixes for bugs 2586 and 2594
[SVN r52820]
2009-05-07 05:48:26 +00:00
Jeremiah Willcock
1daf91c82d Moved property map library into property_map/ directory; made old files into stubs with #warnings; converted uses and docs of property map library to use new names
[SVN r52226]
2009-04-07 01:28:38 +00:00