Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!unmvax!gatech!hubcap!vera
From: vera@portia.stanford.edu (James Vera)
Newsgroups: comp.parallel
Subject: Re: Superlinear
Message-ID: <3811@hubcap.UUCP>
Date: 9 Dec 88 17:41:59 GMT
Sender: fpst@hubcap.UUCP
Lines: 50
Approved: parallel@hubcap.clemson.edu

In article <3801@hubcap.UUCP> mcvax!ivax.doc.imperial.ac.uk!mmh@uunet.UU.NET (Matthew Huntbach) writes:
 >In article <3755@hubcap.UUCP>, robison@m.cs.uiuc.edu (Arch Robison) writes:
 >> I'm looking for references (either pro or con) on the following claim:
 >> 
 >> 	A p-processor parallel processor can never exhibit speedup
 >> 	of greater than p.
 >
 >Depends on the algorithm. In parallel heuristic search superlinear
 >speedup can happen easily. The reference I have to hand is:
 >[...]
 >As a simple demonstration, suppose you are searching a tree with one branch
 >which your heuristic tells you is promising, but which after a lot of
 >computation (say 11 time units) does not yield a result, and another branch 
 >which your heuristic tells you is less promising but which does in fact yield
 >a result after a small amount of computation (say 1 time unit).
 >
 >On a single processor you could search the whole large branch first 
 >before turning to the small branch and finding your solution: total time
 >12 units.
 >
 >With two processors you could assign one branch to each processor. Let us 
 >assume there is a time delay of one unit shipping the less promising 
 >branch to a remote processor, and a time delay of another unit getting the
 >result back. You would still get you result in 3 units of time.
 >
 >So 2 processors give you a speedup of 4   Q.E.D.

One has to be careful in comparing apples to oranges.  Here you are
comparing two different algorithms.  Just because you run the same
program on each of your many processors as you ran on your
uniprocessor does not mean that your global algorithm is consistent.

In the case described above, the uniprocessor is running an algorithm
that says "exhaustively search a branch until you find an answer or it
fails to yield a result", while the multiprocessor is running an
algorithm that says "search N (the number of processors) branches
simultaneously until your find an answer replacing branches that fail
to yield a result with new branches."

To realistically compare the performance increase of the multiprocessor
over the uniprocessor you should run the second algorithm on the
uniprocessor.  This could be done by specifying N and looping over N
branches one level at a time.


-- 
James S. Vera      |      Internet	     |Standard Disclaimers
Stanford University|vera@portia.stanford.edu |Blah Blah Blah Blah
Bellcore           |vera2%mruxb@bellcore.arpa|vvv My Cutesy Quote vvv
"When I was young it seemed that life was so wonderful..." - Supertramp