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.