X10

Introduction

X10 is a new programming language being developed at IBM Research in collaboration with academic partners. The X10 effort is part of the IBM PERCS project (Productive Easy-to-use Reliable Computer Systems) in the DARPA program on High Productivity Computer Systems.
X10 is a type-safe, parallel object-oriented language. It targets parallel systems with multi-core SMP nodes interconnected in scalable cluster configurations. A member of the Partitioned Global Address Space (PGAS) family of languages, X10 allows the programmer to explicitly manage locality via Places, lightweight activities embodied in async, constructs for termination detection (finish) and phased computation (clocks), and the manipulation of global arrays and data structures.

X10 is designed specifically for parallel programming using the partitioned global address space (PGAS) model. A computation is divided among a set of places, each of which holds some data and hosts one or more activities that operate on those data. It supports a constrained type system for object-oriented programming, as well as user-defined primitive struct types; globally distributed arrays, and structured and unstructured parallelism. [2]
X10 uses the concept of parent and child relationships for activities to prevent the lock stalemate that can occur when two or more processes wait for each other to finish before they can complete. An activity may spawn one or more child activities, which may themselves have children. Children cannot wait for a parent to finish, but a parent can wait for a child using the finish command.

Usage/Adoption

The language is new and is still evolving. Its previous implementation was described as experimental and its latest release is not mature enough for production use.

License: Eclipse Public License

Additional Information

http://en.wikipedia.org/wiki/X10_(programming_language)
http://www.cs.purdue.edu/homes/xinb/cx10/CX10Report/
http://www.prace-project.eu/documents/15_x10_wl.pdf

  • Charles, P., Donawa, C., Ebcioglu, K., Grothoff, C., KIELSTRA, A., Sarkar, V., and Praun, C. V. X10: An object-oriented approach to non-uniform cluster computing. In Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) (Oct. 2005), pp. 519–538
  • Vijay Saraswat et al. The X10 language specification. Technical report, IBM T.J. Watson Research Center, 2010