Jump to...
Columns:
Advanced Software and Technologies
BYTE Media Lab
Chaos Manor
Conference Reports
Features
Free Features
Gigglebytes
Letters to BYTE.com
Mr. Computer Language Person
New Products
Op/Ed
Portable Computing
Serving with Linux
The Upgrade Advisor
Sorting 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").
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 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