Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

don't skip master rank on receive in mpi_vector #192

Conversation

selmanTerzi
Copy link
Collaborator

this is needed for ring-blocking in parareal

Review on Reviewable

this is needed for ring-blocking in parareal
@pint-jenkins
Copy link

Can one of the admins verify this patch?

@torbjoernk
Copy link
Contributor

@pint-jenkins test this please

@torbjoernk
Copy link
Contributor

LGTM. @memmett any concerns?

@memmett
Copy link
Member

memmett commented Apr 17, 2015

I feel like this should break something! Anyway, I think the better way to do this is the following (see LIBPFASST): the communicator should keep track of who is the "first" processor, and who is the "last" processor. Then in send/recv you can use modular arithmetic to figure out if you should in fact send/recv.

@pancetta
Copy link
Member

+1. Alternatively, each time rank could have some notion of its pre- and
successor (which would be helpful as as soon as we have fun with mixing
the order of the ranks: ring parallelization, fault tolerance, time
adaptivity etc.). Anyway, then you can do send/recv on all ranks,
provided the first and the last simply point to themselves. This should
result in an empty MPI call..

On 17.04.15 15:43, Matthew Emmett wrote:

I feel like this should break something! Anyway, I think the better way
to do this is the following (see LIBPFASST): the communicator should
keep track of who is the "first" processor, and who is the "last"
processor. Then in send/recv you can use modular arithmetic to figure
out if you should in fact send/recv.


Reply to this email directly or view it on GitHub
#192 (comment).

@memmett
Copy link
Member

memmett commented Apr 18, 2015

+1. Everyone is feeling the love today...

Continuing with @pancetta, I guess we could come up with a very simple API now and have it implement a simple ring with first/last accounting. Let's just make sure we don't go over board and end up in YAGNI land. As it is right now, everyone calls send/recv and the logic to test for first/last is in the body of send/recv, so in that sense we're already somewhat in line with @pancetta (all ranks call send/recv).

Suggestions for an API?

How about, ok_to_send() and ok_to_recv() or something like that?

@memmett
Copy link
Member

memmett commented Sep 4, 2015

I'm closing this but have created a related issue #222.

@memmett memmett closed this Sep 4, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants