The objective of this course is to learn how to improve the quality of the programs that you write for execution on high performance computer systems.
The course discusses the various activities that happen during program execution, and how they are managed by the hardware (architectural features) and system software (operating systems, run-time systems).
Program execution: Program, Compilation, Object files, Function call and return, Address space, Data and its representation
Computer organization: Memory, Registers, Instruction set architecture, Instruction processing
Pipelined processors: Pipelining, Structural, data and control hazards, Impact on programming
Virtual memory: Use of memory by programs, Address translation, Paging
Cache memory: Organization, impact on programming, virtual caches
Operating systems: Processes and system calls, Process management
File systems: Disk management, Name management, Protection
Parallel architecture: Inter-process communication, Synchronization, Mutual exclusion, Basics of parallel architecture, Parallel programming with message passing using MPI
No Reviews found for this course.