Performance Engineering of Software Systems
by Saman Amarasinghe, Charles Leiserson
To listen to an audio podcast, mouse over the title and click Play. Open iTunes to download and subscribe to iTunes U collections.
Lecture videos for 6.172 Performance Engineering of Software Systems, Fall 2010. Also includes one session introducing industry mentors to 6.172.
|1||VideoLecture 1: Matrix Multiply: A Case Study||Introduction to course, administrative information. Lecture covering matrix multiply as a case study, including matrix representation, performance counters, instruction level optimizations, and parallel execution.||6/22/2015||Free||View in iTunes|
|2||VideoLecture 2: Bit Hacks||Lecture covering bit hacks. Examples include swap, population count, and the n-queens problem, used to highlight backtracking search and bitvector representation.||6/22/2015||Free||View in iTunes|
|3||VideoLecture 3: Basic Performance Engineering||Basic performance engineering. Bentley's rules (modifying data, modifying code) and the traveling salesman problem.||6/22/2015||Free||View in iTunes|
|4||VideoLecture 4: Computer Architecture and Performance Engineering||Overview of computer architecture, profiling a program, and a set of example programs. Student performance on project 1 is also discussed.||6/22/2015||Free||View in iTunes|
|5||VideoIndustry mentor (MITPOSSE) overview||Meeting for 6.172 industry mentors. Description of mentorship role, expectations, overview of course and how it fits into EECS curriculum.||6/22/2015||Free||View in iTunes|
|6||VideoLecture 5: Performance Engineering with Profiling Tools||Theory and background of profiling tools. Two interactive walkthroughs: matrix multiply and branchless sorting.||6/22/2015||Free||View in iTunes|
|7||VideoLecture 6: C to Assembler||Lecture covering single threaded performance and assembly language. Discussion of project results, emphasizing importance of writing tests first and pair programming.||6/22/2015||Free||View in iTunes|
|8||VideoLecture 7: Memory Systems and Performance Engineering||Lecture covering memory systems, including cache concepts, access pattern concepts, data structure transformations, and computation transformations.||6/22/2015||Free||View in iTunes|
|9||VideoLecture 8: Cache-Efficient Algorithms||Lecture covering cache-efficient algorithms, with tiled and recursive matrix multiplication examples.||6/22/2015||Free||View in iTunes|
|10||VideoLecture 9: Cache-Efficient Algorithms II||Discussion of project 2.2 beta, how pair programming can lead to less time debugging, and importance of working well in groups. Lecture covering more cache-efficient algorithms, including a heat diffusion simulation.||6/22/2015||Free||View in iTunes|
|11||VideoLecture 10: Dynamic Storage Allocation||Lecture covering dynamic storage allocation, including reference counting, a graph abstraction, and updating pointers.||6/22/2015||Free||View in iTunes|
|12||VideoLecture 11: What Compilers Can and Cannot Do||Lecture covering compiler hacks, when to optimize, data-flow analysis and optimizations, and instruction scheduling. Discussion of quiz, including common mistakes.||6/22/2015||Free||View in iTunes|
|13||VideoLecture 12: Multicore Programming||Discussion of project 3 beta. Lecture covering multicore programming, including shared-memory hardware, concurrency platforms, and race conditions.||6/22/2015||Free||View in iTunes|
|14||VideoLecture 13: Parallelism and Performance||Lecture covering parallelism, scheduling theory, the Cilk++ runtime system, and Cilk chess programs.||6/22/2015||Free||View in iTunes|
|15||VideoLecture 14: Analysis of Multithreaded Algorithms||Lecture covering analysis of multithreaded algorithms, including divide-and-conquer recurrences, loop parallelism in Cilk++, and matrix multiplication and merge sort examples.||6/22/2015||Free||View in iTunes|
|16||VideoLecture 15: Nondeterministic Programming||Lecture covering nondeterministic programming, including mutual exclusion, implementation of mutexes, and locking anomalies.||6/22/2015||Free||View in iTunes|
|17||VideoLecture 16: Synchronizing without Locks||Lecture covering synchronizing without locks, including memory consistency, lock-free protocols, the ABA problem, and reducer hyperobjects.||6/22/2015||Free||View in iTunes|
|18||VideoLecture 17: Performance Issues in Parallelization||Lecture covering the impact of synchronization and memory on parallel performance, using OpenMP instead of Cilk. Topics include granularity of parallelism, true and false sharing, and load balancing.||6/22/2015||Free||View in iTunes|
|19||VideoLecture 18: Primer on Ray Tracing Techniques||Primer on ray tracing techniques, given to prepare students for the final project. Includes some ray tracing background and a code overview covering classes and high-level execution.||6/22/2015||Free||View in iTunes|
|20||VideoLecture 19: How TokuDB Fractal Tree Indexes Work||Information about the final project, followed by a guest lecture covering fractal trees, which combine the strengths of B-trees and append-to-file. Analysis of search and insert in a simplified fractal tree.||6/22/2015||Free||View in iTunes|
|21||VideoLecture 20: Distributed Systems||Lecture covering distributed systems at the cluster, data center, and planet scales. Topics include message passing, examples of the need to scale, Google's programming model, and cloud computing.||6/22/2015||Free||View in iTunes|
|22||VideoLecture 21: Quiz 2 Review||The first part of the lecture covers parallelism analysis, caches, and synchronization correctness. The second focuses on compiler optimization questions: is the optimization legal, faster, and automatic?||6/22/2015||Free||View in iTunes|
|23||VideoLecture 22: A Tale of 10 Bugs: Performance Engineering at Vmware||Guest lecture by Ravi Soundararajan of VMware, covering ten case studies in performance engineering.||6/22/2015||Free||View in iTunes|
|24||VideoLecture 23: Final Competition and Student Feedback||Students vote on which ray-tracer images are accurate enough to be included in the competition, and these entries are tested against each other for speed. Students also provide feedback on the course.||6/22/2015||Free||View in iTunes|
Nice course that focuses on software performance.
Good to know that there exist courses that focuses on software performance. The videos are sometime blurry, but mostly good. I hope we can get a copy of the slides used in this class.
Really good course. Thanks for sharing the same for the benefits of all. It would be really great if slides and class room exercises can be shared.
Viewers also subscribed to
- Category: Computer Science
- Language: English
- http://ocw.mit.edu; Creative Commons Attribution-NonCommercial-ShareAlike 3.0; http://ocw.mit.edu/OcwWeb/web/terms/terms; Album art image by Prof. Saman Amarasinghe and Prof. Charles Leiserson.