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 > > | getComm () const |
The Teuchos::Comm instance with which this object was created. More... | |
Teuchos::RCP< NodeType > | getNode () const |
The default Kokkos Node instance. More... | |
Protected Attributes | |
Teuchos::RCP< const Teuchos::Comm< int > > | comm_ |
Teuchos::Comm object instantiated for the platform. More... | |
Teuchos::RCP< NodeType > | node_ |
Kokkos Node object instantiated for the platform. More... | |
MpiPlatform specialization for the default Node type.
Tpetra::Details::DefaultTypes::node_type
is a typedef. Its actual type depends on Trilinos' build options. Definition at line 370 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 377 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.
This specialization of MpiPlatform for the default node type will instantiate a default Node if node.is_null().
node | [in/out] The Kokkos Node instance. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode(). |
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. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode(). |
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. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode(). |
rawMpiComm | [in] The MPI communicator, wrapped in a Teuchos::OpaqueWrapper . |
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. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode(). |
rawMpiComm | [in] The MPI communicator, wrapped in a Teuchos::OpaqueWrapper . |
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. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode(). |
rawMpiComm | [in] The "raw" (not wrapped) MPI communicator. |
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. If null, this class will create a Node with default parameters, at some time no later than during the first call to getNode(). |
rawMpiComm | [in] The "raw" (not wrapped) MPI communicator. |
|
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.
If a constructor was called with a nonnull Node instance, this just returns that instance. Otherwise, this method returns a Node set up with default parameters. It only initializes that Node once, no matter how many times this method is called.
|
protected |
Teuchos::Comm object instantiated for the platform.
Definition at line 537 of file Tpetra_MpiPlatform.hpp.
|
protected |
Kokkos Node object instantiated for the platform.
Definition at line 540 of file Tpetra_MpiPlatform.hpp.