X10 (programming language)
Paradigm(s) | Object-oriented |
---|---|
Appeared in | 2004 |
Designed by | Kemal Ebcioğlu, Vijay Saraswat, and Vivek Sarkar |
Developer | IBM |
Stable release | 2.2.1 (September 29, 2011 | )
Typing discipline | Static, strong, safe |
Influenced by | Java |
OS | IBM AIX, Linux, Mac OS X, Windows |
License | Eclipse Public License 1.0 |
Usual filename extensions | .x10 |
Website | x10-lang.org |
X10 is a programming language being developed by IBM at the Thomas J. Watson Research Center as part of the Productive, Easy-to-use, Reliable Computing System (PERCS) project funded by DARPA's High Productivity Computing Systems (HPCS) program. Its primary authors are Kemal Ebcioğlu, Vijay Saraswat, and Vivek Sarkar.[1]
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.[3]
See also
- Partitioned global address space
- Unified Parallel C
- Fortress (programming language)
- Co-array Fortran
- Chapel programming language
- Concurrency (computer science)
- Parallel programming model
- Non-blocking synchronization
References
- ^ Ebcioğlu, Kemal; Saraswat, Vijay; Sarkar, Vivek, "X10: "Programming for Hierarchical Parallelism and NonUniform Data Access"
- ^ Saraswat, Vijay; Bloom, Bard; Peshansky, Igor; Tardieu, Olivier; Grove, David, "Report on the Programming Language X10: Version 2.1", October 18, 2010
- ^ Biever, C. "Computer revolution poses problems for programmers", New Scientist (Vol 193, Number 2594)
External links
- Official website
- X10 language specification
- Introduction to X10 (lecture notes, Fall 2009)
- X10DT setup in Eclipse
- X10 Tutorial (slides)
- X10 user mailing list
- Overview of PGAS languages
- Principles and Practice of Parallel Programming in X10 (course page, Fall 2009)
- Vivek Sarkar's X10 slides
- HPCS program
- GPLed X10 prototype
- A simple streaming example in X10
- FFT in X10
- LU in X10
- HPC and NAS benchmarks