Supercomputer, Education and Research Center (SERC)   |   Indian Institute of Science (IISc), Bangalore

SE 292: High Performance Computing (3:0)

InstructorsR. Govindarajan (www | mail)
Yogesh Simmhan (www | mail)
NumberSE292
Credits3:0
SemesterAug, 2014
ScheduleTTh 8AM-930AM, Starting 7 Aug
Office hours for Yogesh on Thu 930-1030A at SERC411, starting 23 Sep
RoomSERC 202

Overview

This is is an introductory course in understanding high performance computing (HPC) organization and the basics of parallel computing. The course is divided into two logical but related parts. (1) Introduction to Computer Systems discusses how a single computer is organized from a programmer's perspective, and the performance implications when developing computational applications; and (2) Parallel computing introduces parallel architectures, and how parallel applications can be designed on such systems. Specific topics that will be covered are:

Govind will be teaching the first part of the course (8-10 weeks) while Yogesh will cover the second part (6-8 weeks).

Intended Learning Objectives

At the end of the course, students should have learned the following concepts:

Collectively, these should help you design and develop high performance applications, and also improve applications' performance.

Teaching and Learning Activities

Assessment

The total assessment score for the course is based on a 1000 point scale. Of this, the weightage to different activities will be as follows:

25% HomeworkAbout five homework assignments (250 points total).
30% Midterm ExamsThree Mid-term exams of 100 points each.
45% Final ExamOne Final exam for 450 points.

Academic Integrity

Students must uphold IISc's Academic Integrity guidelines. While these are common sense, it is helpful to review them since failure to follow them will lead to sanctions and penalties. This includes a reduced or failing grade in the course. Severe cases of academic violations will be reported to the Institute and may lead to an expulsion.

Learning takes place both within and outside the class. Hence, discussions between students and reference to online material is encouraged as part of the course to achieve the intended learning objectives. However, while you may learn from any valid source, you must form your own ideas and complete problems and assignments by yourself. All works submitted by the student as part of their academic assessment must be their own. No group work is allowed unless explicitly stated in the assignment.

Plagiarism
Verbatim reproduction of material from external sources (web pages, books, papers, etc.) is not acceptable. If you are paraphrasing external content (or even your own prior work) or were otherwise influenced by them while completing your assignments, projects or exams, you must clearly acknowledge them. When in doubt, add a citation!
Cheating
While you may discuss lecture topics and broad outlines of homework problems with others, you cannot collaborate in completing the assignments, copy someone else's solution or falsify results. You cannot use notes or unauthorized resources during exams, or copy from others.
Classroom Behavior
Ensure that the course atmosphere, both in the class, outside and on the mailing list, is conducive for learning. Participate in discussions but do not dominate or be abusive. There are no "stupid" questions. Be considerate of your fellow students and avoid disruptive behavior.

Resources

TextbookSelect topics from:
  • "Computer Systems: A Programmer's Perspective", by R.E. Bryant and D. O'Hallaron. Pearson Education, 2003.
  • "Operating System Concepts", 8th Edition, by Silberschatz, Galvin and Gagne. John Wiley & Sons, 2008.
  • "Introduction to Parallel Computing", by Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar. Addison Wesley, 2003.
Mailing Listse292.aug14@mailman.serc.iisc.in | Mailman Info Webpage
Prior Course ContentYou can find relevant material for the course from past years' webpages of Govind and Sathish

Teaching & Office Hours

LectureTTh 8AM-930AM, SERC 202
Office HoursTBD

Tentative Schedule

Schedule is based on two 1.5 hour lectures on TTh 8AM-930AM each week.

Lecture No.DateTopics Covered & AssignmentsSlides
1Thu 7 AugIntroduction[PPSX] [PDF]
2Tue 12 AugIntroduction
3Thu 14 AugIntroduction
4Tue 19 AugBasic Computer Organization[PPSX] [PDF]
5Thu 21 AugBasic Computer Organization
6Tue 26 AugPipelining[PPSX] [PDF]
7Thu 28 AugPipelining
8Tue 2 SepPipelining
Assignment 1 Posted
9Thu 4 SepMemory Hierarchy, Part 1[PPSX] [PDF]
10Sat 6 SepMemory Hierarchy
11Tue 9 SepMemory Hierarchy, Part 2[PPSX] [PDF]
12Thu 11 SepMid-term Exam 1
13Tue 23 SepMemory Hierarchy, Part 3[PPSX] [PDF]
14Thu 25 SepProcess Management, Part 1[PPSX] [PDF]
15Sat 27 SepPerformance Tuning and Profiling
Assignment 2 Posted
Part A: [PPSX] [PDF]
Part B: [PPSX] [PDF]
...Tue 30 SepCancelled
...Thu 2 OctOfficial Holiday. Mahatma Gandhi's Jayanthi.
Substitute class TBD.
16Tue 7 OctProcess Management, Part 2
17Thu 9 OctProcess Management, Part 3
18Tue 14 OctMid-term Exam 2
19Thu 16 OctConcurrent Programming, Part 1 [PPSX] [PDF]
20Sat 18 OctConcurrent Programming, Part 2
21Tue 21 OctParallelization, Part 1
...Thu 23 OctOfficial Holiday. Deepavali.
Substitute class TBD.
22Tue 28 OctParallel Architectures, Part 1[PPSX] [PDF]
23Thu 30 OctParallel Architectures, Part 2
...Tue 4 NovOfficial Holiday. Muharram.
Substitute class TBD.
24Wed 5 NovParallelization, Part 2 (Substitute Class)[PPSX] [PDF]
...Thu 6 NovOfficial Holiday. Guru Nanak's Birthday.
Substitute class TBD.
25Sat 8 NovParallelization, Part 3 (Substitute Class, 10AM)
26Tue 11 NovMPI, Part 1
Assignment 3 Posted
[PPSX] [PDF]
27Thu 13 NovMid-term Exam 3
28Fri 14 NovMPI, Part 2 (Substitute Class, 830AM)
29Tue 18 NovOpenMP, Part 1[PPSX] [PDF]
30Thu 20 NovOpenMP, Part 2
31Tue 25 NovFile System, Part 1[PPSX] [PDF]
32Thu 27 NovFile System, Part 2
33Wed 3 DecFinal Exam @ 2PM

Assignments

Homework

  1. Assignment 1 has been posted. Due Date: Sep 25, 2014
  2. Assignment 2 has been posted. Due Date: Oct 17, 2014
  3. Assignment 3 with Pthreads source code has been posted. Due Date: 7AM Tue Nov 18, 2014
  4. Assignment 4 on MPI programming has been posted. Due Date: Midnight Mon Dec 1, 2014

Acknowledgement

This course includes material prepared by Matthew Jacobs and Sathish Vadhiyar from SERC, IISc. Material used from other sources are acknowledged in the slides.