October 06, 2004
Hilton Suites Toronto/Markham Conference Centre
Markham, ON
Associated with CASCON 2004
(http://www.cas.ibm.com/cascon)
X10 --- New opportunities for Compiler-Driven Performance via a new Programming Model
Kemal Ebcioglu, Vijay Saraswat, Vivek Sarkar - IBM T.J. Watson Research Center
X10 is an experimental modern object-oriented programming language
currently under development at IBM. It is intended for
high-performance, high-productivity programming of high-end computer
systems with hierarchical heterogeneous levels of parallelism (e.g.,
cluster, SMP, co-processors, and SMT levels) that exhibit large
nonuniformities in data-access latency and bandwidth. Compared to
Java, X10 removes threads, lock-based synchronization, built-in
primitive classes and arrays, and adds places (as a locus for
activities operating on local data), user-definable value types,
atomic sections, asynchronous activities and futures, multidimensional
arrays (over regions and distributions) and clocks for repeated
quiescence detection of dynamically varying, data-dependent sets
of activities. X10 is a strongly typed language. The X10 type system
supports generic type-abstraction (over value and reference types), is
place- and clock-sensitive and guarantees the absence of deadlock (for
programs without conditional atomic sections), even in the presence of
multiple clocks.
This talk introduces the language and outlines how the language
constructs can be used to support existing and new programming
paradigms for engineering/scientific applications as well as
commercial server-side applications. We then contrast the
opportunities for compiler optimizations in this new language,
compared to message-passing languages (C/Fortran + MPI), global array
languages (Co-array Fortran, Titanium, UPC, ZPL), and multithreaded
languages (Java, Cilk, OpenMP). The initial implementation of X10 is
currently under development.
X10 is being developed in the context of the IBM PERCS (Productive
Easy-to-use Reliable Computing Systems) project funded by DARPA. X10
has been designed with input from David Bacon, Bob Blainey, Perry
Cheng, Julian Dolby, Guang Gao (U Delaware), Allan Kielstra, Robert
O'Callahan, Filip Pizlo (Purdue), V.T.Rajan, Lawrence Rauchwerger
(Texas A&M), Mandana Vaziri and Jan Vitek (Purdue).
Presentation Slides.