Structured Parallel Programming : Patterns for Efficient Computation - Michael McCool; James Reinders; Arch Robison (2012)