All Topics  
Multi-core (computing)

 

   Email Print
   Bookmark   Link






 

Multi-core (computing)



 
 
A multi-core processor (or chip-level multiprocessor, CMP) combines two or more independent cores (normally a CPU) into a single package composed of a single integrated circuit
Integrated circuit

In electronics, an integrated circuit is a miniaturized electronic circuit that has been manufactured in the surface of a thin Wafer of semiconductor material....
 (IC), called a die
Die (integrated circuit)

A die in the context of integrated circuits is a small block of semiconducting material, on which a given functional circuit is fabricated.Typically, integrated circuits are produced in large batches on a single wafer of electronic-grade silicon through processes such as photolithography....
, or more dies packaged together. A dual-core processor contains two cores, and a quad-core processor contains four cores. A multi-core microprocessor implements multiprocessing
Multiprocessing

Multiprocessing is the use of two or more CPU 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....
 in a single physical package.






Discussion
Ask a question about 'Multi-core (computing)'
Start a new discussion about 'Multi-core (computing)'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A multi-core processor (or chip-level multiprocessor, CMP) combines two or more independent cores (normally a CPU) into a single package composed of a single integrated circuit
Integrated circuit

In electronics, an integrated circuit is a miniaturized electronic circuit that has been manufactured in the surface of a thin Wafer of semiconductor material....
 (IC), called a die
Die (integrated circuit)

A die in the context of integrated circuits is a small block of semiconducting material, on which a given functional circuit is fabricated.Typically, integrated circuits are produced in large batches on a single wafer of electronic-grade silicon through processes such as photolithography....
, or more dies packaged together. A dual-core processor contains two cores, and a quad-core processor contains four cores. A multi-core microprocessor implements multiprocessing
Multiprocessing

Multiprocessing is the use of two or more CPU 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....
 in a single physical package. A processor with all cores on a single die is called a monolithic processor. Cores in a multicore device may share a single coherent cache
Cache

In computer science, a cache is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data is expensive to fetch or to compute, compared to the cost of reading the cache....
 at the highest on-device cache level (e.g. L2 for the Intel
Intel Corporation

Intel Corporation is the world's largest semiconductor company and the inventor of the X86 architecture series of microprocessors, the processors found in most personal computers....
 Core 2) or may have separate caches (e.g. current AMD
Advanced Micro Devices

Advanced Micro Devices, Inc. is an United States multinational corporation semiconductor industry company based in Sunnyvale, California, that develops Central processing unit and related technologies for commercial and consumer markets....
 dual-core processors). The processors also share the same interconnect to the rest of the system. Each "core" independently implements optimizations such as superscalar
Superscalar

A superscalar Central processing unit architecture implements a form of parallel computer called instruction level parallelism within a single processor....
 execution, pipelining, and multithreading
Multithreading (computer hardware)

Multithreading computers have hardware support to efficiently execute multiple thread . These are distinguished from multiprocessing systems in that the threads have to share the resources of single core: the computing units, the CPU caches and the translation lookaside buffer ....
. A system with cores is effective when it is presented with or more threads
Thread (computer science)

In computer science, a thread of execution is a Fork of a computer program into two or more Concurrency running task s. The implementation of threads and process es differs from one operating system to another, but in most cases, a thread is contained inside a process....
 concurrently. The most commercially significant (or at least the most 'obvious') multi-core processors are those used in personal computer
Personal computer

A personal computer is any general-purpose computer whose original sales price, size, and capabilities make it useful for individuals, and which is intended to be operated directly by an end user, with no intervening computer operator....
s (primarily from Intel and AMD) and game consoles (e.g., the eight-core Cell
Cell microprocessor

Cell is a microprocessor architecture jointly developed by Sony Computer Entertainment, Toshiba, and IBM, an alliance known as "STI". The architectural design and first implementation were carried out at the STI Design Center in Austin, Texas over a four-year period beginning March 2001 on a budget reported by IBM as approaching United States...
 processor in the PS3 and the three-core Xenon
Xenon (processor)

Xenon is a Central processing unit that is used in the Xbox 360 game console. The processor, internally codenamed "Waternoose" by IBM and "XCPU" by Microsoft, is based on IBM PowerPC instruction set architecture, consisting of three independent Multi-core on a single die....
 processor in the Xbox 360
Xbox 360

The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
). In this context, "multi" typically means a relatively small number of cores. However, the technology is widely used in other technology areas, especially those of embedded processors, such as network processors and digital signal processors, and in GPUs
Graphics processing unit

A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose Central processing unit for a range of com...
.

The amount of performance gained by the use of a multicore processor depends on the problem being solved and the algorithms used, as well as their implementation in software (Amdahl's law
Amdahl's law

Amdahl's law, also known as Amdahl's argument, is named after Computer architecture Gene Amdahl, and is used to find the maximum expected improvement to an overall system when only part of the system is improved....
). For so-called "embarrassingly parallel
Embarrassingly parallel

In parallel computing, an embarrassingly parallel workload is one for which little or no effort is required to separate the problem into a number of parallel tasks....
" problems, a dual-core processor with two cores at 2GHz may perform very nearly as quickly as a single core of 4GHz. Other problems, though, may not yield so much speedup. This all assumes, however, that the software has been designed to take advantage of available parallelism. If it hasn't, there will not be any speedup at all. However, the processor will multitask better since it can run two programs at once, one on each core.

Terminology

There is some discrepancy in the semantics
Semantics

Semantics is the study of meaning in communication. The word is derived from the Greek language word s??a?t???? , "significant", from s??a??? , "to signify, to indicate" and that from s??a , "sign, mark, token"....
 by which the terms multi-core and dual-core are defined. Most commonly they are used to refer to some sort of central processing unit
Central processing unit

A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage....
 (CPU), but are sometimes also applied to digital signal processor
Digital signal processor

A digital signal processor is a specialized microprocessor designed specifically for digital signal processing, generally in real-time computing....
s (DSP) and System-on-a-chip
System-on-a-chip

System-on-a-chip or system on chip refers to integrating all components of a computer or other Electronics system into a single integrated circuit ....
 (SoC). Additionally, some use these terms to refer only to multi-core microprocessors that are manufactured on the same integrated circuit die
Die (integrated circuit)

A die in the context of integrated circuits is a small block of semiconducting material, on which a given functional circuit is fabricated.Typically, integrated circuits are produced in large batches on a single wafer of electronic-grade silicon through processes such as photolithography....
. These people generally refer to separate microprocessor dies in the same package by another name, such as multi-chip module
Multi-Chip Module

A Multi-Chip Module is a specialized electronic package where multiple integrated circuits , semiconductor dies or other modules are packaged in such a way as to facilitate their use as a single IC....
. This article uses both the terms "multi-core" and "dual-core" to reference microelectronic CPUs manufactured on the same integrated circuit, unless otherwise noted.

In contrast to multi-core systems, the term multi-CPU refers to multiple physically separate processing units (which often contain special circuitry to facilitate communication between each other).

The terms many-core and massively multi-core are sometimes used to describe multi-core architectures with an especially high number of cores (tens or hundreds).

Some systems use many soft microprocessor
Soft microprocessor

A soft microprocessor is a microprocessor core that can be wholly implemented using logic synthesis. It can be implemented via different semiconductor devices containing programmable logic ....
 cores placed on a single FPGA. Each of "cores" can be considered a "semiconductor intellectual property core
Semiconductor intellectual property core

In electronic design a semiconductor intellectual property core, IP block, IP core, or logic core is a reusable unit of logic, cell, or chip layout design and is also the intellectual property of one party....
" as well as a CPU core.

Development

While manufacturing technology continues to improve, reducing the size of single gates, physical limits of semiconductor-based microelectronics have become a major design concern. Some effects of these physical limitations can cause significant heat dissipation and data synchronization problems. The demand for more capable microprocessors causes CPU designers to use various methods of increasing performance. Some instruction-level parallelism (ILP) methods like superscalar
Superscalar

A superscalar Central processing unit architecture implements a form of parallel computer called instruction level parallelism within a single processor....
 pipelining are suitable for many applications, but are inefficient for others that tend to contain difficult-to-predict code. Many applications are better suited to thread level parallelism (TLP) methods, and multiple independent CPUs is one common method used to increase a system's overall TLP. A combination of increased available space due to refined manufacturing processes and the demand for increased TLP is the logic behind the creation of multi-core CPUs.

Commercial incentives

Several business motives drive the development of dual-core architectures. Since symmetric multiprocessing
Symmetric multiprocessing

In computing, symmetric multiprocessing or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory....
 (SMP) designs have long been implemented using discrete CPUs, the issues regarding implementing the architecture and supporting it in software are well known.

Additionally,

  • Utilizing a proven processing core design without architectural changes reduces design risk significantly.
  • For general-purpose processors, much of the motivation for multi-core processors comes from greatly diminished gains in processor performance from increasing the operating frequency (frequency scaling
    Frequency scaling

    Frequency scaling is, in computer architecture, the technique of ramping a processor's frequency so as to achieve performance gains. Frequency ramping was the dominant force in commodity processor performance increases from the mid-1980s until the end of 2004....
    ). The memory wall and the ILP wall are the culprits in why system performance has not gained as much from continued processor frequency increases as was once seen. The memory wall refers to the increasing gap between processor and memory speeds, which pushes cache sizes larger to mask the latency to memory which helps only to the extent that memory bandwidth is not the bottleneck in performance. The ILP wall refers to increasing difficulty to find enough parallelism in the instructions stream of a single process to keep higher performance processor cores busy. Finally, the often cited, power wall refers to the trend of consuming double the power with each doubling of operating frequency (which is possible to contain to just doubling only if the processor is made smaller). The power wall poses manufacturing, system design and deployment problems that have not been justified in the face of the diminished gains in performance due to the memory wall and ILP wall. Together, these three walls combine to motivate multicore processors.
  • In order to continue delivering regular performance improvements for general-purpose processors, manufacturers such as Intel and AMD have turned to multi-core designs, sacrificing lower manufacturing costs for higher performance in some applications and systems.
  • The terminology "dual-core" (and other multiples) lends itself to marketing efforts.


Multi-core architectures are being developed, but so are the alternatives. An especially strong contender for established markets is the further integration of peripheral functions into the chip.

Advantages

The proximity of multiple CPU cores on the same die allows the cache coherency
Cache coherency

In computing, cache coherence refers to the integrity of data stored in local caches of a shared resource. Cache coherence is a special case of memory coherence....
 circuitry to operate at a much higher clock rate than is possible if the signals have to travel off-chip. Combining equivalent CPUs on a single die significantly improves the performance of cache snoop (alternative: Bus snooping) operations. Put simply, this means that signals
Discrete signal

A discrete signal or discrete-time signal is a time series, perhaps a signal that has been sampling from a continuous signal.Unlike a continuous-time signal, a discrete-time signal is not a function of a continuous-time argument, but is a sequence of quantities; that is, a function over a Domain of discrete integers....
 between different CPUs travel shorter distances, and therefore those signals degrade
Degradation (telecommunications)

In telecommunication, degradation, which may be categorized as either "graceful degradation" or "catastrophic", has the following meanings:...
 less. These higher quality signals allow more data to be sent in a given time period since individual signals can be shorter and do not need to be repeated as often.

The largest boost in performance will likely be noticed in improved response time while running CPU-intensive processes, like antivirus scans, ripping/burning media (requiring file conversion), or searching for folders. For example, if the automatic virus scan initiates while a movie is being watched, the application running the movie is far less likely to be starved of processor power, as the antivirus program will be assigned to a different processor core than the one running the movie playback.

Assuming that the die can fit into the package, physically, the multi-core CPU designs require much less Printed Circuit Board (PCB)
Printed circuit board

A printed circuit board, or PCB, is used to mechanically support and electrically connect electronic components using Conductor pathways, or signal traces, industrial etchinged from copper sheets laminated onto a non-conductive substrate....
 space than multi-chip SMP designs. Also, a dual-core processor uses slightly less power than two coupled single-core processors, principally because of the decreased power required to drive signals external to the chip. Furthermore, the cores share some circuitry, like the L2 cache and the interface to the front side bus (FSB)
Front side bus

In personal computers, the Front Side Bus is the bus that carries data between the central processing unit and the Northbridge .Depending on the processor used, some computers may also have a back side bus that connects the CPU to the CPU cache....
. In terms of competing technologies for the available silicon die area, multi-core design can make use of proven CPU core library designs and produce a product with lower risk of design error than devising a new wider core design. Also, adding more cache suffers from diminishing returns.

Disadvantages

In addition to operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 (OS) support, adjustments to existing software are required to maximize utilization of the computing resources provided by multi-core processors. Also, the ability of multi-core processors to increase application performance depends on the use of multiple threads within applications. The situation is improving: for example the American
United States

The United States of America is a Federal government constitutional republic comprising U.S. state and a federal district. The country is situated mostly in central North America, where its Contiguous United States and Washington, D.C., the Capital districts and territories, lie between the Pacific Ocean and Atlantic Oceans, Borders of the U...
 PC game developer Valve Corporation
Valve Corporation

Valve Corporation is an United States video game developer company based in Bellevue, Washington, USA that was founded in 1996, and made famous by its first product, Half-Life , which was released in November 1998....
 has stated that it will use multi core optimizations for the next version of its Source engine
Source engine

The Source engine is a game engine developed by Valve Corporation. The engine supports Microsoft Windows , Xbox, Xbox 360, and PlayStation 3.It debuted in October 2004 with Counter-Strike: Source and shortly thereafter Half-Life 2....
, shipped with Half-Life 2: Episode Two
Half-Life 2: Episode Two

Half-Life 2: Episode Two is the second installment in Valve Corporation's series of episodic games for the first person shooter computer game Half-Life 2....
, the next installment of its Half-Life series., and Crytek
Crytek

Crytek is a video game company founded in 1999 by three Turkey brothers: Cevat Yerli, Avni and Faruk Yerli. Crytek's main headquarters are in Frankfurt, Germany, Germany, with three other studios in Kiev, Ukraine, Ukraine, Budapest, Hungary, Hungary and Sofia, Bulgaria, Bulgaria....
 is developing similar technologies for CryEngine 2, which powers their game, Crysis
Crysis

Crysis is a science fiction first-person shooter video game developed by German video game developer Crytek and published by Electronic Arts, and is the first game of a planned trilogy....
. Emergent Game Technologies
Emergent Game Technologies

Emergent Game Technologies was founded in 2002 and develops middleware technologies for building, testing, managing and expanding video games. Emergent merged with Numerical Design Limited , the developer?s of the Gamebryo game engine, in August 2005, and the newly-formed company assumed Emergent?s name....
' Gamebryo
Gamebryo

Gamebryo is a game engine, originally from Numerical Design Limited , and is the successor to NDL's NetImmerse engine.Since the creation of Gamebryo, NDL merged with Emergent Game Technologies....
 engine includes their Floodgate technology which simplifies multicore development across game platforms. See Dynamic Acceleration Technology for the Santa Rosa platform
Centrino

Centrino is a platform-marketing initiative from Intel. It is not a mobile CPU - rather, the term covers a particular combination of mainboard chipset, mobile Central processing unit and wireless network interface in the design of a laptop....
 for an example of a technique to improve single-thread performance on dual-core processors.

Integration of a multi-core chip drives production yields down and they are more difficult to manage thermally than lower-density single-chip designs. Intel has partially countered this first problem by creating its quad-core designs by combining two dual-core on a single die with a unified cache, hence any two working dual-core dies can be used, as opposed to producing four cores on a single die and requiring all four to work to produce a quad-core. From an architectural point of view, ultimately, single CPU designs may make better use of the silicon surface area than multiprocessing cores, so a development commitment to this architecture may carry the risk of obsolescence. Finally, raw processing power is not the only constraint on system performance. Two processing cores sharing the same system bus and memory bandwidth limits the real-world performance advantage. If a single core is close to being memory bandwidth limited, going to dual-core might only give 30% to 70% improvement. If memory bandwidth is not a problem, a 90% improvement can be expected. It would be possible for an application that used two CPUs to end up running faster on one dual-core if communication between the CPUs was the limiting factor, which would count as more than 100% improvement.

Hardware


Trends

The general trend in processor development has been from multi-core to many-core: from dual-, tri-, quad-, octo-core chips to ones with tens or even hundreds of cores. In addition, multi-core chips mixed with simultaneous multithreading
Simultaneous multithreading

Simultaneous multithreading, often abbreviated as SMT, is a technique for improving the overall efficiency of superscalar Central processing unit with Multithreading ....
, memory-on-chip, and special-purpose "heterogeneous" cores promise further performance and efficiency gains, especially in processing multimedia, recognition and networking applications. There is also a trend of improving energy efficiency by focusing on performance-per-watt with advanced fine-grain or ultra fine-grain power management
Power management

Power management is a feature of some electrical appliances, especially photocopying, computer and computer peripherals such as Computer display and Computer printer, that turns off the power or switches the system to a low-power state when inactive....
 and dynamic voltage and frequency scaling ] (i.e. laptop
Laptop

A laptop is a personal computer designed for mobile computing small enough to sit on one's lap. A laptop includes most of the Computer hardware of a typical desktop computer, including a Computer display, a computer keyboard, a pointing device as well as a battery, into a single small and light unit....
 computers and portable media player
Portable media player

A portable multimedia player , sometimes referred to as a portable video player , is a consumer electronics device that is capable of storing and playing digital media....
s).

Architecture


One of the biggest areas for variety in multi-core architecture is the composition and balance of the cores themselves. Some architectures use one core design which is repeated consistently ("homogenous"), while others use a mixture of different cores, each optimized for a different role ("heterogenous").

As an example of this discussion, the article by Rick Merritt, EE Times 2008, includes comments: "Chuck Moore... suggested computers should be more like cellphones, using a variety of specialty cores to run modular software scheduled by a high-level applications programming interface. ... Atsushi Hasegawa, a senior chief engineer at Renesas, generally agreed. He suggested the cellphone's use of many specialty cores working in concert is a good model for future multi-core designs. ... Anant Agarwal
Anant Agarwal

Anant Agarwal is a computer architecture researcher. He is a professor of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology....
, founder and chief executive of startup Tilera
Tilera

Tilera? Corporation is a fabless semiconductor company and the industry leader in highly scalable multicore embedded processor design.Tilera's Tile processors are based on a new mesh architecture that scales to hundreds of full-featured cores on a single chip....
, took the opposing view. He said multi-core chips need to be homogenous collections of general-purpose cores to keep the software model simple. "


Software impact

Software benefits from multicore architectures where code can be executed in parallel. Under most common operating systems this requires code to execute in separate thread
Thread (computer science)

In computer science, a thread of execution is a Fork of a computer program into two or more Concurrency running task s. The implementation of threads and process es differs from one operating system to another, but in most cases, a thread is contained inside a process....
s or processes. Each application running on a system runs in its own process so multiple applications will benefit from multicore architectures. Each application may also have multiple threads but, in most cases, it must be specifically written to utilize multiple threads. Operating system software also tends to run many threads as a part of its normal operation. Running virtual machine
Virtual machine

In computer science, a virtual machine is a software implementation of a machine that executes programs like a real machine.Definitions...
s will benefit from adoption of multiple core architectures since each virtual machine runs independently of others and can be executed in parallel.

Most application software is not written to use multiple concurrent threads intensively because of the challenge of doing so. A frequent pattern in multithreaded application design is where a single thread does the intensive work (a so called "worker thread") while other threads do much less (such as for example updating the GUI to display progress/status information or process control inputs). For example, a virus scan application may create a new thread for the scan process, while the GUI
Graphical user interface

A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment....
 thread waits for commands from the user (e.g. cancel the scan). In such cases, multicore architecture is of little benefit for the application itself due to the single thread doing all heavy lifting and the inability to balance the work evenly across multiple cores. Programming truly multithreaded code often requires complex co-ordination of threads and can easily introduce subtle and difficult-to-find bugs due to the interleaving of processing on data shared between threads (thread-safety). Consequently, such code is much more difficult to debug than single-threaded code when it breaks. There has been a perceived lack of motivation for writing consumer-level threaded applications because of the relative rarity of consumer-level multiprocessor hardware. Although threaded applications incur little additional performance penalty on single-processor machines, the extra overhead of development has been difficult to justify due to the preponderance of single-processor machines.

Given the increasing emphasis on multicore chip design, stemming from the grave thermal and power consumption problems posed by any further significant increase in processor clock speeds, the extent to which software can be multithreaded to take advantage of these new chips is likely to be the single greatest constraint on computer performance in the future. If developers are unable to design software to fully exploit the resources provided by multiple cores, then they will ultimately reach an insurmountable performance ceiling.

The telecommunications market had been one of the first that needed a new design of parallel datapath packet processing because there was a very quick adoption of these multiple core processors for the datapath and the control plane. These MPUs are going to replace the traditional Network Processors that were based on proprietary micro- or pico-code.

Parallel programming techniques can benefit from multiple cores directly. Some existing parallel programming model
Parallel programming model

A parallel programming model is a set of software technologies to express parallel algorithms and match applications with the underlying parallel systems....
s such as , OpenMP
OpenMP

The OpenMP is an application programming interface that supports multi-platform shared memory multiprocessing programming in C , C++ and Fortran on many architectures, including Unix and Microsoft Windows platforms....
 and MPI
Message Passing Interface

Message Passing Interface is a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers....
 can be used on multi-core platforms. Intel introduced a new abstraction for C++ parallelism called TBB
Intel Threading Building Blocks

Intel Threading Building Blocks is a C++ template library developed by Intel Corporation for writing software programs that take advantage of multi-core CPU....
. Other research efforts include the Codeplay Sieve System
Sieve C++ Parallel Programming System

The Sieve C++ Parallel Programming System is a C++ compiler and parallel runtime designed and released by Codeplay that aims to simplify the Parallel Computing of code so that it may run efficiently on multi-processor or multi-core systems....
, Cray's Chapel
Chapel programming language

Chapel is a new parallel programming language being developed by Cray Inc. Chapel is being developed as part of the Cray Cascade project, a participant in DARPA's High Productivity Computing Systems program, which has the goal of increasing supercomputer productivity by the year 2010....
, Sun's Fortress
Fortress programming language

Fortress is a draft specification for a programming language, initially developed by Sun Microsystems as part of a DARPA-funded supercomputing initiative....
, and IBM's X10
X10 (programming language)

X10 is a programming language being developed by IBM at the Thomas J. Watson Research Center as part of the PERCS?project funded by DARPA's High Productivity Computing Systems program....
.

Managing concurrency
Concurrent computing

Concurrent computing is a form of computing in which computer program are designed as collections of interacting computational processes that may be executed in Parallel computing....
 acquires a central role in developing parallel applications. The basic steps in designing parallel applications are:

Partitioning : The partitioning stage of a design is intended to expose opportunities for parallel execution. Hence, the focus is on defining a large number of small tasks in order to yield what is termed a fine-grained decomposition of a problem.

Communication : The tasks generated by a partition are intended to execute concurrently but cannot, in general, execute independently. The computation to be performed in one task will typically require data associated with another task. Data must then be transferred between tasks so as to allow computation to proceed. This information flow is specified in the communication phase of a design.

Agglomeration : In the third stage, we move from the abstract toward the concrete. We revisit decisions made in the partitioning and communication phases with a view to obtaining an algorithm that will execute efficiently on some class of parallel computer. In particular, we consider whether it is useful to combine, or agglomerate, tasks identified by the partitioning phase, so as to provide a smaller number of tasks, each of greater size. We also determine whether it is worthwhile to replicate data and/or computation.

Mapping : In the fourth and final stage of the parallel algorithm design process, we specify where each task is to execute. This mapping problem does not arise on uniprocessors or on shared-memory computers that provide automatic task scheduling.

On the other hand, on the server side
Server-side

Server-side refers to operations that are performed by the server in a client-server relationship in computer networking.Typically, a server is a software program, such as a web server, that runs on a remote server , reachable from a user's local computer or workstation....
, multicore processors are ideal because they allow many users to connect to a site simultaneously and have independent threads
Thread (computer science)

In computer science, a thread of execution is a Fork of a computer program into two or more Concurrency running task s. The implementation of threads and process es differs from one operating system to another, but in most cases, a thread is contained inside a process....
 of execution. This allows for Web servers and application servers that have much better throughput
Throughput

In communication networks, such as Ethernet or packet radio, throughput is the average rate of successful message delivery over a communication channel....
.

Licensing

Typically, proprietary enterprise server software is licensed "per processor". In the past a CPU was a processor and most computers had only one CPU, so there was no ambiguity.

Now there is the possibility of counting cores as processors and charging a customer for multiple licenses for a multi-core CPU. However, the trend seems to be counting dual-core chips as a single processor as Microsoft, Intel, and AMD support this view. Microsoft have said they would treat a socket as a single processor.

Oracle counts an AMD X2 or Intel dual-core CPU as a single processor but has other numbers for other types, especially for processors with more than two cores. IBM and HP count a multi-chip module as multiple processors. If multi-chip modules count as one processor, CPU makers have an incentive to make large expensive multi-chip modules so their customers save on software licensing. So it seems that the industry is slowly heading towards counting each die (see Integrated circuit
Integrated circuit

In electronics, an integrated circuit is a miniaturized electronic circuit that has been manufactured in the surface of a thin Wafer of semiconductor material....
) as a processor, no matter how many cores each die has. Intel has released Paxville which is really a multi-chip module but Intel is calling it a dual-core - because it uses only one socket. It is not clear yet how licensing will work for Paxville. This is an unresolved and thorny issue for software companies and customers of proprietary software.

Embedded applications


An area of processor technology distinct from "mainstream" PCs is that of embedded computing. The same technological drivers towards multicore apply here too. Indeed, in many cases the application is a "natural" fit for multicore technologies, if the task can easily be partitioned between the different processors.

In addition, embedded software is typically developed for a specific hardware release, making issues of software portability, legacy code or supporting independent developers less critical than is the case for PC or enterprise computing. As a result, it is easier for developers to adopt new technologies and as a result there is a greater variety of multicore processing architectures and suppliers.

In network processing, it is now mainstream for devices to be multi-core, with companies such as Cavium Networks
Cavium Networks

Cavium Networks is a Mountain View, California-based company specializing in ARM architecture-based and MIPS architecture-based network and security processors....
, Wintegra and Broadcom
Broadcom

Broadcom Corporation is an United States supplier of integrated circuits for broadband communications. Founded in 1991 by Henry Samueli and Henry T....
 all manufacturing products with eight processors.

In digital signal processing
Digital signal processing

Digital signal processing is concerned with the representation of the signal s by a sequence of numbers or symbols and the processing of these signals....
 the same trend applies: Texas Instruments
Texas Instruments

Texas Instruments , better known in the electronics industry as TI, is an United States company based in Dallas, Texas, Texas, United States, renowned for developing and commercializing semiconductor and computer technology....
 has the three-core TMS320C6488, Freescale the four-core MSC8144 (and both have stated they are working on eight-core successors). Newer entries include the Storm-1 family from with 40 and 80 general purpose ALUs per chip, all programmable in C as a SIMD engine and Picochip
PicoChip

picoChip is a venture-backed fabless semiconductor company based in Bath, Somerset, founded in 2000.The company has developed a multi-core digital signal processor, the picoArray....
 with three-hundred processors on a single die, focused on communication applications.

Commercial examples


Hardware

  • Ageia
    AGEIA

    Ageia, founded in 2002, was a fabless semiconductor company. Ageia invented PhysX ? a Physics Processing Unit chip capable of performing physics calculations much faster than general purpose Central processing unit; they also licensed out the PhysX Software development kit , a large physics middleware library for Computer game production....
     PhysX
    PhysX

    PhysX is a proprietary software realtime physics engine middleware Software development kit originally developed by Ageia as the NovodeX SDK. The software was PhysX can also refer to a Physics processing unit add-in card designed by Ageia to accelerate PhysX-enabled video games....
    , a multi-core physics processing unit
    Physics processing unit

    A physics processing unit is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of video games....
    .
  • Ambric
    Ambric

    Ambric, Inc., was a fabless semiconductor company founded in 2003 and based in Beaverton, Oregon, Oregon. Ambric produces Massively parallel processor array integrated circuit, for high-performance embedded systems and hardware acceleration of desktop computer and Server applications....
     Am2045, a 336-core Massively Parallel Processor Array (MPPA)
  • AMD
    Advanced Micro Devices

    Advanced Micro Devices, Inc. is an United States multinational corporation semiconductor industry company based in Sunnyvale, California, that develops Central processing unit and related technologies for commercial and consumer markets....
    • Athlon 64
      Athlon 64

      The Athlon 64 is an eighth-generation, AMD64-architecture microprocessor produced by AMD, released on September 23, 2003. It is the third processor to bear the name Athlon, and the immediate successor to the Athlon XP....
      , Athlon 64 FX and Athlon 64 X2
      Athlon 64 X2

      The Athlon 64 X2 is the first multi-core desktop computer Central processing unit designed by AMD. It is essentially a processor consisting of two Athlon 64 cores joined together on one Die with additional control logic....
       family, dual-core desktop processors.
    • Opteron
      Opteron

      The Opteron is Advanced Micro Devices's x86 server Central processing unit line, and was the first processor to implement the AMD64 instruction set architecture ....
      , dual- and quad-core server/workstation processors.
    • Phenom
      Phenom (processor)

      Phenom is the Advanced Micro Devices desktop processor line based on the AMD K10 microarchitecture, or Family 10h Processors, as AMD calls them....
      , triple- and quad-core desktop processors.
    • Sempron X2, dual-core entry level processors.
    • Turion 64 X2
      Turion 64 X2

      Turion 64 X2 is AMD's 64-bit Multi-core notebook processor, intended to compete with Intel's Intel Core and Intel Core 2 CPUs. The Turion 64 X2 was launched on May 17, 2006, after several delays....
      , dual-core laptop processors.
    • Radeon
      Radeon

      ATI Radeon is a brand of graphics processing units that since 2000 has been manufactured by ATI Technologies and subsequently AMD and is the successor to their ATI Rage line....
       and FireStream
      AMD FireStream

      The Advanced Micro Devices FireStream is a stream processing developed by ATI Technologies. It is designed to target various industries, such as the High Performance Computing , scientific, and financial sectors, which utilize the stream processing/GPGPU concept for heavy Floating point computations....
       multi-core GPU
      Graphics processing unit

      A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose Central processing unit for a range of com...
      /GPGPU
      GPGPU

      General-purpose computing on graphics processing units is the technique of using a graphics processing unit, which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the central processing unit....
       (10 cores, 16 5-issue wide superscalar
      Superscalar

      A superscalar Central processing unit architecture implements a form of parallel computer called instruction level parallelism within a single processor....
       stream processors
      Stream processing

      Stream processing is a computer programming paradigm, related to SIMD, that allows some applications to more easily exploit a limited form of parallel computing....
       per core)
  • Analog Devices
    Analog Devices

    Analog Devices is an United States Multinational corporation producer of semiconductor devices. Analog specializes in analog-to-digital converter, digital-to-analog converter, MEMS, and digital signal processing chips for consumer and industrial goods....
     Blackfin
    Blackfin

    Blackfin refers to a family of 16/32-bit microprocessors with built-in Digital Signal Processor functionality, which is traditionally only accompanied by a small and power-efficient microcontroller....
     BF561, a symmetrical dual-core processor.
  • ARM
    ARM architecture

    The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
     MPCore is a fully synthesizable multicore container for ARM11 MPCore and ARM Cortex-A9 MPCore
    ARM Cortex-A9 MPCore

    The ARM Cortex-A9 MPCore is a multicore processor providing up to 4 cache-coherent Cortex-A9 cores each implementing the ARM architecture instruction set architecture....
     processor cores, intended for high-performance embedded and entertainment applications.
  • Azul Systems
    Azul Systems

    Azul Systems, Inc., a privately held company, manufactures computer appliances for executing Java -based applications. Founded in March 2002, Azul Systems is headquartered in Mountain View, California, with offices in Slough, United Kingdom; Tokyo, Japan and Bangalore, India....
     Vega 2, a 48-core processor.
  • Broadcom SiByte SB1250, SB1255 and SB1455.
  • Cradle Technologies CT3400 and CT3600, both multi-core DSPs.
  • Cavium Networks
    Cavium Networks

    Cavium Networks is a Mountain View, California-based company specializing in ARM architecture-based and MIPS architecture-based network and security processors....
     Octeon, a 16-core MIPS
    MIPS architecture

    MIPS is a RISC instruction set architecture developed by MIPS Technologies . In the mid to late 1990s, it was estimated that one in three RISC microprocessors produced were MIPS implementations....
     MPU.
  • HP PA-8800 and PA-8900, dual core PA-RISC processors.
  • IBM
    IBM

    International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
    • POWER4
      POWER4

      The POWER4 chip is a CPU that implements the 64-bit PowerPC Power Architecture. Released in 2001, the POWER4 chip is based on the previous POWER3 chip design....
      , the world's first dual-core processor, released in 2001.
    • POWER5
      POWER5

      POWER5 is a microprocessor developed and fabricated by IBM. It is an improved variant of the highly successful POWER4. The principal improvements are support for simultaneous multithreading and an Semiconductor-die cutting memory controller....
      , a dual-core processor, released in 2004.
    • POWER6
      POWER6

      The POWER6 microprocessor is IBM's follow-on to the POWER5. It is part of the eCLipz, said to have a goal of converging IBM's server hardware where practical ....
      , a dual-core processor, released in 2007.
    • PowerPC 970
      PowerPC 970

      The PowerPC 970, PowerPC 970FX, PowerPC 970GX, and PowerPC 970MP, are 64-bit Power Architecture central processing unit from IBM introduced in 2002....
      MP, a dual-core processor, used in the Apple Power Mac G5
      Power Mac G5

      The Power Mac G5 is Apple Inc.'s marketing name for models of the Power Macintosh which contain the PowerPC 970 central processing unit. The professional-grade computer was the most powerful in Apple's lineup when it was introduced, and was touted by Apple as the fastest personal computer ever built....
      .
    • Xenon
      Xenon (processor)

      Xenon is a Central processing unit that is used in the Xbox 360 game console. The processor, internally codenamed "Waternoose" by IBM and "XCPU" by Microsoft, is based on IBM PowerPC instruction set architecture, consisting of three independent Multi-core on a single die....
      , a triple-core, SMT
      Simultaneous multithreading

      Simultaneous multithreading, often abbreviated as SMT, is a technique for improving the overall efficiency of superscalar Central processing unit with Multithreading ....
      -capable, PowerPC
      PowerPC

      PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
       microprocessor used in the Microsoft
      Microsoft

      Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
       Xbox 360
      Xbox 360

      The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
       game console.
  • IBM
    IBM

    International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
    , Sony
    Sony

    is a multinational corporation list of conglomerates corporation headquartered in Minato, Tokyo, Japan, and one of the world's largest media conglomerates with revenue exceeding US$99.1 billion ....
    , and Toshiba
    Toshiba

    is a multinational corporation list of conglomerates manufacturing company, headquartered in Tokyo, Japan. The company's main business is in Infrastructure, Consumer Products, and Electronic devices and components....
     Cell processor, a nine-core processor with one general purpose PowerPC core and eight specialized SPUs (Synergystic Processing Unit) optimized for vector operations used in the Sony
    Sony

    is a multinational corporation list of conglomerates corporation headquartered in Minato, Tokyo, Japan, and one of the world's largest media conglomerates with revenue exceeding US$99.1 billion ....
     PlayStation 3
    PlayStation 3

    The PlayStation 3 is the third home video game console produced by Sony Computer Entertainment, and the successor to the PlayStation 2 as part of the PlayStation ....
    .
  • Infineon Danube, a dual-core, MIPS-based, home gateway processor.
  • Intel
    • Celeron Dual-Core
      Celeron

      The Celeron brand is a range of x86 CPUs from Intel targeted at budget/value personal computers?with the motto, "delivering great quality at an exceptional value"....
      , the first dual-core processor for the budget/entry-level market.
    • Core Duo, a dual-core processor.
    • Core 2 Duo, a dual-core processor.
    • Core 2 Quad, a quad-core processor.
    • Core i7, a quad-core processor, the successor of the Core 2 Duo and the Core 2 Quad.
    • Itanium 2, a dual-core processor.
    • Pentium D
      Pentium D

      The Pentium D brand refers to two series of desktop dual-core 64-bit x86 CPU with the NetBurst microarchitecture manufactured by Intel Corporation....
      , 2 single-core dies packaged in a multi-chip module.
    • Pentium Dual-Core, a dual-core processor.
    • Teraflops Research Chip
      Teraflops Research Chip

      The Teraflops Research Chip is the first CPU prototype developed by Intel's Intel Tera-Scale in multi-core and energy efficient computing. The processor was briefly presented at the Intel Developer Forum on September 26, 2006 and officially announced on February 11, 2007 and shown working at the 2007 Integrated Solid State Circuits Conferenc...
       (Polaris), a 3.16 GHz, 80-core processor prototype, which the company says will be released within the next five years.
    • Xeon
      Xeon

      The Xeon brand refers to many families of Intel Corporation's x86 architecture multiprocessing Central processing units ? for dual processor and multi-processor configuration on a single motherboard targeted at non-consumer markets of server and workstation computers, and also at blade servers and embedded systems....
       dual-, quad- and hexa-core processors.
  • IntellaSys
    • SEAforth 40C18, a 40-core processor
    • SEAforth24, a 24-core processor designed by Charles H. Moore
      Charles H. Moore

      Charles H. Moore is the inventor of the Forth .In 1968, while employed at the United States National Radio Astronomy Observatory , Moore invented the initial version of the Forth language to help control radio telescopes....
  • Nvidia
    NVIDIA

    Nvidia is a multinational corporation specializing in the manufacture of graphics processing unit technologies for workstations, desktop computers, and mobile devices....
    • GeForce 9
      GeForce 9 Series

      The GeForce 9 Series is the ninth generation of NVIDIA GeForce series of graphics processing units, the first of which was released on February 21, 2008....
       multi-core GPU
      Graphics processing unit

      A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose Central processing unit for a range of com...
       (8 cores, 16 scalar
      Scalar processor

      Scalar processors represent the simplest class of computer processors. A scalar processor processes one data item at a time . In a vector processor, by contrast, a single instruction operates simultaneously on multiple data items....
       stream processors
      Stream processing

      Stream processing is a computer programming paradigm, related to SIMD, that allows some applications to more easily exploit a limited form of parallel computing....
       per core)
    • GeForce 200
      GeForce 200 Series

      The GeForce GTX 200 Series is the tenth generation of NVIDIA's GeForce graphics processing units. The series also represents the continuation of the company's Unified Shader Architecture introduced with the GeForce 8 Series and the GeForce 9 Series....
       multi-core GPU
      Graphics processing unit

      A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose Central processing unit for a range of com...
       (10 cores, 24 scalar
      Scalar processor

      Scalar processors represent the simplest class of computer processors. A scalar processor processes one data item at a time . In a vector processor, by contrast, a single instruction operates simultaneously on multiple data items....
       stream processors
      Stream processing

      Stream processing is a computer programming paradigm, related to SIMD, that allows some applications to more easily exploit a limited form of parallel computing....
       per core)
    • Tesla
      Nvidia Tesla

      The Tesla Graphics processing unit is NVIDIA third brand of GPUs. It's based on high-end GPUs from the GeForce 8 Series and on, as well as the NVIDIA Quadro lineup....
       multi-core GPGPU
      GPGPU

      General-purpose computing on graphics processing units is the technique of using a graphics processing unit, which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the central processing unit....
       (10 cores, 24 scalar
      Scalar processor

      Scalar processors represent the simplest class of computer processors. A scalar processor processes one data item at a time . In a vector processor, by contrast, a single instruction operates simultaneously on multiple data items....
       stream processors
      Stream processing

      Stream processing is a computer programming paradigm, related to SIMD, that allows some applications to more easily exploit a limited form of parallel computing....
       per core)
  • Parallax
    Parallax, Inc. (company)

    Parallax, Inc. is a privately held company in Rocklin, California. Parallax, Inc. designs, manufactures, and sells BASIC Stamp microcontrollers, Propeller microcontrollers, microcontroller accessories , educational robot kits, and educational curriculum....
     Propeller P8X32
    Parallax Propeller

    File:Propeller Chip.JPGThe Parallax, Inc. P8X32 Propeller, introduced in 2006, is a multi-core Computer architecture Parallel computing microcontroller with eight 32-bit Reduced instruction set computer Central processing unit cores....
    , an eight-core microcontroller.
  • picoChip
    PicoChip

    picoChip is a venture-backed fabless semiconductor company based in Bath, Somerset, founded in 2000.The company has developed a multi-core digital signal processor, the picoArray....
     PC200 series 200-300 cores per device for DSP & wireless
  • Plurality
    Plurality (company)

    Plurality Ltd. is an Israeli semiconductor company and the developer of the HAL multi-core processor. The company is a member of the Multicore Association....
     HAL series tightly coupled 16-256 cores, L1 shared memory, hardware synchronized processor.
  • Rapport Kilocore
    Kilocore

    Kilocore, from Rapport Inc. and IBM, is a high-performance, low-power multi-core processor, with 1025 cores. It contains a single PowerPC processing core, and 1024 8-bit Processing Elements running at 125 MHz each, which can be dynamically reconfigured, connected by a shared interconnect....
     KC256, a 257-core microcontroller with a PowerPC core and 256 8-bit "processing elements".
  • Raza Microelectronics XLR, an eight-core MIPS MPU
  • SiCortex
    SiCortex

    SiCortex is a supercomputer manufacturer founded in 2003 and headquartered in Maynard, Massachusetts. The company builds and markets a family of Cluster computing of between 12 and 972 compute nodes, connected in a Kautz graph....
     "SiCortex node" has six MIPS64
    MIPS architecture

    MIPS is a RISC instruction set architecture developed by MIPS Technologies . In the mid to late 1990s, it was estimated that one in three RISC microprocessors produced were MIPS implementations....
     cores on a single chip.
  • Sun Microsystems
    Sun Microsystems

    Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
    • MAJC
      MAJC

      MAJC was a Sun Microsystems multi-core, multithreaded, very long instruction word microprocessor design from the mid-to-late 1990s. Originally called the UltraJava processor, the MAJC processor was targeted at running Java programs, whose "late compiling" allowed Sun to make several favourable design decisions....
       5200, two-core VLIW processor
    • UltraSPARC IV and UltraSPARC IV+, dual-core processors.
    • UltraSPARC T1
      UltraSPARC T1

      Sun Microsystems' UltraSPARC T1 microprocessor, known until its 14 November 2005 announcement by its development codename "Niagara", is a multithreading, multicore central processing unit....
      , an eight-core, 32-thread processor.
    • UltraSPARC T2
      UltraSPARC T2

      Sun Microsystems' UltraSPARC T2 microprocessor is a Multithreading , Multi-core central processing unit. It is a member of the SPARC family, and the successor to the UltraSPARC T1....
      , an eight-core, 64-concurrent-thread processor.
  • Texas Instruments
    Texas Instruments

    Texas Instruments , better known in the electronics industry as TI, is an United States company based in Dallas, Texas, Texas, United States, renowned for developing and commercializing semiconductor and computer technology....
     TMS320C80 MVP
    Texas Instruments TMS320

    Texas Instruments TMS320 is a blanket name for a series of digital signal processors from Texas Instruments. It was introduced on April 8 1983 through the TMS32010 processor, which was then the fastest DSP on the market....
    , a five-core multimedia video processor.
  • Tilera
    Tilera

    Tilera? Corporation is a fabless semiconductor company and the industry leader in highly scalable multicore embedded processor design.Tilera's Tile processors are based on a new mesh architecture that scales to hundreds of full-featured cores on a single chip....
     TILE64
    TILE64

    TILE64 is a multicore processor manufactured by Tilera. It consists of a mesh network of 64 "tiles", where each tile houses a general purpose microprocessor, CPU cache, and a non-blocking router, which the tile uses to communicate with the other tiles on the processor....
    , a 64-core processor
  • , a 64-core prototype by Uzi Vishkin
    Uzi Vishkin

    Uzi Vishkin is a computer scientist at the University of Maryland, College Park, where he is Professor of Electrical and Computer Engineering at the University of Maryland Institute for Advanced Computer Studies ....
    's research team
  • Software Defined Silicon
    Software Defined Silicon

    Software Defined Silicon is a computer chip technology created by XMOS of Bristol . XMOS was jointly-founded in 2005 by INMOS transputer architect David May....
     quad-core XS1-G4


Software

  • Commendo Voyager software service is a multi-core design running on Intel dual-core processors.
  • , a simple set of extensions for C++, coupled with a powerful runtime system, to multicore-enable C++ applications.
  • , an Eclipse-based multicore simulation and software development environment.
  • , Real Time Operating System (RTOS) for multicore systems.
  • , Graphical programming language for multicore systems.
  • Threading Building Blocks, a template library of algorithms, memory allocators, containers and other solutions for programming for multi-core processors in C++
    C++

    C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
    .
  • , Replacement memory allocator for multicore / multiprocessor systems.
  • , Intel's Application Concurrency Audit Tool: CFinder
  • , a modest extension of C, coupled with a complete XMT environment
  • , an extension of a subset of C, supporting concurrency with disjointness checks, targetting multi-core platforms.
  • provides a multi-core software solution


See also

  • Multicore Association
    Multicore Association

    The Multicore Association, founded in 2005, is a member-funded, non-profit, computer industry consortium focused on the creation of open standard APIs, specifications, and guidelines that will allow system developers and computer programmer to adopt multi-core technology into their application software more readily ....
  • Multithreading (computer hardware)
    Multithreading (computer hardware)

    Multithreading computers have hardware support to efficiently execute multiple thread . These are distinguished from multiprocessing systems in that the threads have to share the resources of single core: the computing units, the CPU caches and the translation lookaside buffer ....
  • Multiprocessing
    Multiprocessing

    Multiprocessing is the use of two or more CPU 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....
  • Hyper-threading
    Hyper-threading

    Hyper-threading is Intel trademarked term for its simultaneous multithreading implementation in their Pentium 4, Intel Atom, and Intel Core i7 CPUs....
  • Symmetric multiprocessing
    Symmetric multiprocessing

    In computing, symmetric multiprocessing or SMP involves a multiprocessor computer-architecture where two or more identical processors can connect to a single shared main memory....
     (SMP)
  • Simultaneous multithreading
    Simultaneous multithreading

    Simultaneous multithreading, often abbreviated as SMT, is a technique for improving the overall efficiency of superscalar Central processing unit with Multithreading ....
     (SMT)
  • Multitasking
    Computer multitasking

    In computing, multitasking is a method by which multiple tasks, also known as Computer process, share common processing resources such as a Central processing unit....
  • Parallel computing
    Parallel computing

    Parallel computing is a form of computing in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved Concurrency ....
  • PureMVC MultiCore
    PureMVC

    PureMVC is a lightweight framework for creating applications based upon the classic Model-View-Controller concept. Based upon proven design patterns, this free, open source software framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Adobe Flash and Adobe AIR, has now been porting to nearly all m...
     - a modular programming framework
  • XMTC
    XMTC

    XMTC is a shared-memory parallel programming language. It is an extension of the C programming language which strives to enable easy PRAM-like programming....
  • Parallel Random Access Machine
    Parallel Random Access Machine

    A Parallel Random Access Machine is an abstract machine for designing the algorithms applicable to parallel computers. It eliminates the focus on miscellaneous issues such as synchronization and communication, but lets the designer think explicitly about the exploitation of Concurrency ....


External links

  • (Additions welcome)
  • Argues for the desperate need to innovate around "manycore".
  • : Binary Modular Dataflow Machine - Multi-core Runtime Environment (BMDFM
    BMDFM

    BMDFM is software, which enables running an application in parallel on shared memory symmetric multiprocessors using the multiple processors to speed up the execution of single applications....
    )
  • e-Book outlining multicore programming challenges, and the leading programming approaches to deal with them.
  • for some computing tasks, 8 cores aren't (yet) much better than 4