2
0
mirror of https://github.com/boostorg/mpi.git synced 2026-02-25 16:32:22 +00:00
Commit Graph

228 Commits

Author SHA1 Message Date
Alain Miniussi
772337fa47 Merge branch 'develop'
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.
boost-1.59.0
2015-06-12 12:26:48 +02:00
Alain Miniussi
df5709960d Merge pull request #23 from thtrummer/develop
Add missing parameters in documentation (#9713)
2015-05-17 23:20:45 +02:00
Thomas Trummer
2cadf735fe Add missing parameters in documentation (#9713)
https://svn.boost.org/trac/boost/ticket/9713
2015-05-17 22:59:14 +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
49f3f9a4e3 Do not take adress of temp, even for a short time. 2015-04-24 01:02:03 +02:00
Alain Miniussi
7f32653c0b Allow debugger to attached to specific MPI processes.
It's vey basic right now, and still need to be documented.
2015-04-24 01:01:28 +02:00
Alain Miniussi
828c9f8332 Fix broken graph_comunicator ctor href. 2015-04-22 18:08:17 +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
870e038999 In doc, has_graph_topology -> as_graph_communicator 2015-04-22 17:13:19 +02:00
Alain Miniussi
62640eeabc Document the default change on BOOST_MPI_HOMOGENEOUS. 2015-04-22 16:38:51 +02:00
Alain Miniussi
e24fd6da99 Doxygen documentation of BOOST_MI_HOMOGENEOUS 2015-04-22 16:12:47 +02:00
Alain Miniussi
a11558185f Update the build install instruction.
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.
2015-04-22 16:00:31 +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
d0ded005b6 Relax condition for documentation generation.
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.
2015-04-21 16:54:18 +02:00
Alain Miniussi
27d0fcff20 Deal with null communicator when testing topology.
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.
2015-04-21 16:51:33 +02:00
Alain Miniussi
ebae825102 Upgrade obsolete C API.
The version 3 of the MPI standard is out now.
Upgraded really old (1.1) API to 2.x.
(cherry picked from commit f2e5edf320)
2015-04-17 15:13:44 +02:00
Alain Miniussi
4ca9f7266a Python section was missing [endsec]
(cherry picked from commit 6bc906ed0f)
2015-04-17 15:10:21 +02:00
Alain Miniussi
ecfb97b9bf Small typo, we had double slashes in external URL.
Did not hurt, but it nicer this way.
(cherry picked from commit fcc098aa59)

Conflicts:

	doc/mpi.qbk
2015-04-17 15:04:33 +02:00
Alain Miniussi
6ef7845faa Reflect mpi-forum web site modification.
The documentation at mpi-forum moved from http://www.mpi-forum.org/docs/mpi-11-html to http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html. Changed the documentation to reflect that.

(cherry picked from commit befe62d920)

Conflicts:

	doc/mpi.qbk
2015-04-17 15:01:42 +02:00
Alain Miniussi
accbafc66f Fixed deadlock involving wait_any and intel MPI.
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)
2015-04-17 14:47:12 +02:00
Alain Miniussi
f6f21efe31 Split nonblocking_test to ease debugging.
There are 2 functions in nonblocking_test. Which makes debuging less convenient with no benefit.
(cherry picked from commit 6fc0bc3d94)
2015-04-17 14:45:06 +02:00
Alain Miniussi
f4b1d96a55 Test_any loop was only testing the first request.
test_any was actually only testing the first request due to a typo in the for loop.
(cherry picked from commit 6c597245a2)
2015-04-17 14:39:28 +02:00
Alain Miniussi
bc13577187 Fixed const bug in save_override.
A few const were missing in save_override variants. As a result the most generl function was selected instead of the most specific versions.
Only trigger in BOOST_MPI_HOMOGENEOUS mode.
2015-04-17 14:23:07 +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
c527609cf6 adapted save_override for archive::class_id_optional_type to an API chenage in serialize so that it can be recognized.
added to UNIX only debug helper (not atually compiled by default) so that we can attach gdb to speciic MPI process.
2015-04-15 18:13:58 +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
K. Noel Belcourt
b4e86408c2 Enable new test now that missing source has been added. 2014-11-21 10:53:42 -07:00
Alain Miniussi
1144a111eb test file for stl container broadcast. 2014-11-20 21:45:47 +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
Noel Belcourt
b636b6dbe7 Fix broken develop testers.
Comment out missing test files committed by
Alain Miniussi so develop testers that run
MPI testers will cycle again.
2014-10-31 13:17:08 -06:00
Alain Miniussi
2cf0ab9258 Merge pull request #22 from aminiussi/sendrecv
Add a basic sendrecv that should be a direct transcription of the C interface
2014-10-29 00:50:42 +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
34c546b9cd Merge pull request #20 from aminiussi/nulltopo
MPI_COMM_NULL is not a valid argument for MPI_Topo_test.
But it is used to indicated leftover processes when creating graph communicator or cartesians grids (for exampl, when you create a 2X2 grid from a 5 process communicator).

So we need to deal with it as a special case.
2014-10-07 10:13:37 +02:00
Alain Miniussi
943023a6e2 Merge branch 'develop' of github.com:boostorg/mpi into nulltopo 2014-10-07 09:27:24 +02:00
Alain Miniussi
932457abd9 Merge pull request #21 from aminiussi/obsolete
upgrade MPI 1.1 stuff to MPI 2.x stuff
2014-10-07 09:23:47 +02:00
Alain Miniussi
f2e5edf320 The version 3 of the MPI standard is out now.
Upgraded really old (1.1) API to 2.x.
2014-10-07 00:39:54 +02:00
Alain Miniussi
33aa0744d1 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 grid or graphs. 2014-10-06 18:54:29 +02:00
Alain Miniussi
abd82f0eda Merge pull request #14 from aminiussi/compound_recv_wait
Wait_any is missing some compound recv with intel MPI.
In practice, this change should only affect implementations which, when stacking 2 send or 2 recv will only execute the second one when the first one is completed. As a result, when testing a compound recv on compound send, we get a catch22. This merge fixes that problem.
2014-09-16 14:08:44 +02:00
Alain Miniussi
1d498e48d5 Merge branch 'develop' into compound_recv_wait 2014-09-16 13:47:01 +02:00
Alain Miniussi
544b0017a5 Merge pull request #12 from aminiussi/test_any_bug
Only the first request was tested in test_any. We now test all of them.
2014-09-16 13:41:56 +02:00
Alain Miniussi
4f784b2347 Merge branch 'develop' into test_any_bug 2014-09-16 13:34:25 +02:00
Alain Miniussi
f104e41b84 Merge pull request #13 from aminiussi/nonblocking_test_split
split nonblocking_test in two functions, one to run all tests and one to run simgle tests.29292
2014-09-16 12:02:10 +02:00
Alain Miniussi
d7736702ac Merge branch 'develop' into nonblocking_test_split 2014-09-16 11:45:21 +02:00
Alain Miniussi
b4576d5811 Merge pull request #17 from aminiussi/develop
Python section was missing [endsec]
2014-09-16 11:35:59 +02:00
Alain Miniussi
6bc906ed0f Python section was missing [endsec] 2014-09-16 11:32:17 +02:00