pmodels / mpich

Official MPICH Repository
http://www.mpich.org
Other
541 stars 280 forks source link

Optimizations for Neighborhood Collectives #3517

Open pavanbalaji opened 5 years ago

pavanbalaji commented 5 years ago

The current implementation of neighborhood collectives in MPICH is a very simple sequential isend/irecv where each process sends the data it needs to send to its neighbors. More sophisticated algorithms are possible and should be implemented.

jain-surabhi-23 commented 5 years ago

There is a series of PRs - #3371, #3372, #3375, #3376, #3377, #3378 for neighborhood collectives. Does it apply here? The PRs implement some neighborhood collectives using transport (TSP) API.

pavanbalaji commented 5 years ago

@jain-surabhi-23: Is there a study that shows when these neighborhood collective algorithms do better or are these being blindly added?

hzhou commented 5 years ago

These prs are all linear algorithms rewrote into TSP based schedule.

pavanbalaji commented 5 years ago

So, just porting of the current code to TSP? That's not really an optimization and is unrelated to this issue.

raffenet commented 5 years ago

A basic optimization we have discussed could be implemented as follows.

  1. For a given communication graph, internally create an array of subcommunicators for use in neighborhood algorithms. Each subcomm comprises a process and its incoming neighbors.
  2. Implement new neighborhood collective algorithms using these internal subcomms.

We believe the benefit of these new algorithms should be evident with stencil codes where the number of neighbors is high. For now, ignore the expense of creating and storing the additional subcomms.

Bayyapu commented 5 years ago

@raffenet I am trying to note the FY19Q2 progress. Could you please let me know the update or point me to the correct PR that i need to see for the progress of this issue?

raffenet commented 5 years ago

There is no PR at this point. We should sync next week. I hope to put something together on Tues-Weds.