3.multicore Architecture and Programming
3.multicore Architecture and Programming
3 0 24
COURSE OBJECTIVES:
• To understand the need for multi-core processors, and their architecture.
• To understand the challenges in parallel and multithreaded programming.
• To learn about the various parallel programming paradigms,
• To develop multicore programs and design parallel solutions.
UNITI MULTI-COREPROCESSORS 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.
UNITII PARALLELPROGRAMCHALLENGES 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).
UNITIV DISTRIBUTEDMEMORYPROGRAMMINGWITHMPI 9
MPI program execution – MPI constructs – libraries – MPI send and receive – Point-to-point and Collective
communication – MPI derived datatypes – Performance evaluation
UNITV PARALLELPROGRAMDEVELOPMENT 9
Case studies – n-Body solvers – Tree Search – OpenMP and MPI implementations and comparison.
TOTAL:45PERIODS
PRACTICALS:
1. Write a simple Program to demonstrate an Open MPFork-Join Parallelism.
2. Createaprogramthatcomputesasimplematrix-vectormultiplicationb=Ax, either in C/C++. Use
OpenMP directives to make it run in parallel.
3. CreateaprogramthatcomputesthesumofalltheelementsinanarrayA(C/C++) or a program that finds the
largest number in an array A. Use Open MP directive to make it run in parallel.
4. WriteasimpleProgramdemonstratingMessage-PassinglogicusingOpenMP.
5. Implement the All-Pairs Shortest-Path Problem (Floyd'sAlgorithm)Using OpenMP.
6. ImplementaprogramParallelRandomNumberGeneratorsusingMonteCarloMethods in OpenMP.
7. Write a Program to demonstrate MPI-broadcast-and-collective-communication in C.
8. Write a Program to demonstrate MPI-scatter-gather-and-all gather in C.
9. Write a Program to demonstrate MPI-send-and-receive in C.
10. WriteaProgramtodemonstratebyperforming-parallel-rank-with-MPIinC.
TOTAL:30PERIODS
TOTAL:45+30=75PERIODS
COURSEOUTCOMES:
At the end of the course, the students should be able to:
CO1: Describemulticorearchitecturesandidentifytheircharacteristicsandchallenges.
CO2: Identify the issues in programming Parallel Processors.
CO3: Write programs using Open MP and MPI.
CO4: Design parallel programming solutions to common problems.
CO5: Compareandcontrastprogrammingforserialprocessorsandprogrammingforparallel processors.
REFERENCES:
1. Peters. Pacheco, “An Introduction to Parallel Programming, Morgan-Kauffman/Elsevier, 2021.
2. Darryl Gove, “Multicore Application Programming for Windows, Linux, and Oracle Solaris,
Pearson, 2011 (unit 2)
3. Michael J Quinn, “Parallel programming in C with MPI and Open MP ,Tata McGraw Hill,2003.
4. Victor Alessandrini, Shared Memory Application Programming, 1st Edition, Concepts and Strategies
in Multicore Application Programming, Morgan Kaufmann, 2015.
5. YanSolihin, Fundamentals of Parallel Multicore Architecture, CRCPress,2015.
CO-PO Mapping
CO POs
1 1 2 3 4 5 6
2 1 1 1 2 1 2
3 2 1 - - 2 2
4 1 - 2 1 1 2
5 2 1 1 1 2 2
3 1 2 1 2 3