Newsgroups: comp.parallel.pvm
From: adilger@enel.ucalgary.ca (Andreas Dilger)
Subject: pvm_send and pvm_mcast
Organization: ECE Department, U. of Calgary, Calgary, Alberta, Canada
Date: 4 Jan 1996 01:11:00 GMT
Message-ID: <4cf9f4$8qu@ds2.acs.ucalgary.ca>


I'm having terrible problems with one of my PVM programs.  I need some
information about the internals of PVM which I couldn't find in the docs.

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.  The
sending program is running on LINUX, and the receiving programs are SUN4.
The program executes as follows:

  master                           slaves
 --------                         --------
  pvm_send() msg1 to slave1
  pvm_send() msg1 to slave2
  pvm_send() msg1 to slave3

  pvm_mcast() msg2 to all slaves   pvm_trecv(-1,-1)  gets msg2
                                   pvm_trecv(-1,-1)  gets msg1

Is this a known problem/limitation/feature?  I suppose I could use
pvm_send() to all the machines independently rather than pvm_mcast(),
but this, of course, would be slower.

Any info would be appreciated.

Cheers, Andreas.
-- 
Andreas Dilger   University of Calgary  \"If a man ate a pound of pasta and
(403) 220-8792   Micronet Research Group \ a pound of antipasto, would they
Dept of Electrical & Computer Engineering \   cancel out, leaving him still
http://www-mddsp.enel.ucalgary.ca/People/adilger/       hungry?" -- Dogbert

