Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!barmar
From: barmar@mit-eddie.UUCP (Barry Margolin)
Newsgroups: net.lang
Subject: Re: Efficiency of Languages (and comlexity)
Message-ID: <302@mit-eddie.UUCP>
Date: Sun, 3-Nov-85 01:56:35 EST
Article-I.D.: mit-eddi.302
Posted: Sun Nov  3 01:56:35 1985
Date-Received: Mon, 4-Nov-85 01:47:27 EST
References: <15100004@ada-uts.UUCP> <15100007@ada-uts.UUCP> <189@opus.UUCP>
Reply-To: barmar@mit-eddie.UUCP (Barry Margolin)
Organization: MIT, Cambridge, MA
Lines: 29

In article <189@opus.UUCP> rcd@opus.UUCP (Dick Dunn) writes:
>NO!  You cannot throw "n different processors" at the array!  N is
>(potentially) larger than the number of processors you have.  Actually,
>there is an assumption in analyzing algorithms that one does not have an
>infinite number of computational elements (whatever they may be).  If you
>throw out that assumption, you're nowhere--because (1) you can't build, or
>even emulate, the hardware implied and mostly (2) all the algorithms
>you're going to find interesting will take constant time!  (If you have
>unlimited hardware, you just keep replicating and working in parallel.)

True, you never have unlimited number of processing elements, but you
can have enough for many applications.  Check out some of the recent
non-Von Neumann architecture research, such as Danny Hillis' Connection
Machine (he recently wrote a very readable book about it, published by
the MIT Press).  The Connection Machine will have thousands, possibly
hundreds of thousands, of simple processors with small amounts of local
memory.  True, algorithms are still theoretically of the same order as
they would be on conventional hardware, but the coefficients are MUCH
smaller.  Also, many instances of particular algorithms do not run out
of processors, so they are much faster still.  For instance, if N
is less than the number of processors, finding the maximum of N numbers
is something like O(log N) (my Connection Machine book isn't handy, so
I'm not sure if that is the real speed, but it is better than O(N));
this uses an algorithm that arranges the processors in a binary tree,
and percolates the maximum up to the top.
-- 
    Barry Margolin
    ARPA: barmar@MIT-Multics
    UUCP: ..!genrad!mit-eddie!barmar