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. (PDF)
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. (PDF)
References
Thomadakis, Michael. "The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms." (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 (PDF)