Skip to main navigation Skip to search Skip to main content

MultiMLton: A multicore-aware runtime for standard ML

  • Purdue University

Research output: Contribution to journalArticlepeer-review

25 Scopus citations

Abstract

MultiMLton is an extension of the MLton compiler and runtime system that targets scalable, multicore architectures. It provides specific support for ACML, a derivative of Concurrent ML that allows for the construction of composable asynchronous events. To effectively manage asynchrony, we require the runtime to efficiently handle potentially large numbers of lightweight, short-lived threads, many of which are created specifically to deal with the implicit concurrency introduced by asynchronous events. Scalability demands also dictate that the runtime minimize global coordination. MultiMLton therefore implements a split-heap memory manager that allows mutators and collectors running on different cores to operate mostly independently. More significantly, MultiMLton exploits the premise that there is a surfeit of available concurrency in ACML programs to realize a new collector design that completely eliminates the need for read barriers, a source of significant overhead in other managed runtimes. These two symbiotic features - a thread design specifically tailored to support asynchronous communication, and a memory manager that exploits lightweight concurrency to greatly reduce barrier overheads - are MultiMLton's key novelties. In this article, we describe the rationale, design, and implementation of these features, and provide experimental results over a range of parallel benchmarks and different multicore architectures including an 864 core Azul Vega 3, and a 48 core non-coherent Intel SCC (Single-Cloud Computer), that justify our design decisions.

Original languageEnglish
Pages (from-to)613-674
Number of pages62
JournalJournal of Functional Programming
Volume23
Issue number6
DOIs
StatePublished - 2014

Fingerprint

Dive into the research topics of 'MultiMLton: A multicore-aware runtime for standard ML'. Together they form a unique fingerprint.

Cite this