0% found this document useful (0 votes)
48 views

Multicore Architecture and Programming1 - P21EC7024

This document outlines a course on multicore architecture and parallel programming. It covers topics like multicore hardware, threading concepts, parallel programming patterns and constructs, OpenMP, and solving common parallel programming problems. It includes 5 units, learning objectives, outcomes, textbooks, references, and a course articulation matrix.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views

Multicore Architecture and Programming1 - P21EC7024

This document outlines a course on multicore architecture and parallel programming. It covers topics like multicore hardware, threading concepts, parallel programming patterns and constructs, OpenMP, and solving common parallel programming problems. It includes 5 units, learning objectives, outcomes, textbooks, references, and a course articulation matrix.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Multicore Architecture and programming

[As per Choice Based Credit System (CBCS) & OBE Scheme]
SEMESTER – VII
Course Code: P21EC7024 Credits: 03
Teaching Hours/Week (L:T:P): 3:0:0 CIE Marks: 50
Total Number of Teaching Hours: 40 SEE Marks: 50

Course Learning Objectives:


At the completion of the course the students will be able to:
1. Provide the knowledge of Multi– core Architecture and System Overview of Threading.
2. Cover Fundamental Concepts of Parallel Programming and its Constructs.
3. Describe in detail the concepts of Threading APIs.
4. Explain the different aspects of OpenMP.
5. Parallel Programming using OpenMP

UNIT – I 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, Multithreading 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.

Text 1: Chapters 1 and 2


Self-Study Bulpin, James Roy. 2004. Operating System Support for Simultaneous
Component: Multithreaded Processors. PhD thesis, King’s College, University of
Cambridge, September.
UNIT – II 8 Hours
Fundamental Concepts of Parallel Programming: Designing for Threads, Task
Decomposition, Data Decomposition, Data Flow Decomposition, Implications of Different
Decompositions, and Challenges You will 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

Text 1: Chapters 3 and 4


Self-Study Barney, Blaise. Introduction to Parallel Computing. Lawrence Livermore
Component: National Laboratory, Livermore Computing. Available at:
http://www.llnl.gov/computing/tutorials/parallel_comp/.
UNIT – III 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, Memory Issues,
Bandwidth, Working in the Cache, Cache related Issues, False Sharing, Memory
Consistency.

Text 1: Chapter 7
Self-Study Blumofe, Robert D., Christopher F. Joerg, Bradley C. Kuszmaul, Charles
Component: E. Leiserson, Keith H. Randall, and Yuli Zhou. 1995. Cilk: An Efficient
Multithreaded Runtime System. Proceedings of the 5th ACM SIGPLAN
Symposium on Principles and Practice of Parallel Programming
(July):207–216.
UNIT – IV 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, OpenMP Library Functions, OpenMP
Environment Variables, Compilation, Debugging, performance.

Text 1: Chapter 6
Self-Study Hill, Mark D. 1998. Multiprocessors Should Support Simple Memory
Component: Consistency Models. IEEE Computer (August), 31(8):28–34.
UNIT – V 8 Hours
OpenMP Language Features Introduction Terminology Parallel Construct
Sharing the Work among Threads in an OpenMP Program Clauses to Control
Parallel and Work-Sharing Constructs OpenMP Synchronization Constructs
Interaction with the Execution Environment More OpenMP Clauses Advanced
OpenMP Constructs .

Text 2: Chapter 4
Self-Study Mattson, Tim. Nuts and Bolts of Multithreaded Programming. Santa Clara,
Component: CA: Intel Corporation. Available at: http://www.intel.com.

Course Outcomes: On completion of this course, students are able to:


Program
Bloom’s
Course Outcomes with Action verbs for the Outcome
COs Taxonomy
Course topics Addressed (PO #)
Level
with BTL
CO1 Interpret the Multicore Hardware and
L2 PO1 (L2)
Software concepts.
CO2 Analyze the Parallel Programming concepts
with examples along with Deadlocks and L4 PO2 (L4)
Semaphores.
CO3 Develop the theories related to parallel
PO3 (L6)
programming problems and methods to L6
overcome them.
CO4 Build the various programming concepts of
L6 PO4 (L6)
OpenMP with examples.
Text Book(s):
1. ShameemAkhter and Jason Roberts “Multicore Programming, Increased
Performancethrough Software Multi–threading” Intel Press, 2006.ISBN 0-
9764832-4-6.

2. Barbara Chapman, Gabriele Jost, Ruud van der Pas


“Using OpenMP, Portable Shared Memory Parallel Programming” 2008 ISBN 978-0-262-
53302 MIT Press, Massachusetts Institute of Technology
Reference Book(s):
1. Calvin Lin, Lawrence Snyder, “Principles of Parallel Programming” Pearson
Education, 2009. ISBN-13: 978-0321487902.
2. Michael J. Quinn ,“Parallel Programming in C with MPI and OpenMP”, Tata
McGraw Hill, 2004. ISBN 13: 9780070582019.
3. David E, Culler, Jaswinder Pal Singh with Anoop Gupta “Parallel Computer
4. Architecture A Hardware/ Software Approach”, eBook ISBN: 9780080573076, Hardcover
ISBN: 9781558603431.
Web and Video link(s):
1. Multi-Core Computer Architecture – Storage and Interconnects, NPTEL IIT Guwahati.
https://www.youtube.com/playlist?list=PLwdnzlV3ogoU0TR333JyxG8T3HDg52S0h

2. Introduction to parallel Programming in Open MP https://www.youtube.com/playlist?


list=PLJ5C_6qdAvBFMAko9JTyDJDIt1W48Sxmg
E-Books/Resources:
https://www.cs.cmu.edu/~fp/courses/15213-s07//schedule.html

Course Articulation Matrix (CAM)


CO PO PO PO PO PO PO PO PO PO PO PO PO PS PS
1 2 3 4 5 6 7 8 9 10 11 12 O1 O2
#1 3 3
#2 2 2
#3 2
#4 2

You might also like