Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra::Details::Impl::Iallreduce< PacketType, SendLayoutType, SendDeviceType, RecvLayoutType, RecvDeviceType, rank > Struct Template Reference

Implementation of ::Tpetra::Details::iallreduce. More...

#include <Tpetra_Details_iallreduce.hpp>

Detailed Description

template<class PacketType, class SendLayoutType, class SendDeviceType, class RecvLayoutType, class RecvDeviceType, const int rank>
struct Tpetra::Details::Impl::Iallreduce< PacketType, SendLayoutType, SendDeviceType, RecvLayoutType, RecvDeviceType, rank >

Implementation of ::Tpetra::Details::iallreduce.

Template Parameters
PacketTypeType of each entry of the send and receive buffers.
SendLayoutTypearray_layout of the send buffer. Must be Kokkos::LayoutLeft or Kokkos::LayoutRight.
SendDeviceTypeKokkos::Device specialization used by the send buffer.
RecvLayoutTypearray_layout of the receive buffer. Must be Kokkos::LayoutLeft or Kokkos::LayoutRight.
RecvDeviceTypeKokkos::Device specialization used by the receive buffer. It's OK for this to differ from SendDeviceType. We assume that MPI implementations can handle this. (This is a reasonable assumption with CUDA-enabled MPI implementations.)
rankInteger rank of the send and receive buffers. Must be either 0 or 1.

The actual implementation of ::Tpetra::Details::iallreduce lives in the partial specializations of this struct. See below. We do this complicated struct thing in order to make it easier to overload ::Tpetra::Details::iallreduce for different kinds of output arguments (e.g., rank-0 or rank-1 Kokkos::View).

Definition at line 662 of file Tpetra_Details_iallreduce.hpp.


The documentation for this struct was generated from the following file: