All Topics  
Multiprocessing

 

   Email Print
   Bookmark   Link

 

Multiprocessing



 
  Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them. There are many variations on this basic theme, and the definition of multiprocessing can vary with context, mostly as a function of how CPUs are defined (multiple cores
Multi-core (computing)

A multi-core processor combines two or more independent cores into a single package composed of a single integrated circuit , called a Die , or more dies packaged together....
 on one die, multiple chips in one package, multiple packages in one system unit, etc.).

Multiprocessing sometimes refers to the execution of multiple concurrent software processes in a system as opposed to a single process at any one instant. However, the terms multitasking
Computer multitasking

In computing, multitasking is a method by which multiple tasks, also known as Computer process, share common processing resources such as a Central processing unit....
 or multiprogramming
Computer multitasking

In computing, multitasking is a method by which multiple tasks, also known as Computer process, share common processing resources such as a Central processing unit....
 are more appropriate to describe this concept, which is implemented mostly in software, whereas multiprocessing is more appropriate to describe the use of multiple hardware CPUs. A system can be both multiprocessing and multiprogramming, only one of the two, or neither of the two.

Types


Processor symmetry


In a multiprocessing system, all CPUs may be equal, or some may be reserved for special purposes. A combination of hardware and operating-system software design considerations determine the symmetry (or lack thereof) in a given system. For example, hardware or software considerations may require that only one CPU respond to all hardware interrupts, whereas all other work in the system may be distributed equally among CPUs; or execution of kernel-mode code may be restricted to only one processor (either a specific processor, or only one processor at a time), whereas user-mode code may be executed in any combination of processors. Multiprocessing systems are often easier to design if such restrictions are imposed, but they tend to be less efficient than systems in which all CPUs are utilized equally.

Systems that treat all CPUs equally are called symmetric multiprocessing
Symmetric multiprocessing

In computing, symmetric multiprocessing or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory....
 (SMP) systems. In systems where all CPUs are not equal, system resources may be divided in a number of ways, including asymmetric multiprocessing
Asymmetric multiprocessing

Note: This article refers to both asymmetrical multiprocessing and multiprocessors.Asymmetric multiprocessing or ASMP is a type of multiprocessing supported in Digital Equipment Corporation's OpenVMS V.3 as well as a number of older systems including TOPS-10 and OS-360....
 (ASMP), non-uniform memory access
Non-Uniform Memory Access

Non-Uniform Memory Access or Non-Uniform Memory Architecture is a computer storage design used in multiprocessors, where the memory access time depends on the memory location relative to a processor....
 (NUMA) multiprocessing, and clustered multiprocessing (qq.v.).

Instruction and data streams


In multiprocessing, the processors can be used to execute a single sequence of instructions in multiple contexts (single-instruction, multiple-data
SIMD

In computing, SIMD is a technique employed to achieve data level parallelism....
 or SIMD, often used in vector processing), multiple sequences of instructions in a single context (multiple-instruction, single-data
MISD

In computing, MISD is a type of parallel computing computer architecture where many functional units perform different operations on the same data....
 or MISD, used for redundancy
Redundancy (engineering)

In engineering, redundancy is the duplication of critical wikt:Components of a system with the intention of increasing reliability of the system, usually in the case of a backup or fail-safe....
 in fail-safe systems and sometimes applied to describe pipelined processors or hyperthreading), or multiple sequences of instructions in multiple contexts (multiple-instruction, multiple-data
MIMD

In computing, MIMD is a technique employed to achieve parallelism. Machines using MIMD have a number of processors that function Asynchrony and independently....
 or MIMD
MIMD

In computing, MIMD is a technique employed to achieve parallelism. Machines using MIMD have a number of processors that function Asynchrony and independently....
).

Processor coupling


Tightly-coupled multiprocessor systems contain multiple CPUs that are connected at the bus level. These CPUs may have access to a central shared memory (SMP or UMA
Uma

UMA is a three-letter abbreviation with multiple meanings.Uma is also a name given for a girl, which refers to the Hinduism goddess of Power, Dakshayani as well as her incarnation Parvati after the former's death, both wives of god Shiva....
), or may participate in a memory hierarchy with both local and shared memory (NUMA
Numa

Numa may refer to:* Numa Pompilius, legendary second king of Rome* Numa, Iowa, U.S. town* The Numa Numa Internet meme* The Northern Paiute people...
). The IBM p690
IBM p690

The IBM p690 was, at the time of its release in late 2001, the flagship of IBM's high end unix servers during the POWER4 era of processors. It was built to run IBM AIX_operating_system Unix, although it is possible to run a version Linux minus some POWER4 specific features....
 Regatta is an example of a high end SMP system. Intel Xeon
Xeon

The Xeon brand refers to many families of Intel Corporation's x86 architecture multiprocessing Central processing units ? for dual processor and multi-processor configuration on a single motherboard targeted at non-consumer markets of server and workstation computers, and also at blade servers and embedded systems....
 processors dominated the multiprocessor market for business PCs and were the only x86 option until the release of AMD's Opteron
Opteron

The Opteron is Advanced Micro Devices's x86 server Central processing unit line, and was the first processor to implement the AMD64 instruction set architecture ....
 range of processors in 2004. Both ranges of processors had their own onboard cache but provided access to shared memory; the Xeon processors via a common pipe and the Opteron processors via independent pathways to the system RAM
Ram

Ram, ram, or RAM as a non-acronymic wordAs a non-acronymic word Ram, ram, or RAM may refer to:...
.

Chip multiprocessors, also known as multi-core
Multi-core (computing)

A multi-core processor combines two or more independent cores into a single package composed of a single integrated circuit , called a Die , or more dies packaged together....
 computing, involves more than one processor placed on a single chip and can be thought of the most extreme form of tightly-coupled multiprocessing. Mainframe systems with multiple processors are often tightly-coupled.

Loosely-coupled multiprocessor systems (often referred to as clusters) are based on multiple standalone single or dual processor commodity computers interconnected via a high speed communication system (Gigabit Ethernet
Gigabit Ethernet

Gigabit Ethernet is a term describing various technologies for transmitting Ethernet frames at a rate of a Data rate units#gigabit_per_second, as defined by the IEEE 802.3-2005 standard....
 is common). A Linux Beowulf cluster is an example of a loosely-coupled
Loose coupling

Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship. Each end of the transaction makes its requirements explicit and makes few assumptions about the other end....
 system.

Tightly-coupled systems perform better and are physically smaller than loosely-coupled systems, but have historically required greater initial investments and may depreciate
Depreciation

Depreciation is a term used in accounting, economics and finance to spread the cost of an asset over the span of several years.In simple words we can say that depreciation is the reduction in the value of an asset due to usage, passage of time, wear and tear, technological outdating or obsolescence, depletion, inadequacy, rot, rust, decay o...
 rapidly; nodes in a loosely-coupled system are usually inexpensive commodity computers and can be recycled as independent machines upon retirement from the cluster.

Power consumption is also a consideration. Tightly-coupled systems tend to be much more energy efficient than clusters. This is because considerable economies can be realized by designing components to work together from the beginning in tightly-coupled systems, whereas loosely-coupled systems use components that were not necessarily intended specifically for use in such systems.

Software implementation issues


SISD multiprocessing


All processors 8-bit and 16-bit instruction set.

SIMD multiprocessing


SIMD multiprocessing is well suited to parallel or vector processing
Parallel processing

Parallel processing is the ability of an entity to carry out multiple operations or tasks simultaneously. The term is used in the contexts of both human cognition and machine computation....
, in which a very large set of data can be divided into parts that are individually subjected to identical but independent operations. A single instruction stream directs the operation of multiple processing units to perform the same manipulations simultaneously on potentially large amounts of data.

For certain types of computing applications, this type of architecture can produce enormous increases in performance, in terms of the elapsed time required to complete a given task. However, a drawback to this architecture is that a large part of the system falls idle when programs or system tasks are executed that cannot be divided into units that can be processed in parallel.

Additionally, programs must be carefully and specially written to take maximum advantage of the architecture, and often special optimizing compilers designed to produce code specifically for this environment must be used. Some compilers in this category provide special constructs or extensions to allow programmers to directly specify operations to be performed in parallel (e.g., DO FOR ALL statements in the version of FORTRAN
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
 used on the ILLIAC IV
ILLIAC IV

The ILLIAC IV was one of the most infamous supercomputers ever. Last in a series of research machines, the ILLIAC from the University of Illinois at Urbana-Champaign, the ILLIAC IV design featured fairly high parallel computing with up to 256 processors, used to allow the machine to work on large data sets in what would later be known as vect...
, which was a SIMD multiprocessing supercomputer
Supercomputer

A supercomputer is a computer that is at the frontline of current processing capacity, particularly speed of calculation. Supercomputers introduced in the 1960s were designed primarily by Seymour Cray at Control Data Corporation , and led the market into the 1970s until Cray left to form his own company, Cray Research....
).

SIMD multiprocessing finds wide use in certain domains such as computer simulation
Computer simulation

A computer simulation, a computer model or a computational model is a computer program, or network of computers, that attempts to simulation an abstract model of a particular system....
, but is of little use in general-purpose desktop and business computing environments.

MISD multiprocessing


MISD multiprocessing offers mainly the advantage of redundancy, since multiple processing units perform the same tasks on the same data, reducing the chances of incorrect results if one of the units fails. MISD architectures may involve comparisons between processing units to detect failures. Apart from the redundant and fail-safe character of this type of multiprocessing, it has few advantages, and it is very expensive. It does not improve performance. It can be implemented in a way that is transparent to software.

MIMD multiprocessing


MIMD multiprocessing architecture is suitable for a wide variety of tasks in which completely independent and parallel execution of instructions touching different sets of data can be put to productive use. For this reason, and because it is easy to implement, MIMD predominates in multiprocessing.

Processing is divided into multiple threads, each with its own hardware processor state, within a single software-defined process or within multiple processes. Insofar as a system has multiple threads awaiting dispatch (either system or user threads), this architecture makes good use of hardware resources.

MIMD does raise issues of deadlock and resource contention, however, since threads may collide in their access to resources in an unpredictable way that is difficult to manage efficiently. MIMD requires special coding in the operating system of a computer but does not require application changes unless the programs themselves use multiple threads (MIMD is transparent to single-threaded programs under most operating systems, if the programs do not voluntarily relinquish control to the OS). Both system and user software may need to use software constructs such as semaphores
Semaphore (programming)

In computer science, a semaphore is a protected variable or abstract data type which constitutes the classic method for restricting access to shared resources such as shared memory in a multiprogramming environment....
 (also called locks or gates) to prevent one thread from interfering with another if they should happen to cross paths in referencing the same data. This gating or locking process increases code complexity, lowers performance, and greatly increases the amount of testing required, although not usually enough to negate the advantages of multiprocessing.

Similar conflicts can arise at the hardware level between processors (cache contention and corruption, for example), and must usually be resolved in hardware, or with a combination of software and hardware (e.g., cache-clear instructions).

See also

  • 3B20C
  • Symmetric multiprocessing
    Symmetric multiprocessing

    In computing, symmetric multiprocessing or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory....
  • Asymmetric multiprocessing
    Asymmetric multiprocessing

    Note: This article refers to both asymmetrical multiprocessing and multiprocessors.Asymmetric multiprocessing or ASMP is a type of multiprocessing supported in Digital Equipment Corporation's OpenVMS V.3 as well as a number of older systems including TOPS-10 and OS-360....
  • Multi-core (computing)
    Multi-core (computing)

    A multi-core processor combines two or more independent cores into a single package composed of a single integrated circuit , called a Die , or more dies packaged together....
  • BMDFM
    BMDFM

    BMDFM is software, which enables running an application in parallel on shared memory symmetric multiprocessors using the multiple processors to speed up the execution of single applications....
     - Binary Modular Dataflow Machine, a SMP MIMD Runtime Environment
  • Software lockout
    Software lockout

    In multiprocessor computer systems, software lockout is the issue of performance degradation due to the idle wait times spent by the CPUs in Kernel -level critical sections....


External links