|
ABSTRACT
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 Manticore, a language for building parallel applications on commodity multicore hardware including 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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
Barton, R., D. Adkins, H. Prokop, M. Frigo, C. Joerg, M. Renard, D. Dailey, and C. Leiserson. Cilk Pousse, 1998. Viewed on March 20, 2008 at 2:45 PM.
|
| |
5
|
|
 |
6
|
Ian Buck , Tim Foley , Daniel Horn , Jeremy Sugerman , Kayvon Fatahalian , Mike Houston , Pat Hanrahan, Brook for GPUs: stream computing on graphics hardware, ACM Transactions on Graphics (TOG), v.23 n.3, August 2004
|
 |
7
|
|
 |
8
|
Robert D. Blumofe , Christopher F. Joerg , Bradley C. Kuszmaul , Charles E. Leiserson , Keith H. Randall , Yuli Zhou, Cilk: an efficient multithreaded runtime system, ACM SIGPLAN Notices, v.30 n.8, p.207-216, Aug. 1995
|
 |
9
|
|
 |
10
|
|
| |
11
|
|
 |
12
|
Manuel M. T. Chakravarty , Roman Leshchinskiy , Simon Peyton Jones , Gabriele Keller , Simon Marlow, Data parallel Haskell: a status report, Proceedings of the 2007 workshop on Declarative aspects of multicore programming, p.10-18, January 16-16, 2007, Nice, France
[doi> 10.1145/1248648.1248652]
|
| |
13
|
|
| |
14
|
Dailey, D. and C. E. Leiserson. Using Cilk to write multiprocessor chess programs. The Journal of the International Computer Chess Association, 2002.
|
 |
15
|
Matthew Fluet , Nic Ford , Mike Rainey , John Reppy , Adam Shaw , Yingqi Xiao, Status report: the manticore project, Proceedings of the 2007 workshop on Workshop on ML, October 05-05, 2007, Freiburg, Germany
[doi> 10.1145/1292535.1292539]
|
 |
16
|
Matthew Fluet , Mike Rainey , John Reppy , Adam Shaw , Yingqi Xiao, Manticore: a heterogeneous parallel language, Proceedings of the 2007 workshop on Declarative aspects of multicore programming, p.37-44, January 16-16, 2007, Nice, France
[doi> 10.1145/1248648.1248656]
|
 |
17
|
|
| |
18
|
Jean-Luc Gaudiot , Tom DeBoni , John Feo , Wim Böhm , Walid Najjar , Patrick Miller, The Sisal Model of Functional Programming and its Implementation, Proceedings of the 2nd AIZU International Symposium on Parallel Algorithms / Architecture Synthesis, p.112, March 17-21, 1997
|
| |
19
|
GHC. The Glasgow Haskell Compiler. Available from http://www.haskell.org/ghc.
|
| |
20
|
|
 |
21
|
|
| |
22
|
Hammond, K. Parallel SML: a Functional Language and its Implementation in Dactl. The MIT Press, Cambridge, MA, 1991.
|
| |
23
|
Hedqvist, P. A parallel and multithreaded ERLANG implementation. Master's dissertation, Computer Science Department, Uppsala University, Uppsala, Sweden, June 1998.
|
 |
24
|
Carl Hauser , Christian Jacobi , Marvin Theimer , Brent Welch , Mark Weiser, Using threads in interactive systems: a case study, Proceedings of the fourteenth ACM symposium on Operating systems principles, p.94-105, December 05-08, 1993, Asheville, North Carolina, United States
|
 |
25
|
Tim Harris , Simon Marlow , Simon Peyton-Jones , Maurice Herlihy, Composable memory transactions, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065952]
|
| |
26
|
Jones, M. P. and P. Hudak. Implicit and explicit parallel programming in Haskell. Technical Report Research Report YALEU/DCS/RR-982, Yale University, August 1993.
|
| |
27
|
Leshchinskiy, R., M. M. T. Chakravarty, and G. Keller. Higher order flattening. In V. Alexandrov, D. van Albada, P. Sloot, and J. Dongarra (eds.), ICCS '06, number 3992 in LNCS, New York, NY, May 2006. Springer-Verlag, pp. 920--928.
|
 |
28
|
|
| |
29
|
Luckham, D. Programming with Specifications. Texts and Monographs in Computer Science. Springer-Verlag, 1990.
|
| |
30
|
|
| |
31
|
Nikhil, R. S. ID Language Reference Manual. Laboratory for Computer Science, MIT, Cambridge, MA, July 1991.
|
 |
32
|
|
| |
33
|
|
 |
34
|
Simon Peyton Jones , Andrew Gordon , Sigbjorn Finne, Concurrent Haskell, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.295-308, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237794]
|
 |
35
|
Simon Peyton Jones , Alastair Reid , Fergus Henderson , Tony Hoare , Simon Marlow, A semantics for imprecise exceptions, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.25-36, May 01-04, 1999, Atlanta, Georgia, United States
|
| |
36
|
Rainey, M. The Manticore runtime model. Master's dissertation, University of Chicago, January 2007. Available from http://manticore.cs.uchicago.edu.
|
 |
37
|
|
| |
38
|
|
| |
39
|
Reppy, J. and Y. Xiao. Toward a parallel implementation of Concurrent ML. In DAMP '08, New York, NY, January 2008. ACM.
|
| |
40
|
Shaw, A. Data parallelism in Manticore. Master's dissertation, University of Chicago, July 2007. Available from http://manticore.cs.uchicago.edu.
|
| |
41
|
|
| |
42
|
Tarditi, D., S. Puri, and J. Oglesby. Accelerator: using data parallelism to program gpus for general-purpose uses. SIGOPS Oper. Syst. Rev., 40(5), 2006, pp. 325--335.
|
| |
43
|
|
|