12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // Copyright 2005 Douglas Gregor.
- // Use, modification and distribution is subject to the Boost Software
- // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- // Message Passing Interface 1.1 -- Section 3. MPI Point-to-point
- #ifndef BOOST_MPI_DETAIL_POINT_TO_POINT_HPP
- #define BOOST_MPI_DETAIL_POINT_TO_POINT_HPP
- // For (de-)serializing sends and receives
- #include <boost/mpi/config.hpp>
- #include <boost/mpi/packed_oarchive.hpp>
- #include <boost/mpi/packed_iarchive.hpp>
- namespace boost { namespace mpi { namespace detail {
- /** Sends a packed archive using MPI_Send. */
- BOOST_MPI_DECL void
- packed_archive_send(MPI_Comm comm, int dest, int tag,
- const packed_oarchive& ar);
- /** Sends a packed archive using MPI_Isend.
- *
- * This routine may split sends into multiple packets. The MPI_Request
- * for each packet will be placed into the out_requests array, up to
- * num_out_requests packets. The number of packets sent will be
- * returned from the function.
- *
- * @pre num_out_requests >= 2
- */
- BOOST_MPI_DECL int
- packed_archive_isend(MPI_Comm comm, int dest, int tag,
- const packed_oarchive& ar,
- MPI_Request* out_requests, int num_out_requests);
- /**
- * \overload
- */
- BOOST_MPI_DECL int
- packed_archive_isend(MPI_Comm comm, int dest, int tag,
- const packed_iarchive& ar,
- MPI_Request* out_requests, int num_out_requests);
- /** Receives a packed archive using MPI_Recv. */
- BOOST_MPI_DECL void
- packed_archive_recv(MPI_Comm comm, int source, int tag, packed_iarchive& ar,
- MPI_Status& status);
- } } } // end namespace boost::mpi::detail
- #endif // BOOST_MPI_DETAIL_POINT_TO_POINT_HPP
|