Share on Facebook Share on Twitter Email
Answers.com

Asymmetric multiprocessing

 

(ASymmetric MultiProcessing) A multiprocessing design in which each CPU is assigned a particular program or part of a program that it executes for the duration of the session. Contrast with SMP, in which all the CPUs function as a single resource pool and take on whatever tasks need to be processed next. See MPP.

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Wikipedia: Asymmetric multiprocessing
Top

Asymmetric multiprocessing or ASMP is a type of multiprocessing supported in DEC's VMS V.3 as well as a number of older systems including TOPS-10 and OS-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 during its brief stint between 1970 - 1980.

Where as 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 interrupts 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 cards, physics cards and cryptographic accelerators which are subordinate to a CPU in modern computers can be considered a form of asymmetric multiprocessing.[citation needed] 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.

Contents

Introduction

Asymmetric multiprocessors and asymmetric multiprocessing (known as ASMP) were pioneered in 1970 by the Massachusetts Institute of Technology (MIT) and Digital Equipment Corporation (DEC)[1]. 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 by symmetric 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 used 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, including asymmetric 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 (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 and SMP

In the symmetrical multiprocessing 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.

Software 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 use 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 and SMP

Symmetrical multiprocessing when referring to software, implies the exact opposite of ASMP. In regards to the operating system, a SMP machine 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 for a number of reason such as the an inability to access the entire memory map, special purpose nature of the processor (e.g. a coprocessor), and thus tasks must be give to it by master processor. Therefore, it is up to the programmer to make sure the processors are being used to their maximum potential. 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 use SMP. This can be observed by the end user by simply referring to their system process manager and watching the activity levels.

History

Asymmetric multiprocessors date back to 1970, when they were first pioneered by MIT and DEC[1] as a modern computing technique. Their original design and product was called the PDP-6/KA10. In 1972 DEC rewrote their TOPS-10[1] monitor software which ran on the PDP-10.[1] This change allowed for the computer to use 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.[1]

After 1981, asymmetric processing research and design faded and later disappeared.[1] 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 history 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 (i.e. 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 SMP architecture.

ASMP-capable processors

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 the other is given the position of "slave".

The hardware architecture was abandoned in the early 80's and lost out to Symmetrical multiprocessors which were 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 use 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 game 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 the I/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 do physics calculations while another is dedicated to rendering 2D video. Above those two processors, will be a master processor that assigns tasks.

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.

See also

Notes

  1. ^ a b c d e f http://ei.cs.vt.edu/~history/Parallel.html History of Multiprocessing

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


 
 

 

Copyrights:

Computer Desktop Encyclopedia. THIS COPYRIGHTED DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2009 Computer Language Company Inc.  All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Asymmetric multiprocessing" Read more