Project

General

Profile

Feature #984

Feature #1060: AMPI compliance with MPI-3.1 standard

AMPI support for missing MPI-3 non-blocking collectives

Added by Sam White over 3 years ago. Updated about 1 year ago.

Status:
Merged
Priority:
Normal
Assignee:
Category:
AMPI
Target version:
Start date:
02/16/2016
Due date:
% Done:

100%


Description

AMPI currently only supports the 4 following non-blocking collectives, and is missing the rest:

MPI_Ireduce
MPI_Iallreduce
MPI_Ialltoall
MPI_Iallgather

History

#1 Updated by Sam White over 3 years ago

Missing non-blocking collectives (strike-thru means implemented since opening this issue):

MPI_Ibarrier
MPI_Ibcast
MPI_Igather
MPI_Iscatter
MPI_Igatherv
MPI_Iscatterv
MPI_Iallgatherv
MPI_Ialltoallv
MPI_Ialltoallw (and MPI_Alltoallw)
MPI_Iscan
MPI_Iexscan
MPI_Ireduce_scatter
MPI_Ireduce_scatter_block (and MPI_Reduce_scatter_block)

#2 Updated by Sam White over 3 years ago

  • % Done changed from 0 to 10
  • Status changed from New to In Progress

#3 Updated by Sam White over 3 years ago

  • % Done changed from 10 to 30

#4 Updated by Sam White over 3 years ago

  • % Done changed from 30 to 70

MPI_Igatherv, MPI_Iscatterv, MPI_Iallgatherv, MPI_Ialltoallv, MPI_Ireduce_scatter:

https://charm.cs.illinois.edu/gerrit/#/c/1078/

#5 Updated by Sam White over 3 years ago

MPI_Alltoallw and MPI_Ialltoallw:
https://charm.cs.illinois.edu/gerrit/#/c/1086/

#7 Updated by Sam White over 3 years ago

The remaining unimplemented non-blocking collectives (MPI_Iscan, MPI_Iexscan, MPI_Ireduce_scatter, MPI_Ireduce_scatter_block) will require more extensive changes to implement.

MPI_Scan and MPI_Exscan are both implemented using algorithms that use MPI_Sendrecv and require blocking messages, so implementing the non-blocking variants will require a different algorithm.

MPI_Reduce_scatter and MPI_Reduce_scatter_block are both implemented in the naive manner of a reduction then scatter. To support non-blocking variants, we could have a callback that does a scatter and pass that callback to the reduction contributions. The blocking versions could also benefit from this.

#8 Updated by Sam White about 3 years ago

  • Parent task set to #1060

#9 Updated by Sam White almost 3 years ago

  • Status changed from In Progress to Implemented

#10 Updated by Sam White over 2 years ago

  • Target version changed from 6.8.0 to 6.8.1

The remainder of these are rarely used

#11 Updated by Sam White almost 2 years ago

  • Target version changed from 6.8.1 to 6.9.0

#12 Updated by Sam White over 1 year ago

  • Target version deleted (6.9.0)

#13 Updated by Sam White over 1 year ago

Implemented MPI_I{(ex)scan,reduce_scatter(_block)} using calls to their blocking variants: https://charm.cs.illinois.edu/gerrit/#/c/charm/+/3947/

#14 Updated by Sam White about 1 year ago

  • % Done changed from 70 to 100
  • Target version set to 6.9.0
  • Status changed from Implemented to Merged

Also available in: Atom PDF