SE/EO-292  High Performance Computing 3:0

August-December 2008


Prof. R. Govindarajan



Syllabus

Introduction to Computer Components: Processors, Memory, Secondary Storage Devices, Interconnection Networks. Cost, timing, and scale (size) models for the above, and technology trends.
A Model of Program Execution: Notions of a Process; Virtual Memory; System Calls; Data Segments; Dynamic Memory Allocation.
Machine-Level View of a Program: typical RISC processor's instruction set; machine code form of a program;
Performance Issues and Techniques: Cost and Frequency Models for I/O, paging, and caching. Notion of Cacheing; temporal and spatial locality models for instruction and data accesses; Intra-process parallelism and pipelining;
Typical Compiler Optimizations of Programs; Improving Performance: Identifying program bottlenecks - profiling, tracing; simple high-level-language optimizations - locality enhancement, memory disambiguation, moving loop-invariants, etc.
Choosing Appropriate Computing Platforms: benchmarking, cost-performance issues, etc.
Introduction to Parallel Programs and Architectures: Parallel programming paradigms, task partitioning and mapping, message passing, and synchronization. programmer's view of shared and distributed memory architecture.

Textbooks

Class Time:

Tu-Th: 8.30 a.m. -- 9.00 a.m. SERC #202

Evaluation Procedure

Slides :

Introduction Computer Organization Memory Management
Pipelining Cache and Memory Profiling and Performance
File System Concurrent Programming Parallelization
MPI

Lecture Notes :

[Scripted by past students of the course. (All disclaimers and copyrights apply ! :-) ]
L1: Program Execution L2: Assembly Language L3: Number Representation
L4: Instruction Set Architecture L5: Instruction Execution L6: Performance
L7: Memory Management - Part 1 L8: Memory Management - Part 2 L9: Process
L10: Pipelining L11: Control Hazards L12: Instruction Scheduling
L13: Multiple Instrn. Issue Processors L14: Cache Architecture L15: Cache Misses
L16: Cache Optimizations L17: L2 Caches and TLB L18: Profiling
L19: Intro. to Parallel Programming L20: Intro. to Parallel Architecture L21: Parallelising Programs

General Rules: All assignments must be done independently by the students. No group work is allowed unless said explicitly in the assignment. Academic integrity must be maintained in assignments and exams.

This page is under construction!"

Last Modified: Nov. 3, 2008