Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!unmvax!gatech!hubcap!israel
From: israel@profundo.rutgers.edu (Nelken)
Newsgroups: comp.parallel
Subject: superlinear speedups in heuristic algorithms
Message-ID: <3808@hubcap.UUCP>
Date: 9 Dec 88 17:41:52 GMT
Sender: fpst@hubcap.UUCP
Lines: 37
Approved: parallel@hubcap.clemson.edu

Recently there have been messages in this newsgrup about superlinear
speedups in heuristic algorithms. The claim was that a uniprocessor
might go down the wrong path in the tree because of some misleading
heuristics. A parallel machine can explore several subtrees
concurrently and might thus find the correct solution faster. In some
cases the parallel program might be more than p times as fast as 
the sequential one.

But wait!
A uniprocessor can also be programmed to exlore the tree in the same
order as the parallel machine. It may explore a node in one subtree 
and then explore a node in an entirely different subtree. If this 
search strategy is used, there is no superlinear speedup.
The problem lies in the misuse of terms.
Here are the accepted definitions:

T(p) - the time required by a parallel machine (with p processors)
to run the BEST parallel algorithm.

T(1) - the time required by a uniprocessor with similar
capabilities to run the BEST sequential algorithm.

It is very difficult to claim that a particular heuristic algorithm is
"best". In fact, the so called "superlinear" speedups that have been 
claimed are due to a non-optimal search strategy in the sequential case
(we didn't use the best algorithm).

True superlinear speedup would occur if, under the above definitions,
   T(1) >= p * T(p)
 
In this discussion I avoided the questions of memory, cache and paging
overheads which may affect a parallel machine differently than a uniprocessor.

Izzy Nelken
Department of Computer Science
Hill Center, Rutgers University
New Brunswick, NJ 08903