0% found this document useful (0 votes)
2 views3 pages

CSE1002 - Problem Solving using Python_1.0 (1)

The document outlines the course CSE414: Parallel Computing, detailing its objectives, outcomes, and structure. It covers fundamental principles of parallel computing, multi-core and distributed memory programming, higher-level programming models, and many-core programming. The course includes various modules, practical examples, and assessments, with a focus on equipping students with skills to design and optimize parallel computing solutions.

Uploaded by

kamalpreet.j3398
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
2 views3 pages

CSE1002 - Problem Solving using Python_1.0 (1)

The document outlines the course CSE414: Parallel Computing, detailing its objectives, outcomes, and structure. It covers fundamental principles of parallel computing, multi-core and distributed memory programming, higher-level programming models, and many-core programming. The course includes various modules, practical examples, and assessments, with a focus on equipping students with skills to design and optimize parallel computing solutions.

Uploaded by

kamalpreet.j3398
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 3

Course Code: CSE414 Course Title: Parallel Computing TPC 3 2 4

Version No. 1.0


Course Pre-requisites/
Co-requisites
None
Anti-requisites (if any). None
1. To introduce students to the fundamental principles of
parallel computing, including concurrency,
synchronization, and different parallel architectures.
2. To develop an ability to analyze complex
computational problems and determine suitable parallel
computing solutions.
3. To familiarize students with common parallel
computing patterns and evaluate their effectiveness in
Objectives:
solving real-world problems.
4. To equip students with skills to assess the efficiency
and scalability of parallel algorithms and applications.
5. To enable students to design, implement, and optimize
parallel computing solutions across various hardware
architectures, including multi-core CPUs, GPUs, and
distributed systems.

CO-PO Mapping
Course
Course Outcome Statement
Outcomes PO's / PEO's
Understanding of fundamental concepts in parallel PO1, PO2, PO3,
CO1
computing. PO4, PO5
Identify and leverage common parallel computing PO1, PO2, PO3,
CO2
patterns. PO5
Assess efficiency and scalability of a parallel PO1, PO2, PO3,
CO3
algorithm/application PO4, PO5, PO6
Analyse the concepts of parallel programming PO1, PO2, PO3,
CO4
technique and familiar with several others PO4, PO5, PO6
TOTAL HOURS OF INSTRUCTIONS: 45
a
Module No. 1 Introduction to Parallel Processing 8 Hours
Overview of parallel processing landscape: why and how, types of parallelism, Flynn’s
taxonomy and brief overview of parallel architectures, practical demonstration of CCR as
an example HPC center. Basic concepts in parallel processing: formal definition of
parallelism, concepts of work, speedup, efficiency, overhead, strong and weak scaling
(Amdahl’s law, Gustafson’s law), practical considerations using parallel reduction and
parallel prefix.
Module No. 2 6 Hours
Multi-Core Programming
Multi-core programming: shared memory and shared address space, data and task
parallelism, summary of available APIs (OpenMP, TBB). Practical examples using
OpenMP and parallel merge sort, pointer jumping, parallel BFS and basic linear algebra.
Module No. 3 7 Hours
Distributed Memory Programming

Distributed memory programming: Message Passing Interface, latency + bandwidth


model, distributed hashing, sample sort, parallel BFS, and basic linear algebra (matrix-
vector, maxtrixmatrix products) with relation to graph algorithms.
Module No. 4 12 Hours
Higher-Level Programming Models
Higher-level programming models: stateless programming in Map/Reduce, Apache Spark
and fault-tolerance via Resilient Distributed Datasets. Triangle counting, connected
components, single source shortest path using Spark.
Module No. 5 12 Hours
Many-Core Programming
Many-core programming: SIMD parallelism and massively parallel GPGPU accelerators.
Brief overview of available APIs (OpenACC, oneAPI, OpenCL, SYCL). Programing
GPUs in NVIDIA CUDA: data movement and organization, 1D/2D stencils, parallel
prefix, matrix-matrix product.

Text Books
1. M. McCool, J. Reinders, A. Robison, “Structured Parallel Programming: Patterns for
Efficient Computation,” Morgan Kaufmann, 2012, ISBN-13: 9780124159938.
2. A. Grama, G. Karypis, V. Kumar, A. Gupta, “Introduction to Parallel Computing (2nd
Ed.),” Pearson, 2003, ISBN-13: 9780201648652.
References
1. H. Karau, A. Konwinski, P. Wendell, M. Zaharia, “Learning Spark: Lightning-Fast Big
Data Analysis (2nd Ed.),” O’Reilly Media, 2020, ISBN-13: 9781492050049.
2. D.B. Kirk, W.W. Hwu, “Programming Massively Parallel Processors: A Hands-on
Approach (3rd Ed.),” Morgan Kaufmann, 2010, ISBN-13: 978-0128119860..
List of Laboratory Experiments

Course Type Embedded Theory and Lab (ETL)


Mode of Evaluation Theory 75%
Examination-1 15
Examination-2 15
Assignment/ Quiz 15
Attendance - 05

Final Assessment Test 50


Laboratory 25%
Prepared by
Recommended by the
Board of Studies on

You might also like