Implicitly-threaded parallelism in Manticore
Matthew Fluet, Mike Rainey, John Reppy and Adam Shaw
The 13th ACM SIGPLAN International Conference on Functional Programming (ICFP 2008)
Victoria, British Columbia, Canada, September 22-24, 2008
The increasing availability of commodity multicore processors is making parallel computing available to the masses. Traditional parallel languages are largely intended for large-scale scientific computing and tend not to be well-suited to programming the applications one typically finds on a desktop system. Thus we need new parallel-language designs that address a broader spectrum of applications. In this paper, we present the Manticore language, which is intended specifically to support parallel applications on commodity multicore hardware and which includes a diverse collection of parallel constructs for different granularities of work. We focus on the implicitly-threaded parallel constructs in our high-level functional language. We concentrate on those elements that distinguish our design from related ones, namely, a novel parallel binding form, a nondeterministic parallel case form, and exceptions in the presence of data parallelism. These features differentiate the present work from related work on functional data parallel language designs, which has focused largely on parallel problems with regular structure and the compiler transformations---most notably, flattening---that make such designs feasible. We describe our implementation strategies and present some detailed examples utilizing various mechanisms of our language.
Conference Manager (V2.54.6)