|
Tpetra parallel linear algebra
Version of the Day
|
Definition of functions for unpacking the entries of a Tpetra::CrsMatrix for communication, in the case where it is valid to go to the KokkosSparse::CrsMatrix (local sparse matrix 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_PackTraits.hpp"#include "Tpetra_CrsMatrix_decl.hpp"#include "Tpetra_Details_getEntryOnHost.hpp"#include "Kokkos_Core.hpp"#include <memory>#include <string>Go to the source code of this file.
Classes | |
| struct | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::UnpackCrsMatrixAndCombineFunctor< LocalMatrix, LocalMap, BufferDeviceType > |
| Unpacks and combines a single row of the CrsMatrix. More... | |
| class | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::NumEntriesFunctor< LO, DT, BDT > |
| Kokkos::parallel_reduce functor to determine the number of entries (to unpack) in a KokkosSparse::CrsMatrix to pack. More... | |
Namespaces | |
| Tpetra | |
| Namespace Tpetra contains the class and methods constituting the Tpetra library. | |
| Tpetra::Details | |
| Namespace for Tpetra implementation details. | |
Functions | |
| template<class ST , class LO , class GO , class DT , class BDT > | |
| KOKKOS_FUNCTION int | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::unpackRow (typename PackTraits< GO, DT >::output_array_type &gids_out, typename PackTraits< int, DT >::output_array_type &pids_out, typename PackTraits< ST, DT >::output_array_type &vals_out, const Kokkos::View< const char *, BDT > &imports, const size_t offset, const size_t, const size_t num_ent, const size_t num_bytes_per_value) |
| Unpack a single row of a CrsMatrix. More... | |
| template<class LO , class DT , class BDT > | |
| size_t | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::compute_maximum_num_entries (const Kokkos::View< const size_t *, BDT > &num_packets_per_lid, const Kokkos::View< const size_t *, DT > &offsets, const Kokkos::View< const char *, BDT > &imports) |
| Maximum number of entries in any row of the packed matrix. More... | |
| template<class LO , class DT , class BDT > | |
| size_t | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::compute_total_num_entries (const Kokkos::View< const size_t *, BDT > &num_packets_per_lid, const Kokkos::View< const size_t *, DT > &offsets, const Kokkos::View< const char *, BDT > &imports) |
| Total number of entries in any row of the packed matrix. More... | |
| template<class LocalMatrix , class LocalMap , class BufferDeviceType > | |
| void | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::unpackAndCombineIntoCrsMatrix (const LocalMatrix &local_matrix, const LocalMap &local_map, const Kokkos::View< const char *, BufferDeviceType > &imports, const Kokkos::View< const size_t *, BufferDeviceType > &num_packets_per_lid, const typename PackTraits< typename LocalMap::local_ordinal_type, BufferDeviceType >::input_array_type import_lids, const Tpetra::CombineMode combine_mode, const bool unpack_pids, const bool atomic) |
| Perform the unpack operation for the matrix. More... | |
| template<class LO , class DT , class BDT > | |
| int | Tpetra::Details::UnpackAndCombineCrsMatrixImpl::setupRowPointersForRemotes (const typename PackTraits< size_t, DT >::output_array_type &tgt_rowptr, const typename PackTraits< LO, DT >::input_array_type &import_lids, const Kokkos::View< const char *, BDT > &imports, const Kokkos::View< const size_t *, BDT > &num_packets_per_lid, const typename PackTraits< size_t, DT >::input_array_type &offsets) |
| Setup row pointers for remotes. More... | |
| template<typename ST , typename LO , typename GO , typename Node > | |
| void | Tpetra::Details::unpackCrsMatrixAndCombine (const CrsMatrix< ST, LO, GO, Node > &sourceMatrix, const Teuchos::ArrayView< const char > &imports, const Teuchos::ArrayView< const size_t > &numPacketsPerLID, const Teuchos::ArrayView< const LO > &importLIDs, size_t, Distributor &, CombineMode combineMode, const bool atomic) |
| Unpack the imported column indices and values, and combine into matrix. More... | |
| template<typename Scalar , typename LocalOrdinal , typename GlobalOrdinal , typename Node > | |
| size_t | Tpetra::Details::unpackAndCombineWithOwningPIDsCount (const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &sourceMatrix, const Teuchos::ArrayView< const LocalOrdinal > &importLIDs, const Teuchos::ArrayView< const char > &imports, const Teuchos::ArrayView< const size_t > &numPacketsPerLID, size_t constantNumPackets, Distributor &distor, CombineMode combineMode, size_t numSameIDs, const Teuchos::ArrayView< const LocalOrdinal > &permuteToLIDs, const Teuchos::ArrayView< const LocalOrdinal > &permuteFromLIDs) |
| Special version of Tpetra::Details::unpackCrsMatrixAndCombine that also unpacks owning process ranks. More... | |
| template<typename Scalar , typename LocalOrdinal , typename GlobalOrdinal , typename Node > | |
| void | Tpetra::Details::unpackAndCombineIntoCrsArrays (const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &sourceMatrix, const Teuchos::ArrayView< const LocalOrdinal > &importLIDs, const Teuchos::ArrayView< const char > &imports, const Teuchos::ArrayView< const size_t > &numPacketsPerLID, const size_t constantNumPackets, Distributor &distor, const CombineMode combineMode, const size_t numSameIDs, const Teuchos::ArrayView< const LocalOrdinal > &permuteToLIDs, const Teuchos::ArrayView< const LocalOrdinal > &permuteFromLIDs, size_t TargetNumRows, size_t TargetNumNonzeros, const int MyTargetPID, const Teuchos::ArrayView< size_t > &CRS_rowptr, const Teuchos::ArrayView< GlobalOrdinal > &CRS_colind, const Teuchos::ArrayView< typename CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::impl_scalar_type > &CRS_vals, const Teuchos::ArrayView< const int > &SourcePids, Teuchos::Array< int > &TargetPids) |
| unpackAndCombineIntoCrsArrays More... | |
Definition of functions for unpacking the entries of a Tpetra::CrsMatrix for communication, in the case where it is valid to go to the KokkosSparse::CrsMatrix (local sparse matrix data structure) directly.
Data (bytes) describing the row of the CRS matrix are "packed" (concatenated) in to a (view of) char* object in the following order:
The functions in this file are companions to Tpetra_Details_packCrsMatrix.hpp, i.e., Tpetra_Details_packCrsMatrix.hpp implements the packing order described above to ensure proper unpacking.
Definition in file Tpetra_Details_unpackCrsMatrixAndCombine_def.hpp.
1.8.5