Performance Engineering of Software Systems

 

Study Materials

C for Java Programmers (PDF) (Courtesy of Reid Kleckner. Used with permission.)

C++: The Good, Bad, and Ugly (PDF) (Courtesy of Reid Kleckner. Used with permission.)

 

Projects

These projects require GCC (or another C++ compiler), GNU Make, and the Intel Cilk++ compiler, all of which are freely available. Some projects also require Intel VTune, which must be purchased.

Project Descriptions

Project Structure and Grading

PROJECT #

TOPICS

PROJECTS

SUPPORTING FILES

0

Getting started

(PDF)

(ZIP)

1

Bit hacks

(PDF)

(ZIP)

2-1

Evaluating performance via profiling

(PDF)

(ZIP - 1.3MB)

2-2

Iterative performance optimization

(PDF)

(ZIP)

3

Writing a dynamic storage allocator

(PDF)

(ZIP)

4-1

Parallel programming with Cilk I

(PDF)

(ZIP - 1.1MB)

4-2

Parallel programming with Cilk II

(PDF)

(ZIP - 1.1MB)

5

Parallelism and data synchronization

(PDF)

Lock-based queue (RTF)

Lock-free queue (RTF)

6

Ray tracing performance derby

(PDF)

(ZIP - 1.2MB)

Reference images:

Scene 1 (PNG - 1.5MB)

Scene 2 (PNG)

Scene 3 (BMP - 1.0MB)