Asymmetric multiprocessing

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 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 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 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.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) and Digital 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 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 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, 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 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 and DEC as a modern computing technique. Their original design and product was called the PDP-6/KA10. In 1972 DEC rewrote their TOPS-10 monitor software which ran on the PDP-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 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 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.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Asymmetric Multiprocessing — (ASMP) dans le cas d une architecture multiprocesseur. Un des processeurs est réservé aux processus noyau. Ce document provient de « Asymmetric multiprocessing ». Catégorie : Architecture informatique …   Wikipédia en Français

  • Asymmetric multiprocessing — (ASMP) dans le cas d une architecture multiprocesseur. Un des processeurs est réservé aux processus noyau. Portail de l’informatique Catégorie : Architecture informatique …   Wikipédia en Français

  • Multiprocessing — (see also Multiprocessor) 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 …   Wikipedia

  • Asymetric multiprocessing — Asymmetric multiprocessing Asymmetric multiprocessing (ASMP) dans le cas d une architecture multiprocesseur. Un des processeurs est réservé aux processus noyau. Ce document provient de « Asymmetric multiprocessing ». Catégorie : Architecture… …   Wikipédia en Français

  • Symmetric multiprocessing — Pour les articles homonymes, voir SMP. Le Symmetric multiprocessing (SMP) est une architecture informatique dite parallèle qui consiste à multiplier les processeurs au sein d un ordinateur, de manière à augmenter la puissance de calcul. L… …   Wikipédia en Français

  • Symmetric multiprocessing — In computing, symmetric multiprocessing (SMP) involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common… …   Wikipedia

  • AMS —    Asymmetric Multiprocessing System (IBM) …   IT glossary of terms, acronyms and abbreviations

  • Compaq SystemPro — The SystemPro from Compaq was arguably the first true PC based server. It had a support for Intel s latest 486 chip, a 32 bit bus, RAID disk and dual processor support well before its main rivals.[ …   Wikipedia

  • AT&T Computer Systems — is the generic name for American Telephone Telegraph s unsuccessful attempt to compete in the computer business. In return for divesting the local Bell Operating Companies (Baby Bells), AT T was allowed to have an unregulated division to sell… …   Wikipedia

  • Remote Job Entry — is the term used to describe the process of sending jobs to Mainframe computers from remote workstations, and by extension the process of receiving output from mainframe jobs at a remote workstation. The RJE workstation is called a remote because …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”