1 // Copyright (C) 2017 Alain Miniussi & Vincent Chabannes
3 // Use, modification and distribution is subject to the Boost Software
4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
12 #include <boost/mpi.hpp>
13 #include <boost/mpi/nonblocking.hpp>
14 #include <boost/serialization/string.hpp>
16 #define BOOST_TEST_MODULE mpi_wait_any
17 #include <boost/test/included/unit_test.hpp>
19 namespace mpi = boost::mpi;
21 BOOST_AUTO_TEST_CASE(wait_any)
24 mpi::communicator comm;
26 int rank = comm.rank();
28 std::vector<int> data;
29 std::vector< mpi::request> reqs;
31 for ( int i=0; i<sz; ++i ) {
34 reqs.push_back( comm.isend(1, 0, data) );
35 } else if ( rank == 1 ) {
36 reqs.push_back( comm.irecv(0, 0, data) );
38 mpi::wait_all( reqs.begin(), reqs.end() );
41 BOOST_CHECK(data.size() == sz);
42 for ( int i=0; i<sz; ++i ) {
43 BOOST_CHECK(data[i] == i);