Newsgroups: comp.parallel.pvm
From: rbarrett@ranger.lanl.gov (Richard Barrett)
Subject: Re: pvm_send and pvm_mcast
Organization: Los Alamos National Laboratory
Date: 5 Jan 1996 14:57:57 GMT
Message-ID: <4cje9l$fpk@newshost.lanl.gov>

Case not closed yet. The man page for 'pvm_recv' does claim that message
ordering will be preserved. But perhaps there is some caveat to this when
mixing send with mcast (and what about bcast?). Although many of us view 
multicasting as simply a convenient way to loop over send, the users guide says 
it will be performed 'hopefully in less time than several calls to pvm_send'.
(Let's ignore EB White's lecture on the misuse of the word 'hopefully'. Then
again this may be the proper use. I never know.) Maybe this is just assuming 
that vendors will implement mcast in an optimized fashion (sometimes an incorrect 
assumption). Then again the man page on pvm_mcast claims that this may not be 
possible for many vendors, unless the mcast is really a broadcast to all.

So I suppose we're still wondering if mcast is usually just a loop over pvm_send,
in which case message order should be preserved. And Andreas problem is still
a problem. Certainly solvable with message tags, but since I believe virtually 
everything I read, my heart is broken.

Richard

In article <DKoxDu.ExB@parcom.ernet.in>, rcs@parcom.ernet.in (Ramesh Chandrashekar) writes:
|> Andreas Dilger (adilger@enel.ucalgary.ca) wrote:
|> 
|> : In my program, I use pvm_send() to transmit various different items to a
|> : several machines, and then afterwards, I transmit common information
|> : to all the systems with pvm_mcast().  The problem I'm having is that
|> : the messages sent by pvm_mcast() are arriving before those sent by
|> : pvm_send(), even though they were sent later.  I thought PVM was guaranteed
|> : to preserve message order?  I'm using pvm 3.3.10 on both hosts.  
|> 
|> You could use tags instead, to differentiate the 'send' and 'mcast' messages.
|> Use the same tag on the recv. end to differentiate the two. PVM does not
|> guarantee any order of arrival of messages. What it lets you do is tag
|> messages so that you recv in a specific order irrespective of the order of
|> arrival of messages. Refer PVM manual for tagging.
|> 

