Re: 2-phase collective

Rolf Rabenseifner (Rabenseifner@RUS.Uni-Stuttgart.DE)
Tue, 4 Feb 1997 23:10:23 +0100 (MEZ)

> Lloyd already pointed out that the idea is, that the start call
> is non-blocking, and that only the end-call may block.
> (i.e. no step backwards)
>
> ****
> My argument is that the 2-phase collective construct is interesting only if
> it can be implemented so that both start and end are nonblocking. If the
> reality of implementations will be that always either the start or the end
> blocks, but the user does not know which blocks, then there will be no way
> of using such construct more effiiently than a blocking collective.
> ******

Yes, I see that for implementing 2-phase it is easier to have the right
to implement both (start&end) as collective blockking operations.

I believe that the burden to the application writers is not so heavy
(they must guarantee that collective&blocking starts and ends do not
cause a deadlock), that they should require that the starts are
non blocking.


> > So, does anyone have a suggestion on how to implement (efficiently) a
> > nonblocking reduce, so that this holds? The only way I know how to
> > do this is for systems with shared memory and with few processes: ...
>
> I believe, implementations have also a good chance to prohibit
> unnecesary idles on virtual shared memory systems.
> E.g. in ALLTOALL for each pair of processes the data can be always
> transferred in both directions by direct (virtual) memory access
> after the second process has invoked the start and the end has only
> to wait if not all are already started.
>
> *****
> If the only example of a nonblocking implementation is DSVM, then I don't
> buy the construct.
>
> Marc
> *******

I can imagine that you also know how to implement 2-phase collective
on your hardware without unnecessary synchronizations for the
application, i.e. without unnecessary idles.
You too?

Rolf


Rolf Rabenseifner (Computer Center )
Rechenzentrum Universitaet Stuttgart (University of Stuttgart)
Allmandring 30 Phone: ++49 711 6855530
D-70550 Stuttgart 80 FAX: ++49 711 6787626
Germany rabenseifner@rus.uni-stuttgart.de