Multi-Core and Multiprocessing Programming

מק"ט: #60700 | משך קורס: 24 שעות אק'

Today's software systems are increasingly based on multi-core and multi processing designs. Systems-on-a-chip (SoCs) often contain two or more processor cores in homogeneous or heterogeneous combinations, and FPGA-based designs can include a virtually unlimited number and variety of cores. An asymmetric multiprocessing (AMP)-based RTOS is one approach to utilizing multi-core processors; symmetric multiprocessing (SMP) is another.

This course covers all the possibilities around multi-core programming including AMP and SMP in general purpose and Embedded/Real-time systems.

*שדות חובה
PDF version

מטרות הקורס

Understand all concepts in Multi - programming and use some typical tools to write and debug parallel code.

קהל היעד

Embedded/RT/DSP developers

תנאי קדם

C/C++ programming background



  • Concurrency in software systems
  • Concurrency problems
  • Basic concepts
  • Single Processor system
  • SMP and AMP
  • Loosely and tightly coupled Multiprocessing systems
  • Multithreaded processors
  • Multi-core processors


Multiprocessing systems

  • Hardware, tools and SOPC
  • Software tools
  • Tightly vs. loosely coupled systems
  • UMA/NUMA systems
  • SMP programming techniques
  • AMP programming techniques
  • Case study: programming ARM and DSP processors


Multithreaded processors

  • Introduction to multithreaded processors
  • Hyper threaded technology
  • Case study: programming the MIPS 34k multithreaded processor


Multi-core processors

  • Overview
  • Hardware and software tools
  • Programming techniques
  • Case study: programming the Cell processor (9-cores processor)



  • Parallel programming with OpenMP
  • Compiler directive for threads creation
  • Private and shared data
  • Work-Sharing Constructs
  • Functions
  • Environment variables


Intel TBB

  • Overview
  • Parallel functions
  • Containers
  • Memory allocators
  • Mutexes
  • Timing and task scheduling


Designing multi-core systems

  • Overview of parallel algorithms
  • Parallel design principles
  • Parallel design patterns


Multi-processing and Operating systems

  • SMP on Windows
  • SMP on Linux
  • AMP with General purpose OS
  • SMP in RTOS