Links
Libraries for parallelism
Task-based runtime systems
Synchronization
Tools
 Simulators 
Full system, functional, cycle-accurate, for multiprocessor/multithreaded architectures:
Microarchitectural, application-level simulators:
Educational:
- WinDLX:
MIPS-like, in-order pipeline & visualization.
 
Compiler frameworks
- Cetus:
source to source C compiler. 
 
Profiling and debugging
- 
Pin: a tool for dynamic binary instrumentation
 
- 
Valgrind: a suite of instrumentation tools for 
debugging, profiling and analyzing Linux programs. Provides a cache profiler, as well.
 
- 
Oprofile: a system-wide profiler for 
Linux systems. Supports performance counters for a wide range of architectures.
 
Latex and typesetting
Applications and benchmarks
Parallel benchmarks
Serial benchmarks
- Olden benchmark
suite: a set of pointer-intensive benchmarks, involving recursive
data structures such as trees and linked lists.
 
- 
Livermore loops:
24 kernels encountered in many numerical applications.
 
Resources and articles
People
Useful stuff
- 
Matplotlib: Python-based plotting tool
 
- 
JabRef: bibliography reference
manager. 
 
- 
Meld: graphical tool for diffing
and merging files. 
 
- 
Common bugs
in writing papers.
 
Recommended books
- 
Computer Architecture, 4th edition: A Quantitative Approach, 
by John Hennesy and David Patterson. Morgan Kaufmann.
 
- 
C Programming Language, 2nd edition, 
by Brian Kernighan and Dennis Ritchie. Prentice Hall.
 
- 
Accelerated C++: Practical Programming by Example, 
by Andrew Koenig and Barbara Moo. Addison-Wesley.
 
- 
Effective C++, 3rd edition, by Scott Meyers. Addison Wesley.
 
- 
The Art of Multiprocessor Programming, by Maurice Herlihy and Nir Shavit.
Morgan Kaufmann.
 
- 
Understanding the Linux Kernel, 3rd edition, 
by Daniel Bovet and Marco Cesati. O'Reilly.
 
-  
Introduction to Algorithms, 3rd edition, 
by Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein. MIT
Press.
 
-  
Distributed Algorithms, by Nancy Lynch. Morgan Kaufmann.
 
-  
Introduction to the Theory of Computation, by Michael Sipser. Course
Technology. 
 
- 
Database System Concepts, by Abraham Silberschatz, Henry Korth and S.
Sudarshan. McGraw-Hill.