From the category archives:

Patterns for Parallel Programming