Performance Engineering of Software Systems

Performance Engineering of Software Systems

Follow Performance Engineering of Software Systems
Share on
Copy link to clipboard

Lecture videos for 6.172 Performance Engineering of Software Systems, Fall 2010. Also includes one session introducing industry mentors to 6.172.

Saman Amarasinghe, Charles Leiserson


    • Jun 22, 2015 LATEST EPISODE
    • infrequent NEW EPISODES
    • 1h 13m AVG DURATION
    • 24 EPISODES


    Search for episodes from Performance Engineering of Software Systems with a specific topic:

    Latest episodes from Performance Engineering of Software Systems

    Lecture 19: How TokuDB Fractal Tree Indexes Work

    Play Episode Listen Later Jun 22, 2015 80:15


    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.

    Lecture 23: Final Competition and Student Feedback

    Play Episode Listen Later Jun 22, 2015 70:45


    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.

    Industry mentor (MITPOSSE) overview

    Play Episode Listen Later Jun 22, 2015 102:30


    Meeting for 6.172 industry mentors. Description of mentorship role, expectations, overview of course and how it fits into EECS curriculum.

    Lecture 18: Primer on Ray Tracing Techniques

    Play Episode Listen Later Jun 22, 2015 26:26


    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.

    Lecture 20: Distributed Systems

    Play Episode Listen Later Jun 22, 2015 72:23


    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.

    Lecture 15: Nondeterministic Programming

    Play Episode Listen Later Jun 22, 2015 83:47


    Lecture covering nondeterministic programming, including mutual exclusion, implementation of mutexes, and locking anomalies.

    Lecture 14: Analysis of Multithreaded Algorithms

    Play Episode Listen Later Jun 22, 2015 86:31


    Lecture covering analysis of multithreaded algorithms, including divide-and-conquer recurrences, loop parallelism in Cilk++, and matrix multiplication and merge sort examples.

    Lecture 21: Quiz 2 Review

    Play Episode Listen Later Jun 22, 2015 62:06


    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?

    Lecture 22: A Tale of 10 Bugs: Performance Engineering at Vmware

    Play Episode Listen Later Jun 22, 2015 65:55


    Guest lecture by Ravi Soundararajan of VMware, covering ten case studies in performance engineering.

    Lecture 12: Multicore Programming

    Play Episode Listen Later Jun 22, 2015 85:21


    Discussion of project 3 beta. Lecture covering multicore programming, including shared-memory hardware, concurrency platforms, and race conditions.

    Lecture 17: Performance Issues in Parallelization

    Play Episode Listen Later Jun 22, 2015 64:47


    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.

    Lecture 10: Dynamic Storage Allocation

    Play Episode Listen Later Jun 22, 2015 78:21


    Lecture covering dynamic storage allocation, including reference counting, a graph abstraction, and updating pointers.

    Lecture 16: Synchronizing without Locks

    Play Episode Listen Later Jun 22, 2015 88:59


    Lecture covering synchronizing without locks, including memory consistency, lock-free protocols, the ABA problem, and reducer hyperobjects.

    Lecture 8: Cache-Efficient Algorithms

    Play Episode Listen Later Jun 22, 2015 71:13


    Lecture covering cache-efficient algorithms, with tiled and recursive matrix multiplication examples.

    Lecture 13: Parallelism and Performance

    Play Episode Listen Later Jun 22, 2015 81:49


    Lecture covering parallelism, scheduling theory, the Cilk++ runtime system, and Cilk chess programs.

    Lecture 3: Basic Performance Engineering

    Play Episode Listen Later Jun 22, 2015 77:44


    Basic performance engineering. Bentley's rules (modifying data, modifying code) and the traveling salesman problem.

    Lecture 7: Memory Systems and Performance Engineering

    Play Episode Listen Later Jun 22, 2015 76:04


    Lecture covering memory systems, including cache concepts, access pattern concepts, data structure transformations, and computation transformations.

    Lecture 11: What Compilers Can and Cannot Do

    Play Episode Listen Later Jun 22, 2015 72:55


    Lecture covering compiler hacks, when to optimize, data-flow analysis and optimizations, and instruction scheduling. Discussion of quiz, including common mistakes.

    Lecture 2: Bit Hacks

    Play Episode Listen Later Jun 22, 2015 69:46


    Lecture covering bit hacks. Examples include swap, population count, and the n-queens problem, used to highlight backtracking search and bitvector representation.

    Lecture 9: Cache-Efficient Algorithms II

    Play Episode Listen Later Jun 22, 2015 82:53


    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.

    Lecture 4: Computer Architecture and Performance Engineering

    Play Episode Listen Later Jun 22, 2015 64:01


    Overview of computer architecture, profiling a program, and a set of example programs. Student performance on project 1 is also discussed.

    Lecture 5: Performance Engineering with Profiling Tools

    Play Episode Listen Later Jun 22, 2015 45:54


    Theory and background of profiling tools. Two interactive walkthroughs: matrix multiply and branchless sorting.

    Lecture 6: C to Assembler

    Play Episode Listen Later Jun 22, 2015 81:59


    Lecture covering single threaded performance and assembly language. Discussion of project results, emphasizing importance of writing tests first and pair programming.

    Lecture 1: Matrix Multiply: A Case Study

    Play Episode Listen Later Jun 22, 2015 70:11


    Introduction to course, administrative information. Lecture covering matrix multiply as a case study, including matrix representation, performance counters, instruction level optimizations, and parallel execution.

    Claim Performance Engineering of Software Systems

    In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

    Claim Cancel