Hostname: page-component-77f85d65b8-g98kq Total loading time: 0 Render date: 2026-03-29T20:48:02.599Z Has data issue: false hasContentIssue false

Implicitly threaded parallelism in Manticore

Published online by Cambridge University Press:  27 January 2011

MATTHEW FLUET
Affiliation:
Computer Science Department, Rochester Institute of Technology, Rochester, NY, USA (e-mail: mtf@cs.rit.edu)
MIKE RAINEY
Affiliation:
Department of Computer Science, University of Chicago, Chicago, IL, USA (e-mail: mrainey@cs.uchicago.edu)
JOHN REPPY
Affiliation:
Department of Computer Science, University of Chicago, Chicago, IL, USA (e-mail: jhr@cs.uchicago.edu)
ADAM SHAW
Affiliation:
Department of Computer Science, University of Chicago, Chicago, IL, USA (e-mail: ams@cs.uchicago.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

The increasing availability of commodity multicore processors is making parallel computing ever more widespread. In order to exploit its potential, programmers need languages that make the benefits of parallelism accessible and understandable. Previous parallel languages have traditionally been intended for large-scale scientific computing, and they 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. The Manticore project is our effort to address this need. At its core is Parallel ML, a high-level functional language for programming parallel applications on commodity multicore hardware. Parallel ML provides a diverse collection of parallel constructs for different granularities of work. In this paper, we focus on the implicitly threaded parallel constructs of the language, which support fine-grained parallelism. We concentrate on those elements that distinguish our design from related ones, namely, a novel parallel binding form, a nondeterministic parallel case form, and the treatment of exceptions in the presence of data parallelism. These features differentiate the present work from related work on functional data-parallel language designs, which have focused largely on parallel problems with regular structure and the compiler transformations—most notably, flattening—that make such designs feasible. We present detailed examples utilizing various mechanisms of the language and give a formal description of our implementation.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2011
Submit a response

Discussions

No Discussions have been published for this article.