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)

Buy at MIT Press Buy at Amazon 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)