Path: utzoo!attcan!uunet!snorkelwacker!ai-lab!teenage-mutant!misha From: misha@teenage-mutant.ai.mit.edu (Mike Bolotski) Newsgroups: comp.arch Subject: Re: Shared Memory (was Terradata architecures) Message-ID: <11182@life.ai.mit.edu> Date: 4 Oct 90 16:57:18 GMT References: <1990Oct1.200613.635@tera.com> <1990Oct3.013509.1470@news.iastate.edu> <10651@pt.cs.cmu.edu> Sender: news@ai.mit.edu Organization: MIT Artificial Intelligence Laboratory Lines: 53 In article <10651@pt.cs.cmu.edu> lindsay@gandalf.cs.cmu.edu (Donald Lindsay) writes: >It is clear that it is simplest to design a message-based ensemble >machine. A lot of issues can be punted to software, and the hardware >that is designed, pretty well has to be there in any case. > >It is also clear that a shared-memory ensemble machine is desirable. This is not necessarily clear. There are various penalties associated with shared memories, including performance and cost. >Sharing allows some nice programming techniques, and makes a >difference when trying to port a lot of software to the new machine. Granted, most parallel software was written under the shared memory model, and if the main constraint is porting existing software, then shared memory machines win. This argument was used in the past on various innovations. >Next, at what level will we share? If it's at the level of virtual >memory pages, then this is already being done, over LANs, by several >operating systems (e.g. Mach). The only hardware facilities required >are 1) a decent MMU on each node, and 2) page-sized messages. 3) a tolerable interconnection network. While sharing at the page level across a network works, increasing the number of workstations to say, 1000, will seriously impede performance. >If a machine is to have finer-grained sharing, then a number of >efficiency issues come up. I am aware of a variety of approaches, >each with its own penalty or price. I believe that eventually, one >of these will be implemented in a way that adds essentially nothing >to the machine's manufacturing cost. I disagree. Shared memory automatically creates contention at for frequently used data. Caching is a possible solution, but cache coherence protocols for fine grained machines become incredibly complex, and further impact performance. Further, shared memory does not obey the natural laws of physics, in a sense. The abstract shared memory model pretends that there is a large number of communication paths to a single point. This simply isn't true, and additional hardware is required to provide this illusion to the programmer. This hardware costs time and dollars. Parallel programs designed to reflect the underlying physical reality will operate faster than those that work in a virtual model. I suppose an IMHO is in order here. Mike Bolotski Artificial Intelligence Laboratory, MIT misha@ai.mit.edu Cambridge, MA