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. [1] 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 on one die, multiple chips in one package, multiple packages in one system unit, etc. A multi-core processor (or chip-level multiprocessor, CMP) combines two or more independent cores into a single package composed of a single Integrated ).
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 term multiprogramming is 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. In computing Multitasking is a method by which multiple tasks also known as processes, share common processing resources such as a CPU. A system can be both multiprocessing and multiprogramming, only one of the two, or neither of the two.
Contents |
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 (SMP) systems. In Computing, symmetric multiprocessing or SMP involves a Multiprocessor computer-architecture where two or more identical processors can connect to a single In systems where all CPUs are not equal, system resources may be divided in a number of ways, including asymmetric multiprocessing (ASMP), non-uniform memory access (NUMA) multiprocessing, and clustered multiprocessing (qq. Note This article refers to both asymmetrical multiprocessing and multiprocessors Non-Uniform Memory Access or Non-Uniform Memory Architecture ( NUMA) is a computer memory design used in Multiprocessors where the memory access v. ).
In multiprocessing, the processors can be used to execute a single sequence of instructions in multiple contexts (single-instruction, multiple-data or SIMD, often used in vector processing), multiple sequences of instructions in a single context (multiple-instruction, single-data or MISD, used for redundancy 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 or MIMD). In Computing, SIMD ( S ingle I nstruction M ultiple D ata is a technique employed to achieve data level parallelism as in a Vector A vector processor, or array processor, is a CPU design where the instruction set includes operations that can perform mathematical operations on multiple data In Computing, MISD ( M ultiple I nstruction S ingle D ata is a type of Parallel computing architecture where In Engineering, redundancy is the duplication of critical components of a system with the intention of increasing reliability of the System, usually In Computing, a pipeline is a set of data processing elements connected in series so that the output of one element is the input of the next one Hyper-threading (officially termed Hyper-Threading Technology or HTT) is an Intel-proprietary technology In Computing, MIMD ( M ultiple I nstruction stream M ultiple D ata stream is a technique employed to achieve parallelism In Computing, MIMD ( M ultiple I nstruction stream M ultiple D ata stream is a technique employed to achieve parallelism
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), or may participate in a memory hierarchy with both local and shared memory (NUMA). The IBM p690 Regatta is an example of a high end SMP system. The IBM p690 was at the time of its release in late 2001 the flagship of IBM's high end unix servers ( PSeries) during the POWER4 era of processors Intel Xeon processors dominated the multiprocessor market for business PCs and were the only x86 option until the release of AMD's Opteron range of processors in 2004. The Xeon brand refers to many families of Intel 's x86 Multiprocessing CPUs – for dual-processor (DP and multi-processor (MP configuration The Opteron is AMD 's X86 server processor line and was the first processor to implement the AMD64 Instruction set architecture (known 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.
Chip multiprocessors, also known as multi-core computing, involves more than one processor placed on a single chip and can be thought of the most extreme form of tightly-coupled multiprocessing. A multi-core processor (or chip-level multiprocessor, CMP) combines two or more independent cores into a single package composed of a single Integrated 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 is common). Commodity computing is computing done on commodity computers as opposed to supermicrocomputers or boutique computers Gigabit Ethernet (GbE or 1 GigE is a term describing various technologies for transmitting Ethernet frames at a rate of a gigabit per second, as defined by the A Linux Beowulf cluster is an example of a loosely-coupled system. Originally referring to a specific computer built in 1994 Beowulf is a class of Computer clusters similar to the original NASA system Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship
Tightly-coupled systems perform better and are physically smaller than loosely-coupled systems, but have historically required greater initial investments and may depreciate rapidly; nodes in a loosely-coupled system are usually inexpensive commodity computers and can be recycled as independent machines upon retirement from the cluster. Depreciation is a term used in Accounting, Economics and Finance to spread the cost of an Asset over the span of several years
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.
| Single Instruction |
Multiple Instruction |
|
|---|---|---|
| Single Data |
SISD | MISD |
| Multiple Data |
SIMD | MIMD |
All processors 8-bit and 16-bit instruction set. Flynn's taxonomy is a classification of Computer architectures proposed by Michael J In Computing, SISD ( S ingle I nstruction S ingle D ata is a term referring to an architecture in which a single processor an uniprocessor In Computing, MISD ( M ultiple I nstruction S ingle D ata is a type of Parallel computing architecture where In Computing, SIMD ( S ingle I nstruction M ultiple D ata is a technique employed to achieve data level parallelism as in a Vector In Computing, MIMD ( M ultiple I nstruction stream M ultiple D ata stream is a technique employed to achieve parallelism 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 In Computing, SISD ( S ingle I nstruction S ingle D ata is a term referring to an architecture in which a single processor an uniprocessor
SIMD multiprocessing is well suited to parallel or vector processing, in which a very large set of data can be divided into parts that are individually subjected to identical but independent operations. In Computing, SIMD ( S ingle I nstruction M ultiple D ata is a technique employed to achieve data level parallelism as in a Vector Parallel processing is also another term for Parallel computing. 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 maximium 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 used on the ILLIAC IV, which was a SIMD multiprocessing supercomputer). Fortran (previously FORTRAN) is a general-purpose, procedural, imperative Programming language that is especially suited to ILLIAC IV was one of the most infamous Supercomputers ever in a series of research machines ILLIACs, from the University of Illinois. A supercomputer is a Computer that is at the frontline of processing capacity particularly speed of calculation (at the time of its introduction
SIMD multiprocessing finds wide use in certain domains such as computer simulation, but is of little use in general-purpose desktop and business computing environments. A computer simulation, a computer model or a computational model is a Computer program, or network of computers that attempts to simulate an
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. In Computing, MISD ( M ultiple I nstruction S ingle D ata is a type of Parallel computing architecture where 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 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. In Computing, MIMD ( M ultiple I nstruction stream M ultiple D ata stream is a technique employed to achieve parallelism 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. A thread in Computer science is short for a thread of execution. 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 (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. For other uses see Semaphore. A semaphore, in computer science is a protected Variable (an entity storing a value or Abstract 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).