Multiprocessing, in computing, a mode
of operation in which two or more processors in a computer simultaneously
process two or more different portions of the same program (set of
instructions). Multiprocessing is typically carried out by two or more
microprocessors, each of which is in effect a central processing unit (CPU) on
a single tiny chip. Supercomputers typically combine thousands of such
microprocessors to interpret and execute instructions.
The primary advantage of a multiprocessor computer is speed, and
thus the ability to manage larger amounts of information. Because each
processor in such a system is assigned to perform a specific function, it can
perform its task, pass the instruction set on to the next processor, and begin
working on a new set of instructions. For example, different processors may be
used to manage memory storage, data communications, or arithmetic functions. Or
a larger processor might utilize “slave” processors to conduct miscellaneous
housekeeping duties, such as memory management. Multiprocessor systems first
appeared in large computers known as mainframes, before their costs declined
enough to warrant inclusion in personal computers (PCs).
Personal computers had long relied on increasing clock speeds,
measured in megahertz (MHz) or gigahertz (GHz), which correlates to the number
of computations the CPU calculates per second, in order to handle ever more
complex tasks. But as gains in clock speed became difficult to sustain, in part
because of overheating in the microprocessor circuitry, another approach
developed in which specialized processors were used for tasks such as video
display. These video processors typically come on modular units known as video
cards, or graphic accelerator cards. The best cards, which are needed to play
the most graphic-intensive electronic games on personal computers, often cost
more than a bargain PC. The commercial demands for ever better cards to run
ever more realistic games, on PCs and video game systems, led IBM to develop a
multiprocessor microchip, known as the Cell Broadband Engine, for use in the
Sony Computer Entertainment PlayStation 3 and a new supercomputer that included
thousands of the microchips.
It must be noted, however, that simply adding more processors does
not guarantee significant gains in computing power; computer program problems
remain. While programmers and computer programming languages have developed
some proficiency in allocating executions among a small number of processors,
parsing instructions beyond two to eight processors is impracticable for all
but the most repetitive tasks. (Fortunately, many of the typical supercomputer
scientific applications involve applying exactly the same formula or
computation to a vast array of data, which is a difficult but tractable
problem.)
IBM led one effort to address the problem of programming
multiprocessor computers through an open source initiative, in which academics,
nonprofit organizations, and other corporations contributed advancements.
Similar proprietary research was pursued by Microsoft Corporation and Apple
Inc.