Gilles Gouaillardet <gilles.gouaillar...@gmail.com> writes:

> Dave,
>
> yes, this is for two MPI tasks only.
>
> the MPI subroutine could/should return with an error if the communicator is
> made of more than 3 tasks.
> an other option would be to abort at initialization time if no collective
> modules provide a barrier implementation.
> or maybe the tuned module should have not used the two_procs algorithm, but
> what should it do instead ? use a default one ? do not implement barrier ?
> warn/error the end user ?
>
> note the error message might be a bit obscure.
>
> I write "could" because you explicitly forced something that cannot work,
> and I am not convinced OpenMPI should protect end users from themselves,
> even when they make an honest mistake.

I just looped over the available algorithms, not expecting any not to
work.  One question is how I'd know it can't work; I can't find
documentation on the algorithms, just the more-or-less suggestive names
that I might be able to find in the literature, or not.  Is there a good
place to look?

In the absence of a good reason why not -- I haven't looked at the code
-- but I'd expect it to abort with a message about the algorithm being
limited to two processes at some stage.  Of course, this isn't a common
case, and people probably have more important things to do.

Reply via email to