ACM Home Page
Please provide us with feedback. Feedback
Haskell on a shared-memory multiprocessor
Full text PdfPdf (159 KB)
Source Haskell archive
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell table of contents
Tallinn, Estonia
Pages: 49 - 61  
Year of Publication: 2005
ISBN:1-59593-071-X
Authors
Tim Harris  Microsoft Research, Cambridge
Simon Marlow  Microsoft Research, Cambridge
Simon Peyton Jones  Microsoft Research, Cambridge
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 72,   Citation Count: 9
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1088348.1088354
What is a DOI?

ABSTRACT

Multi-core processors are coming, and we need ways to program them. The combination of purely-functional programming and explicit, monadic threads, communicating using transactional memory, looks like a particularly promising way to do so. This paper describes a full-scale implementation of shared-memory parallel Haskell, based on the Glasgow Haskell Compiler. Our main technical contribution is a lock-free mechanism for evaluating shared thunks that eliminates the major performance bottleneck in parallel evaluation of a lazy language. Our results are preliminary but promising: we can demonstrate wall-clock speedups of a serious application (GHC itself), even with only two processors, compared to the same application compiled for a uni-processor.


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
Alpha Architecture Handbook. Compaq Computer Corporation, 4th edition, Oct. 1998.
2
3
 
4
R. Ennals. Adaptive Evaluation of Non-String Programs. PhD thesis, Cambridge University Computer Laboratory, 2004.
 
5
C. Flood, D. Detlefs, N. Shavit, and C. Zhang. Parallel garbage collection for shared memory multiprocessors. In USENIX Java Virtual Machine Research and Technology Symposium, Monterey, CA, Apr. 2001.
 
6
K. Fraser. Practical lock freedom. PhD thesis, Cambridge University Computer Laboratory, 2003.
 
7
8
9
 
10
R. Jones. Tail recursion without space leaks. Journal of Functional Programming, 2(1):73--80, Jan 1992.
 
11
12
 
13
14
15
16
 
17
 
18
S. Peyton Jones. Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell. In C. Hoare, M. Broy, and R. Steinbrueggen, editors, Engineering theories of software construction, Marktoberdorf Summer School 2000, NATO ASI Series, pages 47--96. IOS Press, 2001.
19
 
20
21
 
22
H. Sutter. A fundamental turn toward concurrency in software. Dr. Dobb's Journal, March 2005.
 
23
24
 
25
 
26

CITED BY  9

Collaborative Colleagues:
Tim Harris: colleagues
Simon Marlow: colleagues
Simon Peyton Jones: colleagues