2009
DOI: 10.1145/1631687.1596588
|View full text |Cite
|
Sign up to set email alerts
|

Parallel concurrent ML

Abstract: Concurrent ML (CML) is a high-level message-passing language that supports the construction of first-class synchronous abstractions called events. This mechanism has proven quite effective over the years and has been incorporated in a number of other languages. While CML provides a concurrent programming model, its implementation has always been limited to uniprocessors. This limitation is exploited in the implementation of the synchronization protocol that underlies the event mechanism, but with the advent of… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
18
0

Year Published

2010
2010
2018
2018

Publication Types

Select...
5
2

Relationship

2
5

Authors

Journals

citations
Cited by 16 publications
(18 citation statements)
references
References 20 publications
0
18
0
Order By: Relevance
“…Sending a message ensuring that only one thread will succeed in claiming a given message. If at any point we fail to claim a message, we roll back all of the messages claimed so far (lines [23][24]. The implementation ensures that the Chans arrays for each chord are ordered consistently, so that in any race at least one thread entering the second phase will complete the phase successfully ( §5).…”
Section: The Core Algorithm: Resolving a Messagementioning
confidence: 99%
See 1 more Smart Citation
“…Sending a message ensuring that only one thread will succeed in claiming a given message. If at any point we fail to claim a message, we roll back all of the messages claimed so far (lines [23][24]. The implementation ensures that the Chans arrays for each chord are ordered consistently, so that in any race at least one thread entering the second phase will complete the phase successfully ( §5).…”
Section: The Core Algorithm: Resolving a Messagementioning
confidence: 99%
“…Our algorithm draws some inspiration from Reppy, Russo and Xiao's PARALLEL CML, a combinator library for firstclass synchronous events [23]. The difficulty in implementing CML is, in a sense, dual to that of the join calculus: disjunctions of events (rather than conjunctions of messages) must be atomically resolved.…”
Section: Parallel CMLmentioning
confidence: 99%
“…In our implementations we adopt a simple pessimistic locking approach because the transactions are very lightweight: there are in general no more than a dozen branches to test, and the locks must be only retained during the polling phase. A more optimistic approach, along the line of [17] could be also experimented.…”
Section: Schedulermentioning
confidence: 99%
“…In fact the combinators for synchronization events supported by CML makes it even more expressive: it is for example possible to encode dynamic choices with the possibility to insert/remove execution branches at runtime. A parallel interpretation of the core CML constructs is presented in [17]. The basic input/output events are quite similar to the π-threads commitments and the optimistic polling phase approach of [17] would probably translate to our setting without major difficulties.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation