3.9 Article Proceedings Paper

X10: An object-oriented approach to non-uniform cluster computing

Journal

ACM SIGPLAN NOTICES
Volume 40, Issue 10, Pages 519-538

Publisher

ASSOC COMPUTING MACHINERY
DOI: 10.1145/1103845.1094852

Keywords

languages; performance; design; X10; Java; multithreading; non-uniform cluster computing (NUCC); partitioned global address space (PGAS); places; data distribution; atomic blocks; clocks; scalability; productivity

Ask authors/readers for more resources

It is now well established that the device scaling predicted by Moore's Law is no longer a viable option for increasing the clock frequency of future uniprocessor systems at the rate that had been sustained during the last two decades. As a result, future systems are rapidly moving from uniprocessor to multiprocessor configurations, so as to use parallelism instead of frequency scaling as the foundation for increased compute capacity. The dominant emerging multi processor structure for the future is a Non- Uniform Cluster Computing (NUCC) system with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in horizontally scalable cluster configurations such as blade servers. Unlike previous generations of hardware evolution, this shift will have a major impact on existing software. Current 00 language facilities for concurrent and distributed programming are inadequate for addressing the needs of NUCC systems because they do not Support the notions of non-uniform data access within a node, or of tight coupling of distributed nodes. We have designed a modern object-oriented programming language, X10, for high performance, high productivity programming of NUCC systems. A member of the partitioned global address space family of languages, X10 highlights the explicit reification of locality in the form of places; lightweight activities embodied in async, future, foreach, and ateach constructs; a construct for termination detection (finish); the use of lock-free synchronization (atomic blocks); and the manipulation of cluster-wide global data structures. We present an overview of the X10 programming model and language, experience with our reference implementation, and results from some initial productivity comparisons between the X10 and JAVA (TM) languages.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

3.9
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available