Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesSorting Out SMP and MPP


May 1997 / Features / Parallel Goes Populist / Sorting Out SMP and MPP

The great divide in the parallel computing world has always been between shared-memory and distributed-memory architectures. With shared memory, all the CPUs are connected via a shared bus to the same pool of memory. In distributed-memory architectures, each CPU has its own private memory, so processing nodes must communicate by sending messages over an interconnecting network.

Shared-memory systems are commonly called symmetric multiprocessing (SMP) systems, and distributed-memory machines referred to as massively parallel processing (MPP) or message-passing systems. The main advantage of SMP systems is that they are easy to program; all the variables live in the same memory space so that the machine looks like a single CPU to the program. The downside of SMP systems is that the bus becomes a bottleneck as all the CPU s contend for access to the memory. This essentially limits the scalability of pure SMP systems to tens rather than hundreds of processors. Most commercial multiprocessor servers with four to eight processors are SMP designs.

MPP systems don't suffer the bus-bottleneck problem because there's no shared bus and so no contention for memory access; using the fastest interconnects, they scale up to hundreds or thousands of processors. However, programming a pure MPP computer is difficult, as each node must be loaded wi th a separate program segment, which contains lots of extra communication code to send messages to code running on other nodes; this also makes the overall application depend on the exact topology of the interconnecting network. From the point of view of running parallel applications, a simple network of workstations behaves like an MPP machine, with all the same programming difficulties.

There's an equivalent divide in the realm of disk I/O, between shared-disk and "shared-nothing" architectures. An SMP system will typically share disk drives between processing nodes, which requires special disk drivers and a distributed lock manager (DLM) to prevent different processors from simultaneously trying to write to the same location. An MPP system typically will attach disks to individual nodes, so neither memory nor disk are shared (hence "shared nothing").


Up to the Features section contentsGo to previous article: Sorting Out SMP and MPPGo to next article: What Wolfpack Means for Parallel ComputingSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network