- Asymmetric multiprocessing
Note: This article refers to both asymmetrical multiprocessing and multiprocessors.
Asymmetric multiprocessing or ASMP is a style of
multiprocessing supported in DEC's VMS V.3 as well as a number of older systems includingTOPS-10 andOS-360 . It varies greatly from the standard processing model that we see in personal computers today. Due to the complexity and unique nature of this architecture, it was not adopted by many vendors or programmers past its brief stint between 1970 - 1980.Whereas a symmetric multiprocessor or SMP treats all of the processing elements in the system identically, an ASMP system assigns certain tasks only to certain processors. In particular, only one processor may be responsible for fielding all of the
interrupt s in the system or perhaps even performing all of the I/O in the system. This makes the design of the I/O system much simpler, although it tends to limit the ultimate performance of the system.Graphics card s,physics card s andcryptographic accelerator s which are subordinate to a CPU in modern computers can be considered a form of asymmetric multiprocessing.Fact|date=September 2008 SMP is extremely common in the modern computing world, when people refer to "multi core" or "multi processing" they are most commonly referring to SMP.Introduction
Asymmetric multiprocessors and asymmetric multiprocessing (known as ASMP) were pioneered in 1970 by the
Massachusetts Institute of Technology (MIT) andDigital Equipment Corporation (DEC)http://ei.cs.vt.edu/~history/Parallel.html History of Multiprocessing] . ASMP allows applications to run specific subtasks on processors separate from the "master" processor. ASMP computers are comprised of multiple physical processors that are unique, and thus not symmetrical. These processors are defined as either master or slave: master processors are more capable than slaves and are given full control over what the slave processors do. ASMP is not in use in the modern world as it was overtaken bysymmetric multiprocessing (SMP), which became common. Intel started work on SMP in 1981 which marked the demise of ASMP in the consumer and corporate market.Although hardware-level ASMP may not be in use, the idea and logical process is still commonly used in applications that are multiprocessor intensive. Unlike SMP applications, which run their threads on multiple processors, ASMP applications will run on one processor but outsource smaller tasks to another. Although the system may physically be an SMP, the software is still able to use it as an ASMP by simply giving certain tasks to one processor and deeming it the "master", and only outsourcing smaller tasks to "slave" processors.
Asymmetric hardware systems commonly dedicated individual processors to specific tasks. For example, one processor may be dedicated to disk operations, another to video operations, and the rest to standard processor tasks. These systems don't have the flexibility to assign processes to the least-loaded
CPU , unlike an SMP system.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 (SMP) systems. In systems where all CPUs are not equal, system resources may be divided in a number of ways, includingasymmetric multiprocessing (ASMP), and clustered multiprocessing ("qq.v.").Hardware ASMP
Overview
Asymmetrical multiprocessors are defined by the characteristic that each processor is unique (non-symmetrical). It is common to have one processor that has access to the memory map as a whole, and other processors which simply act as slaves to the main or master processor. Usually, these slave processors will have their own memory which is not tied to the primary processors memory. Slave processors are required to exchange data with the main processor through a partitioned segment of memory that is allocated solely for the purpose of communication. Depending on the hardware in question, each processor may or may not be able to speak to other processors directly. For example, on a
VAX 11/784 (which contained four processors) slave processors could not talk to one another, and had to speak to the master processor instead.Differences between hardware ASMP & SMP
In the
symmetrical multiprocessor design, each processor is able to access the entire memory map, there are no master or slave processors. In this case each processor is non-unique and has equal power. This means that they can share memory between themselves and can interact with each other directly. regardless of how many there are in the system. People commonly confuse these architectures and as such it is important to define the differences between SMP and ASMP.oftware ASMP
Overview
Asymmetric multiprocessing (as opposed to asymmetrical multiprocessors) is the term that refers to software side ASMP. Just as one would refer to each unique die as a processor, in software each program or application is a process. ASMP for software means that all tasks/processes are unique (i.e non symmetrical). Thus a given task (such as your operating system or favorite game) would be assigned to a certain processor. In a more general context "a certain task not run on every processor". It is common for application which utilize ASMP to work in the following way. The main processor will determine what work needs to be done and will take the bulk of the load, from there it can create instances of the given task on other processors to complete work. Take a video rendering program, the main processor could run the application and the user interface, while offloading the rendering component to a slave processor. This type of action needs to be written into the software and is not decided at the hardware level. It is the programmers responsibility to determine what jobs should be completed by a given processor.
It must be noted that most applications will ONLY run on the master processor and that the slave processors can merely take on the role of completing tasks that the master processor asks. It is rare that an entire application will or can be run from a slave processor.
Differences between software ASMP & SMP
Symmetrical multiprocessing when referring to software, implies the exact opposite of ASMP. In regards to the operating system, SMP is able to spawn any process/task on any of the processors available. Because SMP systems have no master or slave processors, each logical unit is able to complete a given task. In an ASMP system, a certain processor may not be able to complete a task due to an inability to access the entire memory map, it must then be run from the master processor and given tasks by the master processor to complete. Once again it is up to the programmer to make sure the processors are being utilized to their maximum potential. It is a common conception that SMP programming is much simpler as any processor in the system can complete a given task, thus a programmer just needs to simply balance the workload between processors. in an ASMP environment, a programmer has to worry about whether a processor can complete a given task and how to make the processors communicate effectively to distribute tasks.
When most people refer to multiprocessing or multiprocessors, it is usual in reference to SMP systems and SMP operating systems.The current generation of operating systems (circa 2008) can all effectively utilize SMP. This can be observed by the end user by simply referring to their system process manager and watching the activity levels.
Asymmetric vs symmetric multiprocessing
History
Asymmetric multiprocessors date back to 1970, when they were first pioneered by
MIT andDEC as a modern computing technique. Their original design and product was called thePDP-6 /KA10 . In 1972 DEC rewrote theirTOPS-10 monitor software which ran on thePDP-10 . This change allowed for the computer to utilize asymmetric multiprocessing. Furthermore in 1981 DEC continued their research into ASMP and produced asymmetric multiprocessor models of the VAX 11, the VAX 11/782 which had two processors, and the VAX 11/784 which had four processors.Post 1981, asymmetric processing research and design faded and later disappeared. Symmetrical processing came about during the same period and saw higher adoption along with use by larger companies such as Intel. As a result, ASMP seemed to disappear into the history books while SMP began to flourish. It was largely because ASMP was very complex and convoluted in its design, most of the technology was optimized for very specific applications (ones that could spawn smaller processes that needed computing ie Video editing applications that could outsource rendering to a separate processor). SMP is simply a collection of identical processors capable or processing any information that any one processor is given.Thus writing software and operating systems that are multiprocessing capable, was much more realistic for a SMP architecture.
ASMP-capable processors
*
Digital Equipment Corporation
**PDP-6 /KA10
**VAX 11
*** VAX 11/782
*** VAX 11/784
**PDP-10
**OS-360 Modern applications of ASMP
Currently there are no consumer level production computers that use asymmetric multiprocessor designs. There are, however, computers that are able to distribute tasks Asymmetrically. In theory you are able to use a Symmetrical processor to do asymmetrical computations. A programmer can choose to use one processor as a main, and only offload certain tasks to the other processor. Although each physical or logical processor is able to complete any given task, priority is given to one as the "master" processor, and theother is given the position of "slave".
The hardware architecture was abandoned in the early 80's and lost out to
Symmetrical multiprocessors which was much easier to work with and provided a much simpler hardware build. It is common to see some applications using Asymmetrical traits within a symmetrical processing system. Such an example would be a video game that ran on one "master" processor and offloaded physics calculation onto the "slave" processor. Even though both processors are non-unique and equal, software can choose to utilize the processors in a master/slave fashion.ATI pioneered a technology that allows their video cards to be used Asymmetrically (i.e Using one for Rendering and another for Physics) but this is once again a representation of Software ASMP.The hardware is identical and thus Symmetric, but is being used Asymmetrically through software intervention.
The Sony PS3 is an example of an extrapolated asymmetric multiprocessor. The cell processor has unique cores which compute only certain tasks, though it is a games console rather than a general-purpose computer.
Graphical Representation Of Asymmetric Multiprocessing
Below are examples of what a cluster of
asymmetrical multiprocessors would look like. Observe the extremely unique nature of these designs and how only one processor has access to theI/O part of the system. As stated before, these systems work best and were originally designed to do very specific tasks. One processor may simply dophysics calculations while another is dedicated to rendering2D video. Above those two processors, will be a mater processor that hands out the tasks that need to be done.Notice also that the main memory is not accessible by all of the processors. The master processor will usually relay information on a "need to know" basis, to the slave processors.
References
* Bell, C. Gordon, Mudge, J. Craig, McNamara John E. "The PDP-10 Family". (1979). Part V of "Computer Engineering: A DEC View of Hardware Systems Design". Digital Equipment Corp.
* http://www.byte.com/art/9403/sec7/art4.htm
* Rajkumar Buyya (editor): "High Performance Cluster Computing: Architectures and Systems", Volume 1, ISBN 0-13-013784-7, Prentice Hall, NJ, USA, 1999.
* Rajkumar Buyya (editor): "High Performance Cluster Computing: Programming and Applications", Volume 2, ISBN 0-13-013785-5, Prentice Hall, NJ, USA, 1999.External links
* [http://www.intel.com/cd/ids/developer/asmo-na/eng/95581.htm?page=2 Intel]
* [http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118,00.html AMD]
* [http://www.llnl.gov/computing/tutorials/openMP/ OpenMP tutorial for parallel programming]
* [http://ei.cs.vt.edu/~history/Parallel.html History of Multi-Processing]
* [http://www.cs.bris.ac.uk/~alan/book.html Practical Parellel Programming in Pascal]
* [http://www.ibm.com/developerworks/library/l-linux-smp/ Linux and Multiprocessing EXCELLENT article]ee also
*
3B20C
*Multi-core (computing)
*BMDFM (Binary Modular Dataflow Machine)
*Software lockout Further reading
*
SUHA
Wikimedia Foundation. 2010.