Title: Patterns and Skeletons for Parallel and Distributed Computing