Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Enumerations | Functions
Tpetra_Details_ExecutionSpaces.hpp File Reference
#include <iostream>
#include <sstream>
#include <vector>
#include <Kokkos_Core.hpp>
#include <Teuchos_RCP.hpp>
#include "Tpetra_Details_Behavior.hpp"
#include "Tpetra_Details_Profiling.hpp"

Go to the source code of this file.

Classes

class  Tpetra::Details::Spaces::InstanceLifetimeManager< ExecSpace >
 Provides reusable Kokkos execution space instances. More...
 

Namespaces

 Tpetra
 Namespace Tpetra contains the class and methods constituting the Tpetra library.
 
 Tpetra::Details
 Nonmember function that computes a residual Computes R = B - A * X.
 

Enumerations

enum  Priority
 Priority interface for Tpetra's managed execution spaces. More...
 

Functions

void Tpetra::Details::Spaces::lazy_init ()
 Should be called by all functions in the Tpetra::Details::Spaces namespace. More...
 
template<typename ExecSpace , Priority priority = Priority::medium>
ExecSpace Tpetra::Details::Spaces::make_instance ()
 Construct a Kokkos execution space instance with the following priority. More...
 
template<typename ExecSpace >
ExecSpace Tpetra::Details::Spaces::make_instance (const Priority &prio)
 Construct a Kokkos::Cuda execution space instance with the requested priority. More...
 
template<typename ExecSpace >
Teuchos::RCP< const ExecSpace > Tpetra::Details::Spaces::space_instance (const Priority &priority, int i=0)
 get a strong Teuchos::RCP to Tpetra-managed Kokkos execution space instance i More...
 
template<typename S1 , typename S2 >
void Tpetra::Details::Spaces::exec_space_wait (const char *msg, const S1 &waitee, const S2 &)
 cause future work submitted to waiter to wait for the current work in waitee to finish More...
 

Detailed Description

Interface for Tpetra's managed Kokkos execution spaces This facility strives to provide:

  1. Caching previously-constructed spaces so they can be used on-demand in parts of Tpetra
  2. Spaces of different priorities where supported
  3. Fast sync of spaces where supported

For each Kokkos backend, there is a singleton instance manager. This singleton manages the lifetime of all instances for that Kokkos backend. These singletons are not meant to be accessed directly, but through top-level functions in this file.

Definition in file Tpetra_Details_ExecutionSpaces.hpp.