18CS824 Multicore Architecture and Programming syllabus for CS



A d v e r t i s e m e n t

Module-1 Introduction to Multi-core Architecture 8 hours

Introduction to Multi-core Architecture Motivation for Concurrency in software, Parallel Computing Platforms, Parallel Computing in Microprocessors, Differentiating Multi-core Architectures from Hyper- Threading Technology, Multi-threading on Single-Core versus Multi-Core Platforms Understanding Performance, Amdahl‟s Law, Growing Returns: Gustafson‟s Law. System Overview of Threading : Defining Threads, System View of Threads, Threading above the Operating System, Threads inside the OS, Threads inside the Hardware, What Happens When a Thread Is Created, Application Programming Models and Threading, Virtual Environment: VMs and Platforms, Runtime Virtualization, System Virtualization.

Module-2 Fundamental Concepts of Parallel Programming 8 hours

Fundamental Concepts of Parallel Programming:

Designing for Threads, Task Decomposition, Data Decomposition, Data Flow Decomposition, Implications of Different Decompositions, Challenges You‟ll Face, Parallel Programming Patterns, A Motivating Problem: Error Diffusion, Analysis of the Error Diffusion Algorithm, An Alternate Approach: Parallel Error Diffusion, Other Alternatives. Threading and Parallel Programming Constructs: Synchronization, Critical Sections, Deadlock, Synchronization Primitives, Semaphores, Locks, Condition Variables, Messages, Flow Control- based Concepts, Fence, Barrier, Implementation-dependent Threading Features

Module-3 Threading APIs 8 hours

Threading APIs:

ThreadingAPls for Microsoft Windows, Win32/MFC Thread APls, Threading APls for Microsoft. NET Framework, Creating Threads, Managing Threads, Thread Pools, Thread Synchronization, POSIX Threads, Creating Threads, Managing Threads, Thread Synchronization, Signaling, Compilation and Linking.

Module-4 OpenMP 8 hours

OpenMP:

A Portable Solution for Threading : Challenges in Threading a Loop, Loop-carried Dependence, Data-race Conditions, Managing Shared and Private Data, Loop Scheduling and Portioning, Effective Use of Reductions, Minimizing Threading Overhead, Work-sharing Sections, Performance-oriented Programming, Using Barrier and No wait, Interleaving Single-thread and Multi-thread Execution, Data Copy-in and Copy-out, Protecting Updates of Shared Variables, Intel Task queuing Extension to OpenMP, OpenMP Library Functions, OpenMP Environment Variables, Compilation, Debugging, performance

Module-5 Solutions to Common Parallel Programming Problems 8 hours

Solutions to Common Parallel Programming Problems:

Too Many Threads, Data Races, Deadlocks, and Live Locks, Deadlock, Heavily Contended Locks, Priority Inversion, Solutions for Heavily Contended Locks, Non-blocking Algorithms, ABA Problem, Cache Line Ping-ponging, Memory Reclamation Problem, Recommendations, Thread-safe Functions and Libraries, Memory Issues, Bandwidth, Working in the Cache, Memory Contention, Cache-related Issues, False Sharing, Memory Consistency, Current IA-32 Architecture, Itanium Architecture, High-level Languages, Avoiding Pipeline Stalls on IA32,Data Organization for High Performance.

 

Course Outcomes:

The student will be able to :

  • Identify the limitations of ILP and the need for multicore architectures
  • Define fundamental concepts of parallel programming and its design issues
  • Solve the issues related to multiprocessing and suggest solutions
  • Make out the salient features of different multicore architectures and how they exploit parallelism
  • Demonstrate the role of OpenMP and programming concept

 

Question Paper Pattern:

  • The question paper will have ten questions.
  • Each full Question consisting of 20 marks
  • There will be 2 full questions (with a maximum of four sub questions) from each module.
  • Each full question will have sub questions covering all the topics under a module.
  • The students will have to answer 5 full questions, selecting one full question from each module.

 

Textbooks:

1. Multicore Programming , Increased Performance through Software Multi-threading by Shameem Akhter and Jason Roberts , Intel Press , 2006

 

Reference Books:

1. Yan Solihin, "Fundamentals of Parallel Multicore Architecture", 1st Edition, CRC Press/Taylor and Francis, 2015.

2. GerassimosBarlas, "Multicore and GPU Programming: An Integrated Approach Paperback", 1st Edition, Morgan Kaufmann, 2014.

3. Lyla B Das, "The x86 Microprocessors: 8086 to Pentium, Multicores, Atom and the 8051 Microcontroller: Architecture, Programming and Interfacing", 2nd Edition, Pearson Education India, 2014

Last Updated: Tuesday, January 24, 2023