Fix my previous cherry-picks with a whitespace change to force the merge.
* doc: Fix typos
* 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!
* Fix typo with rename to array_wrapper.
* Whitespace change.
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!
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!
Bulk merge of the develop branch.
This include, bug fixes, new features (like scaterv and gatherv), doc
changes etc.. some of which have been around for some time now.
A more "incremental" merge could have been in order, but recent changes
in the serialization library have hurt the homogenenous Boost MPI
very hard (does not build at all anymore) and extreme times calls for
extreme measures (and git beeing what it is, it is not clear a mere
mortal with a day job could handle the process).
This merge had passed all its test in both homogeneous mode (now the
default) and heterogenous and the priority is probably to avoid
shipping the next release with a broken build.
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.
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.
Some instruction were not in line with the current build process anymore.
Also, the supported (well, tested) list of MPI implementations was not up tu date.
Add a (possibly redundant) using decl to allow documentation generation.
Possibly not very clean, but boostbook being what it is right now, let give
a break to the nice people who wants to test the doc.
When calling MPI_Topo_test, explicitly deal with MPI_COMM_NULL as it is not a legal value.
Although it is what is return for leftovers process when creating cartesian or graph
communicators.
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.
(cherry picked from commit ed4852863a)