A “Minimal Disruption” Skeleton Experiment: Seamless Map & Reduce Embedding in OCaml - Danelutto, M.; Di Cosmo, R. (Procedia computer science, 2012)
We discuss the implementation of a minimalist parallel library in OCaml. The library provides parallel map and fold (reduce) higher order functions and targets standard cache coherent shared memory multi-cores. Our Parmap.parmap and Parmap.parfold functions may be used to seamlessly replace OCaml List map and fold standard functions preserving their full functional semantics while achieving nearly optimal speedup on standard multi-core architectures. We discuss the design of the Parmap module, the main implementation features and we present some experimental results assessing the effciency of the Parmap parallel functions. Overall, Parmap represents a perfect incarnation of the “propagate the concept with minimal disruption” principle introduced in Cole's algorithmic skeleton manifesto.