In Fall 2001, DARPA announced the High Productivity Computing Systems (HPCS) program with a new challenge for the computer industry — to develop and deliver new technologies that improve application development productivity for high performance computing by an order of magnitude in 2010 relative to 2002’s technologies. During 2002-2007, Dr. Sarkar led the programming models, tools, and productivity research agenda for IBM’s PERCS (Productive Easy-to-use Reliable Computing Systems) project in this DARPA program. The proposed research agenda included ideas for a new programming model based on unifying multithreading with asynchronous communication in a global address space, and for a new integrated development environment based on tools for concurrency analysis and performance tuning. These ideas led to the development of the X10 language and the Eclipse Parallel Tools Platform (PTP) open source project respectively. Several projects were also undertaken between IBM and university partners to explore different technologies for improved productivity including UC Berkeley (Ras Bodik’s research on programming by sketching), U Delaware (Guang Gao’s research on OpenMP productivity), UT Austin (Jim Browne’s research on productivity through componentization), U Illinois (Ralph Johnson’s research on refactoring of FORTRAN programs), and Purdue University (Jan Vitek’s research on cluster implementations of X10).
The X10 language project has grown significantly since its initial open source release in 2006. The OOPLSA 2005 Onward! publication on X10 is perhaps the best available summary of the original Java-based definition for the language. A list of Dr. Sarkar’s publications related to X10 can be found here. For the latest definition of the X10 language and X10-related publications, see the X10 web site.
The chart below shows some of the results from a unique human productivity study held at U. Pittsburgh in May 2005 to evaluate the productivity impact of different programming models (MPI, UPC, and X10), summarized in the following publication:
- An Experiment in Measuring the Productivity of Three Parallel Programming Languages. Kemal Ebcioglu, Vivek Sarkar, Tarek El-Ghazawi, John Urbanic. HPCA Workshop on Productivity and Performance in High-End Computing (P- PHEC 2006), held in conjunction with HPCA 2006, Feb 2006.