Michael McCool Structured Parallel Programming: Patterns For Efficient Computation