WIP: mapped PstreamBuffers with NBX
ENH: sparse storage and data exchange for PstreamBuffers - change the underlying storage from a numProcs list of buffers to a Map of buffers. The reduced memory footprint on large systems is on aspect but the primary motivation is to more easily support sparse data exchange patterns. The Map storage for PstreamBuffers corresponds to a non-blocking consensus exchange of sizes that automatically propagates through different parts of the code and avoids all-to-all. CONFIG: enable nonBlockingExchange as default (for testing) - this changes the Pstream::exchangeSizes to use NBX instead of all-to-all, even for List containers.
Showing
- etc/controlDict 1 addition, 1 deletionetc/controlDict
- src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C 435 additions, 25 deletionssrc/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
- src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H 74 additions, 4 deletionssrc/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
- src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C 61 additions, 0 deletionssrc/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C
- src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H 10 additions, 0 deletionssrc/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H
- src/finiteVolume/fvMesh/zoneDistribute/zoneDistributeI.H 45 additions, 1 deletionsrc/finiteVolume/fvMesh/zoneDistribute/zoneDistributeI.H
Please register or sign in to comment