Introduction —
Putting All the Cores to Work: Multiprocessing Models —
Asymmetric Multiprocessing —
Symmetric Multiprocessing —
Using Visualization Tools to Optimize the Software —
Visualizing Multicore Execution —
Detecting and Reducing Resource Contention
[+]
Introduction
In the past, software developers could rely on faster, more powerful processors to increase the speed of their applications. The industry shift to multicore processors ...
Putting All the Cores to Work: Multiprocessing Models
OSs vary in how they use multiple processor cores. Some OSs support asymmetric multiprocessing (AMP), some support symmetric multiprocessing (SMP), and some ...
Asymmetric Multiprocessing
In the AMP model, each processor core has a separate OS, or a separate copy of the same OS. Each OS manages a portion of the system memory and ...
Symmetric Multiprocessing
In symmetric multiprocessing (SMP), a single instance of the operating system has access to all system memory and I/O. The operating system abstracts the number of CPU cores ...
Using Visualization Tools to Optimize the Software
and SMP, developers can introduce software parallelism and thereby achieve greater performance. The following example illustrates how developers ...
Visualizing Multicore Execution
Although traditional process-level debuggers can help diagnose some problems in a multicore SMP system, they cannot provide insight into the complex system-level behaviors that ...
Detecting and Reducing Resource Contention
After introducing parallelism to the design, the developer can implement further optimizations, such as optimizing the locking strategy associated with shared resources. By allowing threads to run ...