Concurrent clustered programming

27Citations
Citations of this article
20Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We present the concurrency and distribution primitives of X10, a modern, statically typed, class-based object-oriented (OO) programming language, designed for high productivity programming of scalable applications on high-end machines. The basic move in the X10 programming model is to reify locality through a notion of place, which hosts multiple data items and activities that operate on them. Aggregate objects (such as arrays) may be distributed across multiple places. Activities may dynamically spawn new activities in mulitple places and sequence them through a finish operation that detects termination of activities. Atomicity is obtained through the use of atomic blocks. Activities may repeatedly detect quiescence of a data-dependent collection of (distributed) activities through a notion of clocks, generalizing barriers. Thus X10 has a handful of orthogonal constructs for space, time, sequencing and atomicity. X10 smoothly combines and generalizes the current dominant paradigms for shared memory computing and message passing. We present a bisimulation-based operational semantics for X10 building on the formal semantics for "Middleweight Java". We establish the central theorem of X10: programs without conditional atomic blocks do not deadlock. © Springer-Verlag Berlin Heidelberg 2005.

Cite

CITATION STYLE

APA

Saraswat, V., & Jagadeesan, R. (2005). Concurrent clustered programming. In Lecture Notes in Computer Science (Vol. 3653, pp. 353–367). Springer Verlag. https://doi.org/10.1007/11539452_28

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free