SimGrid  3.16
Versatile Simulation of Distributed Systems
allreduce-ompi-ring-segmented.cpp File Reference
#include "../colls_private.h"

Namespaces

 simgrid
 Alltoall Bruck.
 
 simgrid::smpi
 

Macros

#define COLL_TUNED_COMPUTED_SEGCOUNT(SEGSIZE, TYPELNG, SEGCOUNT)
 
#define COLL_TUNED_COMPUTE_BLOCKCOUNT(COUNT, NUM_BLOCKS, SPLIT_INDEX, EARLY_BLOCK_COUNT, LATE_BLOCK_COUNT)
 

Macro Definition Documentation

◆ COLL_TUNED_COMPUTED_SEGCOUNT

#define COLL_TUNED_COMPUTED_SEGCOUNT (   SEGSIZE,
  TYPELNG,
  SEGCOUNT 
)
Value:
if( ((SEGSIZE) >= (TYPELNG)) && \
((SEGSIZE) < ((TYPELNG) * (SEGCOUNT))) ) { \
size_t residual; \
(SEGCOUNT) = (int)((SEGSIZE) / (TYPELNG)); \
residual = (SEGSIZE) - (SEGCOUNT) * (TYPELNG); \
if( residual > ((TYPELNG) >> 1) ) \
(SEGCOUNT)++; \
} \

◆ COLL_TUNED_COMPUTE_BLOCKCOUNT

#define COLL_TUNED_COMPUTE_BLOCKCOUNT (   COUNT,
  NUM_BLOCKS,
  SPLIT_INDEX,
  EARLY_BLOCK_COUNT,
  LATE_BLOCK_COUNT 
)
Value:
EARLY_BLOCK_COUNT = LATE_BLOCK_COUNT = COUNT / NUM_BLOCKS; \
SPLIT_INDEX = COUNT % NUM_BLOCKS; \
if (0 != SPLIT_INDEX) { \
EARLY_BLOCK_COUNT = EARLY_BLOCK_COUNT + 1; \
} \