Structured Parallel Programming: Patterns for