CS8083 - MULTI-CORE ARCHITECTURES AND PROGRAMMING (Syllabus) 2017-regulation Anna University

CS8083

MULTI-CORE ARCHITECTURES AND PROGRAMMING

 LPTC

3003

OBJECTIVES:
• To understand the need for multi-core processors, and their architecture.
• To understand the challenges in parallel and multi-threaded programming.
• To learn about the various parallel programming paradigms,
• To develop multicore programs and design parallel solutions.

UNIT I

MULTI-CORE PROCESSORS

9

Single core to Multi-core architectures – SIMD and MIMD systems – Interconnection networks - Symmetric and Distributed Shared Memory Architectures – Cache coherence - Performance Issues – Parallel program design.

UNIT II

PARALLEL PROGRAM CHALLENGES

9

Performance – Scalability – Synchronization and data sharing – Data races – Synchronization primitives (mutexes, locks, semaphores, barriers) – deadlocks and livelocks – communication between threads (condition variables, signals, message queues and pipes).


UNIT III

SHARED MEMORY PROGRAMMING WITH OpenMP

9

OpenMP Execution Model – Memory Model – OpenMP Directives – Work-sharing Constructs - Library functions – Handling Data and Functional Parallelism – Handling Loops - Performance Considerations.

UNIT IV

DISTRIBUTED MEMORY PROGRAMMING WITH MPI

9

MPI program execution – MPI constructs – libraries – MPI send and receive – Point-to-point and Collective communication – MPI derived datatypes – Performance evaluation

UNIT V

PARALLEL PROGRAM DEVELOPMENT

9

Case studies - n-Body solvers – Tree Search – OpenMP and MPI implementations and comparison.

TOTAL: 45 PERIODS

OUTCOMES: At the end of the course, the students should be able to:
• Describe multicore architectures and identify their characteristics and challenges.
• Identify the issues in programming Parallel Processors.
• Write programs using OpenMP and MPI.
• Design parallel programming solutions to common problems.
• Compare and contrast programming for serial processors and programming for parallel processors.

TEXT BOOKS:
1. Peter S. Pacheco, ―An Introduction to Parallel Programming‖, Morgan-Kauffman/Elsevier, 2011.
2. Darryl Gove, ―Multicore Application Programming for Windows, Linux, and Oracle Solaris‖, Pearson, 2011 (unit 2)

REFERENCES:
1. Michael J Quinn, ―Parallel programming in C with MPI and OpenMP‖, Tata McGraw Hill,2003.
2. Victor Alessandrini, Shared Memory Application Programming, 1st Edition, Concepts and Strategies in Multicore Application Programming, Morgan Kaufmann, 2015.
3. Yan Solihin, Fundamentals of Parallel Multicore Architecture, CRC Press, 2015.

Comments

Popular posts from this blog

CS3491 Syllabus - Artificial Intelligence And Machine Learning - 2021 Regulation Anna University

BE3251 - Basic Electrical and Electronics Engineering (Syllabus) 2021-regulation Anna University

CS3251 - PROGRAMMING IN C (Syllabus) 2021-regulation Anna University