ACM Home Page
Please provide us with feedback. Feedback
A concurrent constraint handling rules implementation in Haskell with software transactional memory
Full text PdfPdf (122 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 2007 workshop on Declarative aspects of multicore programming table of contents
Nice, France
Pages: 19 - 24  
Year of Publication: 2007
ISBN:978-1-59593-690-5
Authors
Edmund S. L. Lam  National University of Singapore, Singapore
Martin Sulzmann  National University of Singapore, Singapore
Sponsors
: Intel Corporation
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 37,   Citation Count: 2
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/1248648.1248653
What is a DOI?

ABSTRACT

Constraint Handling Rules (CHR) is a concurrent committed-choice constraint logic programming language to describe transformations (rewritings) among multi-sets of constraints (atomic formulae). CHR is widely used in a range of applications spanning from type system design to artificial intelligence. However, none of the existing CHR implementations we are aware of exploits concurrency or parallelism explicitly. We give a concurrent CHR implementation using GHC (Glasgow Haskell Compiler) with support for Software Transactional Memory. We achieve some significant performance improvements compared to a single-threaded CHR implementation. We obtain a further speed-up, in some cases nearly close to the optimum of 100%, when running programs under under a dual-core processor architecture. Our results show that CHR can be implemented efficiently on a multi-core architecture.


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
S. Abdennadher. Operational semantics and confluence of constraint propagation rules. In Proc. of CP'97, LNCS, pages 252--266. Springer-Verlag, 1997.
 
2
Common CHR implementations, http://www.cs.kuleuven.ac.be/~dtai/projects/CHR.
 
3
G. J. Duck, P. J. Stuckey, M. J. García de la Banda, and C. Holzbaur. The Refined Operational Semantics of Constraint Handling Rules. In Proc of ICLP'04, pages 90--104, 2004.
 
4
G. J. Duck, P. J. Stuckey, and M. Sulzmann. Observable confluence for constraint handling rules. Technical Report CW 452, Katholieke Universteit Leuven, 2006. Proc. of CHR 2006, Third Workshop on Constraint Handling Rules.
 
5
T. Frühwirth. Constraint handling rules. In Constraint Programming: Basics and Trends, LNCS. Springer-Verlag, 1995.
 
6
T. Frühwirth. Parallelizing union-find in Constraint Handling Rules using confluence analysis. In Proc. of ICLP '05, volume 3668 of LNCS, pages 113--127. Springer-Verlag, 2005.
7
 
8
Glasgow haskell compiler home page, http://www.haskell.org/ghc/.
9
 
10
S. Peyton Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003.


Collaborative Colleagues:
Edmund S. L. Lam: colleagues
Martin Sulzmann: colleagues