Performance Engineering of Software Systems

A speed limit sign: speed limit infinity, per order of 6.172.

6.172 course logo. (Image by Prof. Saman Amarasinghe and Prof. Charles Leiserson.)

Instructor(s)

MIT Course Number

6.172

As Taught In

Fall 2010

Level

Undergraduate

Cite This Course

Course Description

Course Features

Course Description

Modern computing platforms provide unprecedented amounts of raw computational power. But significant complexity comes along with this power, to the point that making useful computations exploit even a fraction of the potential of the computing platform is a substantial challenge. Indeed, obtaining good performance requires a comprehensive understanding of all layers of the underlying platform, deep insight into the computation at hand, and the ingenuity and creativity required to obtain an effective mapping of the computation onto the machine. The reward for mastering these sophisticated and challenging topics is the ability to make computations that can process large amount of data orders of magnitude more quickly and efficiently and to obtain results that are unavailable with standard practice.

This class is 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, cache and memory hierarchy optimization, parallel programming, and building scalable distributed systems.

The course also includes design reviews with industry mentors, as described in this MIT News article.

Other Versions

Related Content

Saman Amarasinghe, and Charles Leiserson. 6.172 Performance Engineering of Software Systems. Fall 2010. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.


For more information about using these materials and the Creative Commons license, see our Terms of Use.


Close