Multi-core Technologies and Designing for Concurrency

Buy Now

Course Description

Course Results

Products Supported

Who Should Attend

Course Format

Please see course datasheet for further details here Buy Now

Course Details Summary

  • Duration: 2 Days
  • Course Information: View
  • Format: Lectures and Labs
  • Type: Instructor-led
  • Price/Schedule: View

The Multi-core Technologies and Designing for Concurrency course provides engineers with a fast, cost-effective way to acquire the skills necessary to design, develop, and tune applications and systems using multi-core processors. Wind River® VxWorks® symmetric multiprocessing (SMP) technology is used for lab purposes, although the principles taught in this course also apply to Linux design.

After this course, participants will be able to perform the following:

  • Describe multi-core processor architectures
  • Identify the benefits and choices involved in leveraging multi-core processors in a new system design
  • Explain the need for a new programming model
  • Design and implement parallel and lock-free algorithms
  • Wind River VxWorks 6.9
  • Wind River Workbench 3.3
  • Wind River Simics 4.6
  • Engineers starting a new real-time design on a multicore system
  • System architects and designers who want to extend their multicore skills
  • Software developers who work on multi-core platforms
  • Senior engineers who will evaluate multi-core technology

Day 1

Introduction to Multi-core

  • Why do we need multi-core?; multi-core use cases
  • Who is driving the multi-core market
  • Multi-core vendors and architectures

Multi-core Architecture

  • Overview
  • Examples
  • Homogeneous and heterogeneous multi-core
  • On-chip inter-connect architecture
  • Uniform and non-uniform memory access
  • Cache and cache coherence
  • Multi-core processor benchmarks
  • LAB: Getting started

Multi-core Processing

  • Overview
  • Asymmetric multiprocessing (AMP)
  • SMP
  • Bare metal
  • Virtualization
  • Multi-core inter-process communication (MIPC)
  • Choosing your multi-core configuration
  • LAB: Hypervisor Hello World 2 cores

The Sequential Model

  • Von Neumann computer architecture
  • Instruction-level parallelism
  • Atomic operations
  • Memory barriers

Parallelism

  • What is parallelism?
  • Why do we need parallelism?
  • Types of parallelism
  • Creating parallelism

Day 2

Parallel Programming Model

  • Introduction
  • Parallel programming challenges
  • Limits of parallel execution
  • Shared memory model
  • LAB: Implicit synchronization

Multi-core Threads

  • Overview
  • Concurrency and multi-threading
  • Pthreads
  • Thread pools
  • Threading development cycle

Parallel Algorithms

  • Introduction
  • Quantifying parallelism
  • Problems decomposition
  • Locking
  • Designing parallel algorithms
  • Lock-free and wait-free algorithms
  • LAB: Problem decomposition
  • LAB: Lock granularity
  • LAB: Lock-free stack

Migrating to Multi-core

  • Introduction
  • Migration challenges
  • LAB: Data synchronization
  • LAB: Core affinity and reservation

Prerequisite Course

Prerequisite Skills

  • Three years of C programming
  • Basic understanding of operating systems and debugging techniques
  • Functional knowledge of UNIX /Linux
  • Basic understanding of data structures and common computer science algorithms
  • This two-day expert-led course consists of nine lectures and eight lab sessions.
  • Attendees use VxWorks 6.9, Workbench 3.3, and Simics 4.6 to gain experience with the topics presented.
  • Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.
Subscribe to Wind River