![]() |
Home | Libraries | People | FAQ | More |
This file is a top-level convenience header that includes all of the Boost.MPI library headers. Users concerned about compile time may wish to include only specific headers from the Boost.MPI library.
This header provides an STL-compliant allocator that uses the MPI-2 memory allocation facilities.
template<typename T> class allocator; template<> class allocator<>; template<typename T1, typename T2> (allocator< , allocator< ); template<typename T1, typename T2> (allocator< , allocator< ); } }
This header defines facilities to support MPI communicators with cartesian topologies. If known at compiled time, the dimension of the implied grid can be statically enforced, through the templatized communicator class. Otherwise, a non template, dynamic, base class is provided.
class cartesian_communicator; struct cartesian_dimension; class cartesian_topology; template<> struct is_mpi_datatype<>; // Test if the dimensions values are identical. (cartesian_dimension d1, cartesian_dimension d2); // Test if the dimension values are different. (cartesian_dimension d1, cartesian_dimension d2); // Pretty printing of a cartesian dimension (size, periodic) ( out, cartesian_dimension d); (cartesian_topology t1, cartesian_topology t2); (cartesian_topology t1, cartesian_topology t2); // Pretty printing of a cartesian topology. ( out, cartesian_topology t); (, ); } }
This header contains MPI collective operations, which implement various parallel algorithms that require the coordination of all processes within a communicator. The header collectives_fwd.hpp
provides forward declarations for each of these operations. To include only specific collective algorithms, use the headers boost/mpi/collectives/algorithm_name.hpp
.
template<typename T> (communicator &, , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , ); template<typename T, typename Op> (communicator &, , , , ); template<typename T, typename Op> (communicator &, , , ); template<typename T, typename Op> (communicator &, , ); template<typename T, typename Op> (communicator &, inplace_t< , , ); template<typename T, typename Op> (communicator &, inplace_t< , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, skeleton_proxy< , ); template<typename T> (communicator &, skeleton_proxy< , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , , , ); template<typename T> (communicator &, , , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , , , ); template<typename T> (communicator &, , , , , , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , , , ); template<typename T> (communicator &, , , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , ); template<typename T> (communicator &, , , , ); template<typename T> (communicator &, , , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , , , , ); template<typename T> (communicator &, , , , , , ); template<typename T> (communicator &, , , ); template<typename T> (communicator &, , , , ); template<typename T> (communicator &, , , , ); template<typename T, typename Op> (communicator &, , , , ); template<typename T, typename Op> (communicator &, , , ); template<typename T, typename Op> (communicator &, , , , , ); template<typename T, typename Op> (communicator &, , , , ); template<typename T, typename Op> (communicator &, , , ); template<typename T, typename Op> (communicator &, , ); template<typename T, typename Op> (communicator &, , , , ); } }
This header provides forward declarations for all of the collective operations contained in the header collectives.hpp
.
This header defines the communicator
class, which is the basis of all communication within Boost.MPI, and provides point-to-point communication operations.
class communicator; enum comm_create_kind; any_source; // A constant representing "any process.". any_tag; // A constant representing "any tag.". (communicator &, communicator &); (communicator &, communicator &); } }
This header provides MPI configuration details that expose the capabilities of the underlying MPI implementation, and provides auto-linking support on Windows.
MPICH_IGNORE_CXX_SEEK OMPI_SKIP_MPICXX BOOST_MPI_HOMOGENEOUS BOOST_MPI_VERSION BOOST_MPI_SUBVERSION BOOST_MPI_CALLING_CONVENTION BOOST_MPI_BCAST_BOTTOM_WORKS_FINE BOOST_MPI_DECL
This header provides the mapping from C++ types to MPI data types.
BOOST_IS_MPI_DATATYPE(T)
template<typename T> struct is_mpi_builtin_datatype; template<typename T> struct is_mpi_byte_datatype; template<typename T> struct is_mpi_complex_datatype; template<typename T> struct is_mpi_datatype; template<typename T> struct is_mpi_floating_point_datatype; template<typename T> struct is_mpi_integer_datatype; template<typename T> struct is_mpi_logical_datatype; template<typename T> (); } }
This header provides forward declarations for the contents of the header datatype.hpp
. It is expected to be used primarily by user-defined C++ classes that need to specialize is_mpi_datatype
.
struct packed; template<typename T> (); } }
This header provides the environment
class, which provides routines to initialize, finalization, and query the status of the Boost MPI environment.
class environment; enum level; (, ); (, ); } } }
This header provides exception classes that report MPI errors to the user and macros that translate MPI error codes into Boost.MPI exceptions.
BOOST_MPI_CHECK_RESULT(MPIFunc, Args)
class exception; } }
This header defines facilities to support MPI communicators with graph topologies, using the graph interface defined by the Boost Graph Library. One can construct a communicator whose topology is described by any graph meeting the requirements of the Boost Graph Library's graph concepts. Likewise, any communicator that has a graph topology can be viewed as a graph by the Boost Graph Library, permitting one to use the BGL's graph algorithms on the process topology.
template<> struct graph_traits<>; class graph_communicator; // Returns the source vertex from an edge in the graph topology of a communicator. ( edge, graph_communicator &); // Returns the target vertex from an edge in the graph topology of a communicator. ( edge, graph_communicator &); // Returns an iterator range containing all of the edges outgoing from the given vertex in a graph topology of a communicator. ( vertex, graph_communicator & comm); // Returns the out-degree of a vertex in the graph topology of a communicator. ( vertex, graph_communicator & comm); // Returns an iterator range containing all of the neighbors of the given vertex in the communicator's graph topology. ( vertex, graph_communicator & comm); // Returns an iterator range that contains all of the vertices with the communicator's graph topology, i.e., all of the process ranks in the communicator. (graph_communicator & comm); // Returns the number of vertices within the graph topology of the communicator, i.e., the number of processes in the communicator. (graph_communicator & comm); // Returns an iterator range that contains all of the edges with the communicator's graph topology. (graph_communicator & comm); // Returns the number of edges in the communicator's graph topology. (graph_communicator & comm); (, graph_communicator &); (, graph_communicator &, ); } }
This header defines the group
class, which allows one to manipulate and query groups of processes.
class group; (group &, group &); (group &, group &); group (group &, group &); group (group &, group &); group (group &, group &); } }
This header provides helpers to indicate to MPI collective operation that a buffer can be use both as an input and output.
template<typename T> struct inplace_t; template<typename T> struct inplace_t<>; template<typename T> inplace_t< (); template<typename T> inplace_t< (); } }
This header defines the intercommunicator
class, which permits communication between different process groups.
class intercommunicator; } }
This header defines operations for completing non-blocking communication requests.
template<typename ForwardIterator> status, (, ); template<typename ForwardIterator> status, (, ); template<typename ForwardIterator, typename OutputIterator> (, , ); template<typename ForwardIterator> (, ); template<typename ForwardIterator, typename OutputIterator> (, , ); template<typename ForwardIterator> (, ); template<typename BidirectionalIterator, typename OutputIterator> (, , ); template<typename BidirectionalIterator> (, ); template<typename BidirectionalIterator, typename OutputIterator> (, , ); template<typename BidirectionalIterator> (, ); } }
This header provides a mapping from function objects to MPI_Op
constants used in MPI collective operations. It also provides several new function object types not present in the standard <functional> header that have direct mappings to
MPI_Op
.
template<typename T> struct bitwise_and; template<typename T> struct bitwise_or; template<typename T> struct bitwise_xor; template<typename Op, typename T> struct is_commutative; template<typename Op, typename T> struct is_mpi_op; template<typename T> struct logical_xor; template<typename T> struct maximum; template<typename T> struct minimum; } }
This header provides the facilities for packing Serializable data types into a buffer using MPI_Pack
. The buffers can then be transmitted via MPI and then be unpacked either via the facilities in packed_oarchive.hpp
or MPI_Unpack
.
class packed_iarchive; typedef ; } }
This header provides the facilities for unpacking Serializable data types from a buffer using MPI_Unpack
. The buffers are typically received via MPI and have been packed either by via the facilities in packed_iarchive.hpp
or MPI_Pack
.
class packed_oarchive; typedef ; } }
This header interacts with the Python bindings for Boost.MPI. The routines in this header can be used to register user-defined and library-defined data types with Boost.MPI for efficient (de-)serialization and separate transmission of skeletons and content.
template<typename T> ( = , = ); template<typename T> ( = , = ); } } }
This header defines the class request
, which contains a request for non-blocking communication.
class request; } }
This header provides facilities that allow the structure of data types (called the "skeleton") to be transmitted and received separately from the content stored in those data types. These facilities are useful when the data in a stable data structure (e.g., a mesh or a graph) will need to be transmitted repeatedly. In this case, transmitting the skeleton only once saves both communication effort (it need not be sent again) and local computation (serialization need only be performed once for the content).
This header contains all of the forward declarations required to use transmit skeletons of data structures and the content of data structures separately. To actually transmit skeletons or content, include the header boost/mpi/skeleton_and_content.hpp
.
template<typename T> struct skeleton_proxy; template<typename T> skeleton_proxy< ( x); template<typename T> ( x); } }
This header defines the class status
, which reports on the results of point-to-point communication.
class status; } }
This header provides the timer
class, which provides access to the MPI timers.
class timer; } }