Study Materials

Primers

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.)

Readings

Demaine, Erik. "Cache-Oblivious Algorithms and Data Structures." Lecture Notes from the EEF Summer School on Massive Data Sets, 2002.

Frigo, Matteo, Charles Leiserson, Harald Prokop, and Sridhar Ramachandran. "Cache-Oblivious Algorithms." Proceedings of the 40th Annual Symposium on Foundations of Computer Science, 1999. (This resource may not render correctly in a screen reader.PDF)

Amazon logo Cormen, Thomas, Charles Leiserson, et al. "Multithreaded Algorithms." Chapter 27 in Introduction to Algorithms. 3rd ed. MIT Press, 2009, pp. 772–812. ISBN: 9780262033848. [Preview with Google Books]

Frigo, Matteo, Pablo Halpern, Charles Leiserson, and Stephen Lewin-Berlin. "Reducers and Other Cilk++ Hyperobjects." Proceedings of the 21st Annual Symposium on Parallelism in Algorithms and Architectures, 2009. (This resource may not render correctly in a screen reader.PDF)

References

Thomadakis, Michael. "The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms." (This resource may not render correctly in a screen reader.PDF - 1.6MB) A technical overview of the Nehalem architecture features.

Intel 64 and IA-32 Architectures Software Developer's Manuals. For instruction set reference, see volumes 2A and 2B.

x86 Instruction Set Reference. A table of x86 instructions linking to their detailed descriptions.

The Git Community Book. A comprehensive guide to using Git.

Cilk++ Programmer's Guide (This resource may not render correctly in a screen reader.PDF)