Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Locality, causality and continuations

View through CrossRef
Concurrency and distribution are topics exacerbated by the omnipresence of Internet. Although many languages address these topics, few offer a real opportunity to control and coordinate widely spread dynamic computations. This paper presents such a language and its prominent features. Besides explaining the software architecture of the implementation (based on objects and generic functions), it also presents an original coherency protocol for shared mutable variables. We first recall, in Section 1, the main features of our Scheme-based, concurrent, distributed and computation-oriented language already presented in more details and examples in [QD93]. Section 2 explains how to systematically implement a concurrent and distributed interpreter for that language, using a set of program transformations combining Abstract Continuation Passing Style (ACPS) and Object-Oriented Lifting. The originality of this implementation is that it chiefly uses objects and generic functions in a style that allows to concentrate the problems related to concurrency and migration of computations into the sole discriminating behavior of generic functions. ACPS is not only used to reify continuations but also to enforce locality of computations in presence of distal objects. In Section 3, we propose a new (to our knowledge) protocol to manage shared mutable variables. This protocol enhances [MSRN92], does not require atomic broadcast, tolerates short communication breakdowns and uses bounded circular clocks. This result comes from the use of a distributed GC (which allows us to maintain an approximation of Global Virtual Time) and from the exploitation of causality as stated by continuations. To give a continuation a value (and a store) clearly expresses that the computations that are present in the continuation causally depend on the invoker of the continuation. Finally the computation-orientation of our language and mainly the ability to control groups of threads, concurrently running on multiple sites for the completion of the evaluation of a single expression, is shortly sketched in Section 4. As usual, related works and conclusions end this paper.
Association for Computing Machinery (ACM)
Title: Locality, causality and continuations
Description:
Concurrency and distribution are topics exacerbated by the omnipresence of Internet.
Although many languages address these topics, few offer a real opportunity to control and coordinate widely spread dynamic computations.
This paper presents such a language and its prominent features.
Besides explaining the software architecture of the implementation (based on objects and generic functions), it also presents an original coherency protocol for shared mutable variables.
We first recall, in Section 1, the main features of our Scheme-based, concurrent, distributed and computation-oriented language already presented in more details and examples in [QD93].
Section 2 explains how to systematically implement a concurrent and distributed interpreter for that language, using a set of program transformations combining Abstract Continuation Passing Style (ACPS) and Object-Oriented Lifting.
The originality of this implementation is that it chiefly uses objects and generic functions in a style that allows to concentrate the problems related to concurrency and migration of computations into the sole discriminating behavior of generic functions.
ACPS is not only used to reify continuations but also to enforce locality of computations in presence of distal objects.
In Section 3, we propose a new (to our knowledge) protocol to manage shared mutable variables.
This protocol enhances [MSRN92], does not require atomic broadcast, tolerates short communication breakdowns and uses bounded circular clocks.
This result comes from the use of a distributed GC (which allows us to maintain an approximation of Global Virtual Time) and from the exploitation of causality as stated by continuations.
To give a continuation a value (and a store) clearly expresses that the computations that are present in the continuation causally depend on the invoker of the continuation.
Finally the computation-orientation of our language and mainly the ability to control groups of threads, concurrently running on multiple sites for the completion of the evaluation of a single expression, is shortly sketched in Section 4.
As usual, related works and conclusions end this paper.

Related Results

RANULF HIGDEN'S POLYCHRONICON AND CONTINUATIONS: TEXTS AND MANUSCRIPTS
RANULF HIGDEN'S POLYCHRONICON AND CONTINUATIONS: TEXTS AND MANUSCRIPTS
Ranulf Higden's Polychronicon was the most widely read Latin chronicle of late medieval England. It (and its later continuations) influenced the production of several major chronic...
Continuations and concurrency
Continuations and concurrency
Continuations have proven to be useful for implementing a variety of control structures, including exception handling facilities and breadth-first searching algorithms. However, tr...
Macroeconomic determinants of fiscal policy in East Africa: a panel causality analysis
Macroeconomic determinants of fiscal policy in East Africa: a panel causality analysis
PurposeThis study investigates the dynamic causality linkages between fiscal deficits and selected macroeconomic indicators in a panel of five East African Community countries.Desi...
Relationship between Oil Prices and Russia Exchange Indices: Analysis of Frequency Causality
Relationship between Oil Prices and Russia Exchange Indices: Analysis of Frequency Causality
One of the important research topics is the potential impact of changes in oil supply and demand on current and future price movements or financial market instruments. Especially i...
Epistemic Causality and Hard Uncertainty: A Keynesian Approach
Epistemic Causality and Hard Uncertainty: A Keynesian Approach
The interplay of epistemic and empiric conditions of human behaviour plays a crucial role in economic causality but it is not satisfactorily analysed by the existing approaches to ...
Locality-Aware CTA Clustering for Modern GPUs
Locality-Aware CTA Clustering for Modern GPUs
Cache is designed to exploit locality; however, the role of on-chip L1 data caches on modern GPUs is often awkward. The locality among global memory requests from different SMs (St...
Locality at the Interface
Locality at the Interface
There are many approaches to locality, which differ in how they answer a central question: where do locality constraints originate? All available theories successfully explain spec...

Back to Top