Newsgroups: comp.parallel.pvm
From: wrankin@ee.duke.edu (William T. Rankin)
Subject: Re: synchronization
Organization: Duke University EE Dept.; Durham, NC
Date: 4 Aug 1994 14:40:54 GMT
Message-ID: <31qulm$c4c@news.duke.edu>

In article <31or5e$3rt@ground.cs.columbia.edu>, thanasis@news.cs.columbia.edu (Thanasis Tsantilas) writes:

|> It seems that PVM does not have a netsynch() command which essentially would 
|> cause processes to wait until all messages in the network have been delivered. 

okay.

|> Consider the following toy problem that suggests the need of such a primitive:
|> You have N processes, and each picks a random process to send its value. Then
|> the processes do something with the received values, etc.
|> 
|> The problem here is that processes do not know in advance how many messages 
|> they are going to receive. Many randomized algorithms are of that nature.
|> 
|> One can think of a few ways to implement a netsynch(), but I'd also like to
|> know how people treat the problem.

well, in my case, I have N processors each of which has a section of 
an oct-tree (8 leaves/node, used in 3D spatial decomp) and may need to send part
of its data to another processor.  Since I know the number of processors in
advance, I use the *extreamly* naive approach of having each processor send a
message to every other processor ( O(N^2) messages :-( ).

I have put off the optimization of this code section until later in development,
but since you brought it up :-)

what would be the most efficient method of data exchange?
how would having a "netsync()" function make this easier?

|> Thanks
|> 
|> Thanasis Tsantilas
|> Columbia University


-- 
----                                /       __/    /    /
bill rankin                        /              /    /
wrankin@ee.duke.edu               ___  /    /    /    /
philosopher/coffee-drinker       /    /    /    /    /
                                /    /    /    /    /
                             _______/  __/  __/  __/



