Files
openfoam/applications/test
Mark Olesen c086f22298 ENH: extend/improve broadcast handling
- split off a Pstream::genericBroadcast() which uses UOPBstream during
  serialization and UOPBstream during de-serialization.
  This function will not normally be used directly by callers, but
  provides a base layer for higher-level broadcast calls.

- low-level UPstream broadcast of string content.
  Since std::string has length and contiguous content, it is possible
  to handle directly by the following:
     1. broadcast size
     2. resize
     3. broadcast content when size != 0

  Although this is a similar amount of communication as the generic
  streaming version (min 1, max 2 broadcasts) it is more efficient
  by avoiding serialization/de-serialization overhead.

- handle broadcast of List content distinctly.
  Allows an optimized path for contiguous data, similar to how
  std::string is handled (broadcast size, resize container, broadcast
  content when size != 0), but can revert to genericBroadcast (streamed)
  for non-contiguous data.

- make various scatter variants simple aliases for broadcast, since
  that is what they are doing behind the scenes anyhow:

    * scatter()
    * combineScatter()
    * listCombineScatter()
    * mapCombineScatter()

  Except scatterList() which remains somewhat different.
  Beyond the additional (size == nProcs) check, the only difference to
  using broadcast(List<T>&) or a regular scatter(List<T>&) is that
  processor-local data is skipped. So leave this variant as-is.

STYLE: rename/prefix implementation code with 'Pstream'

- better association with its purpose and provides a unique name
2022-03-04 17:49:23 +00:00
..
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-11-26 12:24:35 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2022-02-10 16:46:13 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2020-10-07 09:17:00 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-12-20 14:18:01 +00:00
2021-12-20 14:18:01 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-11-15 19:34:01 +01:00
2019-10-31 14:48:44 +00:00
2021-12-20 14:18:01 +00:00
2019-12-13 12:33:23 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-12-20 14:18:01 +00:00