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