Course Details:
Lectures: Tuesday, Friday : 1:30 PM -- 3:00 PM, Room 323, Main Building.
Instructors: P. J. Narayanan, R. Govindarajulu, and Kishore Kothapalli
TA: TBA.
Objective:
This course is meant for those who want to get
advanced introduction into the practical multicore machines, especially
for those who intend to do research on them or research with them.
The course will cover the necessary theory of parallel processing and
algorithms on a need basis, but will be focussed on two multicore
architectures that have been delivering high performance practically:
the GPU (Graphics Processor Unit) and the CellBE (from IBM/Sony/Toshiba).
IIIT has been involved with Nvidia on GPUs and
IBM on Cells; both companies are setting up labs or centres with
their hardware at the institute.
Topics and Course Plan
The course be roughly divided into the following parts:
- Part 0: Minimal Theory
- Part I. GPGPU
- Part II: Cell Architecture and Programming
Detailed schedule is as follows (To be updated for Part II).
- Lecture 1-2: Parallel algorithms: Design principles
- Lecture 3-4: Parallel Programming: Synchronization techniques
- Lecture 5: GPGPU Basic Architecture
- Lecture 6: CUDA Programming
- Lecture 7: Case study: Scan and list ranking
- Lecture 8: Case study: Sorting
- Lecture 9: Case study: Graph Algorithms
- Lecture 10: An analytical model for GPGPU