Newsgroups: comp.parallel.mpi
From: raja@convex.com (Raja Daoud)
Subject: Re: shift in MPI?
Organization: Hewlett-Packard Co.; Convex Division
Date: 29 Jan 1997 09:36:44 -0600
Message-ID: <5cnqqc$59@tbag.rsn.hp.com>

Sergei Gorlatch <gorlatch@fmi.uni-passau.de> wrote:
>Frankly I don't see why this seemingly quite simple pattern
>of communication cannot be implemented efficiently.
>Any inherent reasons?

MPI_Sendrecv() only knows its own source and destination, not those of
other processes.  This is not sufficient to determine that the operation
is part of a shift, a swap, etc.  In order not to deadlock, at least one
of the two operations (send or recv) is made non-blocking, and we're
back to what the user could have hand-coded trivially.  On the other
hand, a programmer that knows the application's communication pattern
may be able to use the odd/even (checker-board) approach to order the
operations and thus only call blocking send/recv.  This will probably
run faster on many implementations.

--Raja

-=-
Raja Daoud					Hewlett-Packard Co.
raja@rsn.hp.com					Convex Division

