• Michael Blocksome's avatar
    Add hooks for optimized MPIX_* non-blocking collectives. · 2eefd3a2
    Michael Blocksome authored and Pavan Balaji's avatar Pavan Balaji committed
    
    
    The following collectives are updated:
    
      MPIX_Ibcast
      MPIX_Iallgather
      MPIX_Iallgatherv
      MPIX_Iallreduce
      MPIX_Ialltoall
      MPIX_Ialltoallv
      MPIX_Ialltoallw
      MPIX_Iexscan
      MPIX_Igather
      MPIX_Igatherv
      MPIX_Ireduce_scatter_block
      MPIX_Ireduce_scatter
      MPIX_Ireduce
      MPIX_Iscan
      MPIX_Iscatter
      MPIX_Iscatterv
    
    These collectives are updated similar to how the optimized MPIX_Ibarrier
    is implemented:
    
    | The previous MPIR_Ibarrier_impl() function forced all adi implementations
    | to create a MPID_Sched_t opaque object which was then passed in to the
    | specific ibarrier implementation via a function pointer table.
    |
    | The MPID_Sched_t object represents a completely new state machine that
    | must be advanced whenever mpi progress is made.
    |
    | The required construction of the MPID_Sched_t object and the required
    | advance of the schedule state machine would be extremely detrimental to
    | pamid performance.
    
    (ibm) 47b497e15cd87df666c6031a28f5f8a5ae53cece
    (ibm) aee872eb91f4300066957349e5a3d8103da33f40
    
    Signed-off-by: default avatarCharles Archer <archerc@us.ibm.com>
    2eefd3a2