Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
Tpetra::Details::Impl::GetGraphDiagOffsets< LO, GO, DeviceType, DiagOffsetType > Class Template Reference

Implementation detail of Tpetra::Details::getGraphDiagOffsets, which in turn is an implementation detail of Tpetra::CrsGraph. More...

#include <Tpetra_Details_getGraphDiagOffsets_decl.hpp>

Public Member Functions

 GetGraphDiagOffsets (const diag_offsets_type &diagOffsets, const local_map_type &lclRowMap, const local_map_type &lclColMap, const row_offsets_type &ptr, const lcl_col_inds_type &ind, const bool isSorted)
 Constructor; also runs the functor. More...
 
KOKKOS_FUNCTION void operator() (const LO &lclRowInd) const
 Kokkos::parallel_for loop body. More...
 

Detailed Description

template<class LO, class GO, class DeviceType, class DiagOffsetType = size_t>
class Tpetra::Details::Impl::GetGraphDiagOffsets< LO, GO, DeviceType, DiagOffsetType >

Implementation detail of Tpetra::Details::getGraphDiagOffsets, which in turn is an implementation detail of Tpetra::CrsGraph.

FIXME (mfh 12 Mar 2016) There's currently no way to make a MemoryUnmanaged Kokkos::StaticCrsGraph. Thus, we have to do this separately for its column indices. We want the column indices to be unmanaged because we need to take subviews in this kernel. Taking a subview of a managed View updates the reference count, which is a thread scalability bottleneck.

mfh 12 Mar 2016: Tpetra::CrsGraph::getLocalDiagOffsets returns offsets as size_t. However, see Github Issue #213.

Definition at line 79 of file Tpetra_Details_getGraphDiagOffsets_decl.hpp.

Constructor & Destructor Documentation

template<class LO , class GO , class Node , class DiagOffsetType >
Tpetra::Details::Impl::GetGraphDiagOffsets< LO, GO, Node, DiagOffsetType >::GetGraphDiagOffsets ( const diag_offsets_type &  diagOffsets,
const local_map_type lclRowMap,
const local_map_type lclColMap,
const row_offsets_type &  ptr,
const lcl_col_inds_type &  ind,
const bool  isSorted 
)

Constructor; also runs the functor.

Implementation detail of Tpetra::Details::getGraphDiagOffsets, which in turn is an implementation detail of Tpetra::CrsGraph.

FIXME (mfh 12 Mar 2016) There's currently no way to make a MemoryUnmanaged Kokkos::StaticCrsGraph. Thus, we have to do this separately for its column indices. We want the column indices to be unmanaged because we need to take subviews in this kernel. Taking a subview of a managed View updates the reference count, which is a thread scalability bottleneck.

mfh 12 Mar 2016: Tpetra::CrsGraph::getLocalDiagOffsets returns offsets as size_t. However, see Github Issue #213.

Definition at line 78 of file Tpetra_Details_getGraphDiagOffsets_def.hpp.

Member Function Documentation

template<class LO , class GO , class Node , class DiagOffsetType >
KOKKOS_FUNCTION void Tpetra::Details::Impl::GetGraphDiagOffsets< LO, GO, Node, DiagOffsetType >::operator() ( const LO &  lclRowInd) const

Kokkos::parallel_for loop body.

Definition at line 105 of file Tpetra_Details_getGraphDiagOffsets_def.hpp.


The documentation for this class was generated from the following files: