Metadata
Title
DS 295: Parallel Programming
Category
courses
UUID
6963bbcc4def41f7acac2e417eaddda0
Source URL
https://cds.iisc.ac.in/courses/ds-295-parallel-programming/
Parent URL
https://cds.iisc.ac.in/courses/descriptions/
Crawl Time
2026-03-23T22:43:36+00:00
Rendered Raw Markdown

DS 295: Parallel Programming

Source: https://cds.iisc.ac.in/courses/ds-295-parallel-programming/ Parent: https://cds.iisc.ac.in/courses/descriptions/

Overview

The objective of this course is to give you some level of confidence in parallel programming techniques, algorithms and tools. At the end of the course, you would (we hope) be in a position to apply parallelization to your project areas and beyond, and to explore new avenues of research in the area of parallel programming.

The course covers parallel architectures, parallelization principles, parallel programming standards and tools, parallel algorithms, numerical methods, scientific applications and parallel system software.

Pre-requisites

Basic knowledge of computer systems, data structures and programming, and algorithms.

Grading Scheme

Resources

Lecture Slides

Reading Materials

For those portions for which reading materials are not given below, lecture slides above are the only reading materials.

Others

Topic Reading
- Parallel Algorithms - Divide and Conquer Algorithms – pdf - MPI collective communication algorithms pdf - Mesh-based algorithm: APSP pdf - Collective Communications: Lecture slides, and Google for paper “Optimization of Collective Communication Operations in MPICH” by Thakur, Rabenseifner and Gropp, IJHPCA 2005 - Mapping to network topologies. Section 5.1 in book “Parallel Computing: Theory and Practice” by Michael J Quinn - Tridiagonal systems – lecture slides - APSP: Book: Introduction to parallel computing by Grama et al. Sections 10.2-10.4, Sections 11.4.1-11.4.6
Scientific Applications - Game of Life pdf DFS and Dynamic Load Balancing pdf Bioinformatics pdf - DFS: Book: Introduction to parallel computing by Grama et al. Sections 10.2-10.4, Sections 11.4.1-11.4.6 - Bioinformatics - Paper: Parallel Biological Sequence Comparison using Prefix Computations. Aluru et. al. JPDC 2003.

Assignments

Final Project

The final project has to clearly demonstrate the uniqueness of your work over existing work and show adequate performance improvements. You can work in a team of max 2 members. It can be in

Sample Projects from Previous Years

Ethics and Rules

Ethics

  1. Please do not even exchange ideas with your friends since there is a thin line between exchanging ideas and codes looking the same.
  2. Please do not look up web/books for solutions.
  3. See Dr. Yogesh’ nice writeup on plagiarism policies in his HPC page

Deadlines

All assignments will be evaluated for a maximum of 10. There will be a penalty of -1 for every additional day taken for submission after the assignment due date.

Thus, you will have to be judicious regarding deciding when to submit your assignments.

Example

Suppose you have completed 1/2 of the assignment by the due date.

Scenario 1:

You think that it will take another 1 day to finish 3/4 of the assignment. In this scenario, if you submit by the due date, you will get a maximum score of 5 and if you submit a day after, you will get a maximum score of 6.5 (=7.5-1, -1 for the extra day). Thus, you will get better score if you take an extra day, finish 3/4 of the assignment and then submit.

Scenario 2:

You think that it will take another 3 days to finish 3/4 of the assignment.  In this scenario, if you submit by the due date, you will get a maximum score of 5 and if you submit 3 days after, you will get a maximum score of 4.5 (=7.5-3, -3 for the three extra days). Thus, you will get better score if you submit your assignment that is 1/2 complete by the due date than submit the assignment that will be 3/4 complete after 3 days.