This course provides an introduction to multicore processors including usage and selection of the devices. Content includes:

• The motives for multicore
• A brief history of multicore processors
• Multicore hardware models: homogeneous, heterogeneous, and beyond
• Multicore software models: AMP, SMP, and virtualization
• Programming principles
• Using multicore tools
• Avoiding the multicore pitfalls
• Example processors, tools, and OSs
• Trends and predictions