Newsgroups: comp.parallel.mpi
From: jeff@is.s.u-tokyo.ac.jp (Jeff McAffer)
Subject: Re: Broadcasting and ordering
Organization: University of Tokyo / Object Technology International
Date: 30 Apr 1995 03:57:58 GMT
Message-ID: <3nv1s6$li@isnews.is.s.u-tokyo.ac.jp>

In article <79919636418384@godzilla.mcs.anl.gov> gropp@godzilla.mcs.anl.gov (William Gropp) writes:

 >MPI_Imcast( ..., tag = 1, count = 30, ... )
 >MPI_Isend( ... , tag = 1, count = 20, dest = 37, ... )
 >
 >In this case, the message with count = 30 (the multicast) must arrive first.
 >Now, if I really DO use a single, non-scalable loop, I can achieve this. 
 >If I try to use a more scalable approach, such as a tree of some kind, 
 >it becomes quite tricky.  In particular, if the multicast uses any kind of
 >subdivision so that process zero does not send directly to process 37, but 
 >instead depends on other processes to do so (in the usual tree fashion), 
 >it becomes very, very difficult to efficiently preserve ordering.

Hmmm, good example but really all it says to me is that it is hard to
improve on the efficiency of a user written loop without hardware
support.  Ok.  Is that enough of an argument against the inclusion of
such a natural operation?

 >There are some examples where message ORDERING is unimportant; this is
 >exactly the discussion that the MPI2 Forum is having: since, in general, you
 >can't provide everything (i.e., ordering and efficiency), which DO you provide?

It is difficult to provide both at the same time but not hard to
provide both.  I suppose there will be complaints about an explosion
of functions but I would argue that both are relevant/useful.
Basically you just let the user say what behaviour is most important
to them (e.g., ordering or efficiency).  On some architectures you can
get both, on some you can't.  In terms of implementation headache,
those who don't want to bother can just map both operations on to a
loop of p2p sends (sacrificing the efficient version).  Those who have
hardware use it and those who don't but are keen make a tree structure
for the efficient but unordered case. The really keen may have some
great tree algorithm that can maintain ordering?

Just my 2 yens worth (that's about 2.4 US cents)

JEff

--
ato de, |m        -- Why do women always leave the toilet seat down?

