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

נושאים

Introduction

  • 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)

 

OpenMP

  • 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
     
תגיות