Results 1  10
of
43
Transactional Events
, 2008
"... Concurrent programs require highlevel abstractions in order to manage complexity and enable compositional reasoning. In this paper, we introduce a novel concurrency abstraction, dubbed transactional events, which combines firstclass synchronous message passing events with allornothing transactio ..."
Abstract

Cited by 33 (1 self)
 Add to MetaCart
Concurrent programs require highlevel abstractions in order to manage complexity and enable compositional reasoning. In this paper, we introduce a novel concurrency abstraction, dubbed transactional events, which combines firstclass synchronous message passing events with allornothing transactions. This combination enables simple solutions to interesting problems in concurrent programming. For example, guarded synchronous receive can be implemented as an abstract transactional event, whereas in other languages it requires a nonabstract, nonmodular protocol. As another example, threeway rendezvous can be implemented as an abstract transactional event, which is impossible using firstclass events alone. Both solutions are easy to code and easy to reason about. The expressive power of transactional events arises from a sequencing combinator whose semantics enforces an allornothing transactional property – either both of the constituent events synchronize in sequence or neither of them synchronizes. This sequencing combinator, along with a nondeterministic choice combinator, gives transactional events the compositional structure of a monadwithplus. We provide a formal semantics for transactional events and give a detailed account of an implementation.
What are polymorphicallytyped ambients
, 2000
"... www.cs.bu.edu/fac/kfoury The Ambient Calculus was developed by Cardelli and Gordon as a formal framework to study issues of mobility and migrant code [CG98]. We consider an Ambient Calculus where ambients transport and exchange programs rather that just inert data. We propose different senses in whi ..."
Abstract

Cited by 32 (5 self)
 Add to MetaCart
www.cs.bu.edu/fac/kfoury The Ambient Calculus was developed by Cardelli and Gordon as a formal framework to study issues of mobility and migrant code [CG98]. We consider an Ambient Calculus where ambients transport and exchange programs rather that just inert data. We propose different senses in which such a calculus can be said to be polymorphically typed, and design accordingly a polymorphic type system for it. Our type system assigns types to embedded programs and what we call behaviors to processes; a denotational semantics of behaviors is then proposed, here called trace semantics, underlying much of the remaining analysis. We state and prove a Subject Reduction property for our polymorphicallytyped calculus. Based on techniques borrowed from finite automata theory, typechecking of fully typeannotated processes is shown to be decidable. Our polymorphicallytyped calculus is a conservative extension of the typed Ambient Calculus originally proposed by Cardelli and Gordon [CG99].
Functional Bulk Synchronous Parallel Programming in C++
 In 14th IASTED International Conference on Parallel and Distributed Computing Systems
, 2002
"... This paper presents the BSFC++ library for functional bulk synchronous parallel programming in C++. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. This guarantees the determinism and the absence ..."
Abstract

Cited by 19 (14 self)
 Add to MetaCart
This paper presents the BSFC++ library for functional bulk synchronous parallel programming in C++. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. This guarantees the determinism and the absence of deadlock. Broadcast algorithms are implemented using the core library.
Parallel proof checking in Isabelle/Isar
 ACM SIGSAM Workshop on Programming Languages for Mechanized Mathematics Systems (PLMMS 2009). ACM Digital Library, 2009. Parallel Poly/ML and Isabelle 10 2009/9/28
"... We address the “multicore problem ” for mathematical assistants with full proof checking, with special focus on Isabelle/Isar and its main SML platform Poly/ML. On the one hand, working with explicit definitions, statements, and proofs requires significant runtime resources, so the question of paral ..."
Abstract

Cited by 14 (7 self)
 Add to MetaCart
We address the “multicore problem ” for mathematical assistants with full proof checking, with special focus on Isabelle/Isar and its main SML platform Poly/ML. On the one hand, working with explicit definitions, statements, and proofs requires significant runtime resources, so the question of parallel checking is really relevant. On the other hand, the inherent structure of formal theories provides various possibilities for parallelism (both implicit and explicit), which is in fact an almost ideal situation. Exploiting this potential in practice requires to reconsider various aspects of the ML platform, the inference engine, and some higher prover specific layers. We report on an implementation of all that for Isabelle/Isar, and point out some general considerations for parallelism in functional programming, and other provers like Coq and HOL. Categories and Subject Descriptors D.1.3 [Concurrent Programming]: Parallel programming; I.2.3 [Deduction and Theorem
Isolationonly transactions by typing and versioning
 In Proc. PPDP ’05: the 7th ACMSIGPLAN International Symposium on Principles and Practice of Declarative Programming
, 2005
"... In this paper we design a language and runtime support for isolationonly, multithreaded transactions (called tasks). Tasks allow isolation to be declared instead of having to be encoded using the lowlevel synchronization constructs. The key concept of our design is the use of a type system to supp ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
In this paper we design a language and runtime support for isolationonly, multithreaded transactions (called tasks). Tasks allow isolation to be declared instead of having to be encoded using the lowlevel synchronization constructs. The key concept of our design is the use of a type system to support rollbackfree and safe runtime execution of tasks. We present a firstorder type system which can verify information for the concurrency controller. We use an operational semantics to formalize and prove the type soundness result and an isolation property of tasks. The semantics uses a specialized concurrency control algorithm, that is based on access versioning.
A Model of Cooperative Threads
"... We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a tracebased denotational semantics for this language; this ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a tracebased denotational semantics for this language; this semantics is fully abstract but mathematically elementary. We also give an equational theory for the computational effects that underlie the language, including thread spawning. We then analyze threads in terms of the free algebra monad for this theory. 1
Parallel Juxtaposition for Bulk Synchronous Parallel ML
 EuroPar 2003, number 2790 in LNCS
, 2002
"... The BSMLlib is a library for Bulk Synchronous Parallel (BSP) programming with the functional language Objective Caml. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
The BSMLlib is a library for Bulk Synchronous Parallel (BSP) programming with the functional language Objective Caml. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention.
Parallel Superposition for Bulk Synchronous Parallel ML
, 2003
"... The BSMLlib is a library for Bulk Synchronous Parallel programming with the functional language Objective Caml. It is based on an extension of the lcalculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
The BSMLlib is a library for Bulk Synchronous Parallel programming with the functional language Objective Caml. It is based on an extension of the lcalculus by parallel operations on a parallel data structure named parallel vector, which is given by intention.
Garbage Collection for Multicore NUMA Machines
"... Modern highend machines feature multiple processor packages, each of which contains multiple independent cores and integrated memory controllers connected directly to dedicated physical RAM. These packages are connected via a shared bus, creating a system with a heterogeneous memory hierarchy. Sinc ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Modern highend machines feature multiple processor packages, each of which contains multiple independent cores and integrated memory controllers connected directly to dedicated physical RAM. These packages are connected via a shared bus, creating a system with a heterogeneous memory hierarchy. Since this shared bus has less bandwidth than the sum of the links to memory, aggregate memory bandwidth is higher when parallel threads all access memory local to their processor package than when they access memory attached to a remote package. This bandwidth limitation has traditionally limited the scalability of modern functional language implementations, which seldom scale well past 8 cores, even on small benchmarks. This work presents a garbage collector integrated with our strict, parallel functional language implementation, Manticore, and shows that it scales effectively on both a 48core AMD Opteron machine and a 32core Intel Xeon machine. Categories and Subject Descriptors D.3.0 [Programming Languages]: General; D.3.2 [Programming Languages]: Language Classifications—Concurrent, distributed, and parallel languages; D.3.4 [Programming Languages]: Processors—Memory management (garbage collection)