OpenFOAM-4.x-lab/applications/test
Henry Weller 56668b2406 Pstream: optimisation of data exchange
Contributed by Mattijs Janssens.

1. Any non-blocking data exchange needs to know in advance the sizes to
   receive so it can size the buffer.  For "halo" exchanges this is not
   a problem since the sizes are known in advance but or all other data
   exchanges these sizes need to be exchanged in advance.

   This was previously done by having all processors send the sizes of data to
   send to the master and send it back such that all processors
   - had the same information
   - all could work out who was sending what to where and hence what needed to
     be received.

   This is now changed such that we only send the size to the
   destination processor (instead of to all as previously). This means
   that
   - the list of sizes to send is now of size nProcs v.s. nProcs*nProcs before
   - we cut out the route to the master and back by using a native MPI
     call

   It causes a small change to the API of exchange and PstreamBuffers -
   they now return the sizes of the local buffers only (a labelList) and
   not the sizes of the buffers on all processors (labelListList)

2. Reversing the order of the way in which the sending is done when
   scattering information from the master processor to the other
   processors. This is done in a tree like fashion. Each processor has a
   set of processors to receive from/ send to. When receiving it will
   first receive from the processors with the least amount of
   sub-processors (i.e. the ones which return first). When sending it
   needs to do the opposite: start sending to the processor with the
   most amount of sub-tree since this is the critical path.
2016-04-02 18:32:11 +01:00
..
alloc Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
BinSum Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
callback applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
Circulator Rename circulators to be consistent with the standard OpenFOAM class naming convention 2015-08-06 16:54:47 +01:00
codeStream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
CompactIOList Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
CompactListList Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
cyclic applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
delete Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
dictionary Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Dictionary Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
dimensionedType Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Distribution Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
DLList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
DynamicField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
dynamicIndexedOctree Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
DynamicList Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
ensightFoamReader Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
error Completed update ...ErrorIn -> ...ErrorInFunction 2015-11-11 09:03:39 +00:00
extendedStencil Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
Field Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
fieldDependency Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
fieldMapping OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
fileName Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
fileNameClean Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
findCell-octree Rationalize position searching and add cell->tet decomposition as the default cell-search algorithm 2015-02-25 10:57:06 +00:00
findSphereFeatureEdges-octree Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
findTimes Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
FixedList UList, FixedList: Correct swap member function 2015-07-15 12:10:05 +01:00
foamVersion Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Function1 Rename DataEntry -> Function1 2016-02-08 16:18:07 +00:00
fvc applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
fvSolutionCombine Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
GAMGAgglomeration applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
globalIndex applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
globalMeshData Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
graph Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
graphXi Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Hashing Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
HashingSpeed Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
HashPtrTable Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
HashSet Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
HashTable Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
HashTable2 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
HashTable3 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
hexRef8 scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
IndirectList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
io Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
ISLList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
IStringStream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
labelRanges Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
liquid Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
List UList, FixedList: Correct swap member function 2015-07-15 12:10:05 +01:00
ListOps pplications/test/ListOps/Make/options: Removed extraneous backslash 2016-02-08 16:33:56 +00:00
Map Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
mappedPatch Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Matrix LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
maxMem Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
memInfo Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
mesh Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
mkdir Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
momentOfInertia Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
mvBak Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
NamedEnum Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
nullObject Resolve issues relating to compilation with clang-3.5.0 2014-12-15 22:38:10 +00:00
ODE Matrix: Added (i, j) addressing to allow support for addressing blocks of the matrix 2016-03-20 19:44:29 +00:00
OStringStream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PackedList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PackedList1 Test-PackedList1: Removed chained assigments 2016-02-08 16:30:00 +00:00
PackedList2 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
PackedList3 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PackedList4 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
parallel Pstream: optimisation of data exchange 2016-04-02 18:32:11 +01:00
parallel-communicators Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
parallel-nonBlocking applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
passiveParticle Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PatchEdgeFaceWave Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
patchRegion blockMeshDict files moved to system directory (new default location) in template cases and unit test cases 2015-11-13 16:05:59 +00:00
PatchTools Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
PointEdgeWave Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
pointField applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
Polynomial Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
POSIX Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
prefixOSstream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
primitivePatch applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
pTraits Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PtrList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PtrListDictionary PtrListDictionary: New form of Dictionary in which the list type is PtrList rather than a linked-list 2015-09-16 21:26:26 +01:00
quaternion quaternion: Added generalized construction from and conversion to Euler-angles 2016-03-14 08:07:42 +00:00
reconstruct applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
regex Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
router applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
sha1 Updated headers 2015-02-04 16:33:02 +00:00
simpleMatrix Matrix: Added (i, j) addressing to allow support for addressing blocks of the matrix 2016-03-20 19:44:29 +00:00
sizeof Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
slicedField applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
SLList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
sort Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
speed Removed use of the deprecated "register" keyword 2015-06-30 10:26:44 +01:00
sphericalTensorField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
spline Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
StaticHashTable Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
string Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
stringList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
symmTensorField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
syncTools applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
tensor messageStream: Added DebugInfo and DebugInFunction: 2016-03-04 11:30:13 +00:00
tensor2D Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
tetTetOverlap applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
thermoMixture Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
tmpField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
tokenize Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
triTet Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Tuple2 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
UDictionary Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
UIndirectList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
UniformField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
vector Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
vectorTools applications/test: Updated to compile with Clang-3.5 2015-02-04 16:32:36 +00:00
volField scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
volPointInterpolation applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
wallDist wallDist: Add support for cached wall-reflection vectors 2015-01-08 16:08:53 +00:00
wordRe Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
xfer Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00