|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
Redistributes ArrayPair data across different MPI partitions using ArrayTransformer. More...
#include "ArrayTransformer.hpp"#include "SerializerBase.hpp"#include <unordered_map>#include <algorithm>#include <numeric>Go to the source code of this file.
Namespaces | |
| namespace | DNDS |
| the host side operators are provided as implemented | |
Functions | |
| std::vector< index > | DNDS::BuildRedistributionPullingIndex (const MPIInfo &mpi, const std::vector< index > &readOrigIndex, const std::vector< index > &newOrigIndex, const ssp< GlobalOffsetsMapping > &readGlobalMapping) |
| Redistributes ArrayPair data between different MPI partitions using ArrayTransformer. | |
| template<class TArray > | |
| void | DNDS::RedistributeArrayWithTransformer (const MPIInfo &mpi, ssp< TArray > readFather, const std::vector< index > &readOrigIndex, const std::vector< index > &newOrigIndex, ssp< TArray > outFather) |
| Redistributes an ArrayPair from a source partition to a target partition. | |
Redistributes ArrayPair data across different MPI partitions using ArrayTransformer.
Enables reading HDF5 checkpoint data written with partition A (np=N) into partition B (np=M) by using an "original index" (e.g., CGNS serial cell index) as a partition-independent key.
The redistribution uses a two-step rendezvous pattern implemented via temporary ArrayTransformer pull operations: Step 1: Each rank reads an even slice of the H5 global data. Step 2: A temporary ArrayTransformer pulls each rank's needed cells (identified by origIndex) from whichever rank read them.
Definition in file ArrayRedistributor.hpp.