multiprocessing(redirected from Multi-processing)
Also found in: Dictionary, Thesaurus, Medical.
in digital computers, the simultaneous performance of several operations for one or more programs. Multiprocessing is one of the principal methods of improving the execution rate and operating efficiency of digital computers, because it increases computer speed and reduces idle time. Multiprocessing is effected by incorporating additional equipment in the computer system or by making use of devices that are idle at a given moment.
Multiprocessing can be achieved in various ways. At the level of the central processing unit, the following approaches are used: the processing of data (for example, the addition, subtraction, or multiplication of numbers) may be combined with the processing of program instructions (with, for example, the reading of instructions, the interpretation of an operation code, or the modification of addresses), the execution of up to four to eight adjacent instructions in the same program may be carried out concurrently, and operations may be combined that involve the processing of data in independent units (for example, units with data in fixed-point and floating-point representations). At the memory level, data may be read simultaneously from several memory units of the same kind; to provide this type of multiprocessing, the internal memory is divided into independent units with their own addressing systems, and several external-memory channels are introduced. Multiprocessing at the memory level may also involve the independent exchange of data between magnetic tapes, disks, and drums. At the level of the input-output devices, multiprocessing can be achieved through the use of multiplexing, that is, the simultaneous use of several input-output devices because of the speed of the transfer of data to and from the central processing unit and the slowness of the preparation for the transfer.
The efficient implementation of multiprocessing with respect to the memory and the input-output devices depends essentially on how the supervisory program is written. The extent to which multiprocessing is used characterizes the complexity of a computer and the degree of development of the computer’s logical structure. A high degree of multiprocessing is exhibited by such second-generation computers as the BESM-6 and Vesna of the USSR. A still higher degree of multiprocessing is found in thirdgeneration computers, for example, the ES EVM of the USSR and the IBM 370 of the USA.
A. V. GUSEV
An organizational technique in which a number of processor units are employed in a single computer system to increase the performance of the system in its application environment above the performance of a single processor of the same kind. In order to cooperate on a single application or class of applications, the processors share a common resource. Usually this resource is primary memory, and the multiprocessor is called a primary memory multiprocessor. A system in which each processor has a private (local) main memory and shares secondary (global) memory with the others is a secondary memory multiprocessor, sometimes called a multicomputer system because of the looser coupling between processors. The more common multiprocessor systems incorporate only processors of the same type and performance and thus are called homogeneous multiprocessors; however, heterogeneous multiprocessors are also employed. A special case is the attached processor, in which a second processor module is attached to a first processor in a closely coupled fashion so that the first can perform input/output and operating system functions, enabling the attached processor to concentrate on the application workload. See Computer storage technology, Operating system
Multiprocessor systems may be classified into four types: single instruction stream, single data stream (SISD); single instruction stream, multiple data stream (SIMD); multiple instruction stream, single data stream (MISD): and multiple instruction stream, multiple data stream (MIMD). Systems in the MISD category are rarely built. The other three architectures may be distinguished simply by the differences in their respective instruction cycles:
In an SISD architecture there is a single instruction cycle; operands are fetched in serial fashwion into a single processing unit before execution. Sequential processors fall into this category.
An SIMD architecture also has a single instruction cycle, but multiple sets of operands may be fetched to multiple processing units and may be operated upon simultaneously within a single instruction cycle. Multiple-functional-unit, array, vector, and pipeline processors are in this category. See Supercomputer
In an MIMD architecture, several instruction cycles may be active at any given time, each independently fetching instructions and operands into multiple processing units and operating on them in a concurrent fashion. This category includes multiple processor systems in which each processor has its own program control, rather than sharing a single control unit.
MIMD systems can be further classified into throughput-oriented systems, high-availability systems, and response-oriented systems. The goal of throughput-oriented multiprocessing is to obtain high throughput at minimal computing cost in a general-purpose computing environment by maximizing the number of independent computing jobs done in parallel. High-availability multiprocessing systems are generally interactive, often with never-fail real-time online performance requirements.
The goal of response-oriented multiprocessing (or parallel processing) is to minimize system response time for computational demands. See Computer systems architecture, Concurrent processing, Fault-tolerant systems, Real-time systems
multiprocessingSimultaneous processing with two or more processors in one computer or two or more computers processing together. When two or more computers are used, they are tied together with a high-speed channel and share the general workload between them. If one fails, the other takes over. Multiprocessing is also accomplished in special-purpose computers, such as vector processors, which provide concurrent processing on sets of data.
Concurrent Instruction Processing
All computers perform simultaneous functions, such as executing instructions while reading from an input device and writing to an output device. CPUs can also execute multiple instructions simultaneously from a single stream of instructions (see pipeline processing). However, multiprocessing refers specifically to the concurrent execution of two or more independent streams of instructions. See parallel processing, SMP, MPP, CMP, bus mastering and fault tolerant.