Multicore Programming

Multicore Programming

Course Code:

Course Duration:

25 hours


This course provides an introduction to Multi-Core Architecture and a complete survey of the importance of parallelism, threading concepts, multi-threading methodology and programming with threads. The course also covers an introduction to parallel programming including topics such as Data Dependencies, Data Races, Synchronization or Locking Concepts, Deadlocks and also provides a manual technique for mapping out data dependencies in an algorithm using a dependency graphs. The course also includes an overview of performance analysis for Multi-Core platforms.

Course Objective

Upon successful completion of the course, participants should be able to:

  • Understand Multi-core Architectures & the fundamental tools
  • Explore parallel programming patterns and programming with Windows Threads
  • Use Intel Thread Building Blocks to improve application performance with both thread checker and profiler tools

Course Outline

The contents of this course are designed to support the course objectives. The following focus areas are included in this course:

  • Module 1: Multi-core Architecture & Fundamental Tools
  • Module 2: Integrated Architecture and Tools
  • Module 3: Introduction to Parallel Programming Patterns
  • Module 4: Programming with windows Threads
  • Module 5: Threading for Performance with Intel Threading Building Blocks
  • Module 6: Intel Thread Checker
  • Module 7: Parallel Design Patterns
  • Module 8: Parallel Architecture for Games
  • Module 9: Thread Building Blocks
  • Module 10: Game Threading Methodology

Course Deliverables

For Faculty

  • Course Material
  • Course Slides
  • Facilitator Guide
  • Student Exercises
  • Case Studies
  • Certification from ICT Academy

For Student

  • Course Material
  • Exercises
  • Case Studies
  • Certification from ICT Academy