Skip to content
  • Mark OLESEN's avatar
    ENH: Pstream specialization for float/scalar, FixedList (#2351) · b0ef650a
    Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
    - native MPI min/max/sum reductions for float/double
      irrespective of WM_PRECISION_OPTION
    
    - native MPI min/max/sum reductions for (u)int32_t/(u)int64_t types,
      irrespective of WM_LABEL_SIZE
    
    - replace rarely used vector2D sum reduction with FixedList as a
      indicator of its intent and also generalizes to different lengths.
    
      OLD:
          vector2D values;  values.x() = ...;  values.y() = ...;
          reduce(values, sumOp<vector2D>());
    
      NEW:
          FixedList<scalar,2> values;  values[0] = ...;  values[1] = ...;
          reduce(values, sumOp<scalar>());
    
    - allow returnReduce() to use native reductions. Previous code (with
      linear/tree selector) would have bypassed them inadvertently.
    
    ENH: added support for MPI broadcast (for a memory span)
    
    ENH: select communication schedule as a static method
    
    - UPstream::whichCommunication(comm) to select linear/tree
      communication instead of ternary or
      if (Pstream::nProcs() < Pstream::nProcsSimpleSum) ...
    ...
    b0ef650a