YoVDO

Performance Engineering of Software Systems

Offered By: Massachusetts Institute of Technology via MIT OpenCourseWare

Tags

Computer Science Courses Software Development Courses C Programming Courses

Course Description

Overview

6.172 is an 18-unit class that provides a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching optimizations, parallel programming, and building scalable systems. The course programming language is C.

Syllabus

1. Introduction and Matrix Multiplication.
2. Bentley Rules for Optimizing Work.
3. Bit Hacks.
4. Assembly Language & Computer Architecture.
5. C to Assembly.
6. Multicore Programming.
7. Races and Parallelism.
8. Analysis of Multithreaded Algorithms.
9. What Compilers Can and Cannot Do.
10. Measurement and Timing.
11. Storage Allocation.
12. Parallel Storage Allocation.
13. The Cilk Runtime System.
14. Caching and Cache-Efficient Algorithms.
15. Cache-Oblivious Algorithms.
16. Nondeterministic Parallel Programming.
17. Synchronization Without Locks.
18. Domain Specific Languages and Autotuning.
19. Leiserchess Codewalk.
20. Speculative Parallelism & Leiserchess.
21. Tuning a TSP Algorithm.
22. Graph Optimization.
23. High Performance in Dynamic Languages.


Taught by

Prof. Charles Leiserson and Prof. Julian Shun

Tags

Related Courses

1C:Enterprise Junior Developer Course
Moscow Institute of Physics and Technology via Coursera
Agile Development
University of Virginia via Coursera
Testing with Agile
University of Virginia via Coursera
PM4R Agile: mentalidad ágil en proyectos de desarrollo
Inter-American Development Bank via edX
Agile Planning for Software Products
University of Alberta via Coursera