Tpetra parallel linear algebra Version of the Day
|
Definition of functions for unpacking the entries of a Tpetra::CrsGraph for communication, in the case where it is valid to go to the KokkosSparse::CrsGraph (local sparse graph data structure) directly. More...
#include "TpetraCore_config.h"
#include "Teuchos_Array.hpp"
#include "Teuchos_ArrayView.hpp"
#include "Tpetra_Details_castAwayConstDualView.hpp"
#include "Tpetra_Details_computeOffsets.hpp"
#include "Tpetra_Details_createMirrorView.hpp"
#include "Tpetra_Details_OrdinalTraits.hpp"
#include "Tpetra_Details_Behavior.hpp"
#include "Tpetra_CrsGraph_decl.hpp"
#include "Tpetra_Details_getEntryOnHost.hpp"
#include "Tpetra_Details_crsUtils.hpp"
#include "Kokkos_Core.hpp"
#include <memory>
#include <string>
Go to the source code of this file.
Classes | |
class | Tpetra::Details::UnpackAndCombineCrsGraphImpl::UnpackAndCombineFunctor< LocalOrdinal, Packet, RowView, IndicesView, BufferDevice > |
Unpacks and combines a single row of the CrsGraph. More... | |
Namespaces | |
namespace | Tpetra |
Namespace Tpetra contains the class and methods constituting the Tpetra library. | |
namespace | Tpetra::Details |
Nonmember function that computes a residual Computes R = B - A * X. | |
Definition of functions for unpacking the entries of a Tpetra::CrsGraph for communication, in the case where it is valid to go to the KokkosSparse::CrsGraph (local sparse graph data structure) directly.
Data (bytes) describing the row of the CRS graph are "packed" (concatenated) in to a (view of) Packet* object in the following order:
The functions in this file are companions to Tpetra_Details_packCrsGraph.hpp, i.e., Tpetra_Details_packCrsGraph.hpp implements the packing order described above to ensure proper unpacking.
Definition in file Tpetra_Details_unpackCrsGraphAndCombine_def.hpp.
KOKKOS_FUNCTION int Tpetra::Details::UnpackAndCombineCrsGraphImpl::unpackRow | ( | const Kokkos::View< GO *, Device, Kokkos::MemoryUnmanaged > & | gids_out, |
const Kokkos::View< int *, Device, Kokkos::MemoryUnmanaged > & | pids_out, | ||
const Kokkos::View< const Packet *, BufferDevice > & | imports, | ||
const size_t | offset, | ||
const size_t | num_ent ) |
Unpack a single row of a CrsGraph.
LO | The type of local indices. See the documentation of Map for requirements. |
GO | The type of global indices. See the documentation of Map for requirements. |
Device | The Kokkos device type. See the documentation of Map for requirements. |
BufferDevice | The "buffer device type." |
Definition at line 97 of file Tpetra_Details_unpackCrsGraphAndCombine_def.hpp.
void Tpetra::Details::UnpackAndCombineCrsGraphImpl::unpackAndCombine | ( | const RowView & | row_ptrs_beg, |
const RowView & | row_ptrs_end, | ||
IndicesView & | indices, | ||
const Kokkos::View< const GlobalOrdinal *, BufferDevice, Kokkos::MemoryUnmanaged > & | imports, | ||
const Kokkos::View< const size_t *, BufferDevice, Kokkos::MemoryUnmanaged > & | num_packets_per_lid, | ||
const Kokkos::View< const LocalOrdinal *, BufferDevice, Kokkos::MemoryUnmanaged > & | import_lids, | ||
const typename CrsGraph< LocalOrdinal, GlobalOrdinal, Node >::padding_type & | padding, | ||
const bool | unpack_pids, | ||
const int | myRank, | ||
const bool | verbose ) |
Perform the unpack operation for the graph.
LocalGraph | the specialization of the KokkosSparse::CrsGraph local graph |
This is a higher level interface to the UnpackAndCombineFunctor
Definition at line 300 of file Tpetra_Details_unpackCrsGraphAndCombine_def.hpp.
void Tpetra::Details::UnpackAndCombineCrsGraphImpl::setupRowPointersForRemotes | ( | const Kokkos::View< size_t *, Device > & | tgt_rowptr, |
const Kokkos::View< const LO *, BufferDevice > & | import_lids, | ||
const Kokkos::View< const Packet *, BufferDevice > & | , | ||
const Kokkos::View< const size_t *, BufferDevice > & | num_packets_per_lid ) |
Setup row pointers for remotes.
Definition at line 436 of file Tpetra_Details_unpackCrsGraphAndCombine_def.hpp.