|
Tpetra parallel linear algebra
Version of the Day
|
MpiPlatform specialization for the default Node type. More...
#include <Tpetra_MpiPlatform.hpp>
Inherits Describable.
Public Types | |
Typedefs | |
| typedef ::Tpetra::Details::DefaultTypes::node_type | NodeType |
| Kokkos Node type; the template parameter of this class. More... | |
Public Member Functions | |
Constructors and destructor | |
| MpiPlatform () | |
| Default constructor: uses Kokkos default node and MPI_COMM_WORLD. More... | |
| MpiPlatform (int *argc, char ***argv) | |
| Constructor that accepts the same arguments as MPI_Init(). More... | |
| MpiPlatform (const Teuchos::RCP< NodeType > &node) | |
| Constructor that accepts a Kokkos Node. More... | |
| MpiPlatform (int *argc, char ***argv, const Teuchos::RCP< NodeType > &node) | |
| Constructor that accepts the same arguments as MPI_Init(), plus a Kokkos Node. More... | |
| MpiPlatform (const Teuchos::RCP< NodeType > &node, const Teuchos::RCP< const Teuchos::OpaqueWrapper< MPI_Comm > > &rawMpiComm) | |
| Constructor that accepts a Kokkos Node and a wrapped MPI communicator. More... | |
| MpiPlatform (int *argc, char ***argv, const Teuchos::RCP< NodeType > &node, const Teuchos::RCP< const Teuchos::OpaqueWrapper< MPI_Comm > > &rawMpiComm) | |
| Constructor that accepts the same arguments as MPI_Init(), plus a Kokkos Node and a wrapped MPI communicator. More... | |
| MpiPlatform (const Teuchos::RCP< NodeType > &node, MPI_Comm rawMpiComm) | |
| Constructor that accepts a Kokkos Node and a raw MPI communicator. More... | |
| MpiPlatform (int *argc, char ***argv, const Teuchos::RCP< NodeType > &node, MPI_Comm rawMpiComm) | |
| Constructor that accepts the same arguments as MPI_Init(), plus a Kokkos Node and a raw MPI communicator. More... | |
| virtual | ~MpiPlatform () |
| Destructor (virtual for memory safety of derived classes). More... | |
Methods to access the communicator and Kokkos Node. | |
| Teuchos::RCP< const Teuchos::Comm< int > > | comm_ |
| Teuchos::Comm object instantiated for the platform. More... | |
| Teuchos::RCP< const Teuchos::Comm< int > > | getComm () const |
| The Teuchos::Comm instance with which this object was created. More... | |
| Teuchos::RCP< NodeType > | getNode () const |
| The default Kokkos Node instance. More... | |
MpiPlatform specialization for the default Node type.
*Platform classes any more. To initialize Tpetra, include Tpetra_Core.hpp and use Tpetra::ScopeGuard, or Tpetra::initialize and Tpetra::finalize. To get Tpetra's default Comm instance, include Tpetra_Core.hpp and call Tpetra::getDefaultComm(). For the default Node type, use Tpetra::Map<>::node_type. Do not create Node instances yourself. It is OK for Node instances to be null. Definition at line 300 of file Tpetra_MpiPlatform.hpp.
| typedef ::Tpetra::Details::DefaultTypes::node_type Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::NodeType |
Kokkos Node type; the template parameter of this class.
Definition at line 307 of file Tpetra_MpiPlatform.hpp.
Default constructor: uses Kokkos default node and MPI_COMM_WORLD.
| Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::MpiPlatform | ( | int * | argc, |
| char *** | argv | ||
| ) |
Constructor that accepts the same arguments as MPI_Init().
| argc | [in/out] First argument of MPI_Init(). |
| argv | [in/out] Second argument of MPI_Init(). |
|
explicit |
Constructor that accepts a Kokkos Node.
This version of the constructor uses MPI_COMM_WORLD as the communicator. It is declared "explicit" to forbid silent type conversions from the Node instance to an MpiPlatform. (A single-argument constructor that is not declared "explicit" defines a type conversion method from the input type to the constructor's class's type.) The "explicit" declaration does not affect typical use of this constructor.
| node | [in/out] The Kokkos Node instance. |
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
| Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::MpiPlatform | ( | int * | argc, |
| char *** | argv, | ||
| const Teuchos::RCP< NodeType > & | node | ||
| ) |
Constructor that accepts the same arguments as MPI_Init(), plus a Kokkos Node.
This version of the constructor uses MPI_COMM_WORLD as the default communicator.
| argc | [in/out] First argument of MPI_Init(). |
| argv | [in/out] Second argument of MPI_Init(). |
| node | [in/out] The Kokkos Node instance. |
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
| Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::MpiPlatform | ( | const Teuchos::RCP< NodeType > & | node, |
| const Teuchos::RCP< const Teuchos::OpaqueWrapper< MPI_Comm > > & | rawMpiComm | ||
| ) |
Constructor that accepts a Kokkos Node and a wrapped MPI communicator.
This version of the constructor accepts an arbitrary MPI communicator. It requires that you first wrap the MPI communicator in a Teuchos::OpaqueWrapper. This is helpful if you want to "free" the communicator automatically after use.
If you just have a raw MPI_Comm and you want to be responsible for freeing it after use, use the constructor version that takes a raw MPI_Comm. Otherwise, see the documentation of Teuchos::OpaqueWrapper to learn how to wrap an MPI_Comm and how to set the wrapper to free the communicator automatically after use.
| node | [in/out] The Kokkos Node instance. |
| rawMpiComm | [in] The MPI communicator, wrapped in a Teuchos::OpaqueWrapper. |
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
| Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::MpiPlatform | ( | int * | argc, |
| char *** | argv, | ||
| const Teuchos::RCP< NodeType > & | node, | ||
| const Teuchos::RCP< const Teuchos::OpaqueWrapper< MPI_Comm > > & | rawMpiComm | ||
| ) |
Constructor that accepts the same arguments as MPI_Init(), plus a Kokkos Node and a wrapped MPI communicator.
This version of the constructor accepts an arbitrary MPI communicator. It requires that you first wrap the MPI communicator in a Teuchos::OpaqueWrapper. This is helpful if you want to "free" the communicator automatically after use.
If you just have a raw MPI_Comm and you want to be responsible for freeing it after use, use the constructor version that takes a raw MPI_Comm. Otherwise, see the documentation of Teuchos::OpaqueWrapper to learn how to wrap an MPI_Comm and how to set the wrapper to free the communicator automatically after use.
| argc | [in/out] First argument of MPI_Init(). |
| argv | [in/out] Second argument of MPI_Init(). |
| node | [in/out] The Kokkos Node instance. |
| rawMpiComm | [in] The MPI communicator, wrapped in a Teuchos::OpaqueWrapper. |
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
| Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::MpiPlatform | ( | const Teuchos::RCP< NodeType > & | node, |
| MPI_Comm | rawMpiComm | ||
| ) |
Constructor that accepts a Kokkos Node and a raw MPI communicator.
This version of constructor accepts an arbitrary "raw" (not wrapped) MPI communicator. You are responsible for freeing the MPI communicator after use, if necessary.
| node | [in/out] The Kokkos Node instance. |
| rawMpiComm | [in] The "raw" (not wrapped) MPI communicator. |
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
| Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::MpiPlatform | ( | int * | argc, |
| char *** | argv, | ||
| const Teuchos::RCP< NodeType > & | node, | ||
| MPI_Comm | rawMpiComm | ||
| ) |
Constructor that accepts the same arguments as MPI_Init(), plus a Kokkos Node and a raw MPI communicator.
This version of the constructor accepts an arbitrary "raw" (not wrapped) MPI communicator. You are responsible for freeing the MPI communicator after use, if necessary.
| argc | [in/out] First argument of MPI_Init(). |
| argv | [in/out] Second argument of MPI_Init(). |
| node | [in/out] The Kokkos Node instance. |
| rawMpiComm | [in] The "raw" (not wrapped) MPI communicator. |
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
|
virtual |
Destructor (virtual for memory safety of derived classes).
| Teuchos::RCP<const Teuchos::Comm<int> > Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::getComm | ( | ) | const |
The Teuchos::Comm instance with which this object was created.
| Teuchos::RCP<NodeType> Tpetra::MpiPlatform< ::Tpetra::Details::DefaultTypes::node_type >::getNode | ( | ) | const |
The default Kokkos Node instance.
Node will be deprecated and removed in favor of Kokkos::Device, so the Node can and should always be Teuchos::null.
|
protected |
Teuchos::Comm object instantiated for the platform.
Definition at line 474 of file Tpetra_MpiPlatform.hpp.
1.8.16