SENSEI
A frame work for generic in situ analytics
MPIUtils.h File Reference
#include <algorithm>
#include <limits>
Include dependency graph for MPIUtils.h:

Go to the source code of this file.

Namespaces

 sensei
 SENSEI.
 
 sensei::MPIUtils
 A collection of communication routines.
 

Functions

template<typename cpp_t >
void sensei::MPIUtils::GlobalCounts (MPI_Comm comm, std::vector< cpp_t > &vec)
 helper to recuce by summation elements in a vector it's assumed that the vector is the same size on all ranks. More...
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalBounds (MPI_Comm comm, const std::vector< std::array< cpp_t, 6 >> &lbounds, std::array< cpp_t, 6 > &gbounds)
 helper function to compute an axis aligned bounding box that bounds a collection of distrubted axis aligned bounding boxes More...
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalRange (MPI_Comm comm, const std::vector< std::array< cpp_t, 2 >> &lrange, std::array< cpp_t, 2 > &grange)
 helper function to compute glpbal array range More...
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalView (MPI_Comm comm, const std::vector< cpp_t > &ldata, std::vector< cpp_t > &gdata)
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalViewV (MPI_Comm comm, const std::vector< cpp_t > &ldata, std::vector< int > &gcounts, std::vector< int > &goffset, std::vector< cpp_t > &gdata)
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalViewV (MPI_Comm comm, const std::vector< cpp_t > &ldata, std::vector< cpp_t > &gdata)
 use this if you don't need counts & offsets More...
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalViewV (MPI_Comm comm, std::vector< cpp_t > &ldata)
 use this if you don't need counts & offsets and want the result to replace the input. More...
 
template<typename cpp_t , std::size_t N>
void sensei::MPIUtils::GlobalViewV (MPI_Comm comm, const std::vector< std::array< cpp_t, N >> &ldata, std::vector< std::array< cpp_t, N >> &gdata)
 helper function to generate a global view from a local view. More...
 
template<typename cpp_t , std::size_t N>
void sensei::MPIUtils::GlobalViewV (MPI_Comm comm, std::vector< std::array< cpp_t, N >> &ldata)
 use this if you don't need counts & offsets and want the result to replace the input. More...
 
template<typename cpp_t >
void sensei::MPIUtils::GlobalViewV (MPI_Comm comm, std::vector< std::vector< cpp_t >> &ldata)
 use this if you don't need counts & offsets and want the result to replace the input. More...