![]() |
SENSEI
A frame work for generic in situ analytics
|
A collection of communication routines. More...
Functions | |
| template<typename cpp_t > | |
| void | 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 | 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 | 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 | GlobalView (MPI_Comm comm, const std::vector< cpp_t > &ldata, std::vector< cpp_t > &gdata) |
| template<typename cpp_t > | |
| void | 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 | 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 | 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 | 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 | 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 | 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... | |
A collection of communication routines.
| 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
these can be integer index space bounds (ie SVTK extents) or floating point world cooridnate system bounds, but for index space bounds a signed integer type is required.
local bounds are expected in the layout:
bx_0_0, bx_1_0, by_0_0, by_1_0, bz_0_0, bz_1_0, ... bx_0_n, bx_1_n, by_0_n, by_1_n, bz_0_n, bz_1_n
where n is the number of blocks minus 1
global bounds are returned in the same layout:
bx_0, bx_1, by_0, by_1, bz_0, bz_1
| 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.
| 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
| 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
| 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.
| 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.
A vector of local data items is passed in, this vector could be a different length on each rank. a vector of the global data items is returned along with an array of counts, and offsets that are used to index into the global data. counts is indexed by rank and contains the number of items contributed by each rank. offsets contains an offset of each ranks data.
| 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.
| 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.