Seminar by Dr. Vivek Sarkar

X10: An Object-Oriented Approach to Non-Uniform Cluster Computing

Dr. Vivek Sarkar
IBM T.J. Watson Research Center

Date:    Thu, Dec 29, 2005   
Time:    1430   
Venue:   CS 102

Abstract:

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 multiprocessor 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 OO 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.

This is joint work with other members of the X10 core team --- Vijay Saraswat, Philippe Charles, Christopher Donawa, Kemal Ebcioglu, Christian Grothoff, Allan Kielstra, Christoph von Praun.

About the Speaker:

Dr. Vivek Sarkar is Senior Manager of the Programming Technologies Department in the IBM Research Division, and is a member of the IBM Academy of Technology. The projects under way in his department span the areas of 1) Programming Models and Language Design: PERCS/X10, XJ, Symbiotic, 2) Programming Tools: Advanced Refactoring, PERCS MPI Tools, SAFE (Scalable And Flexible Error detection), and Legacy Transformation (Mastery), 3) Deployment, Optimization and Execution: Mirage/PDS (Progressive Deployment System), Metronome, and Jikes RVM. Dr. Sarkar is also responsible for coordinating Eclipse-related projects and activities in IBM Research, including the Eclipse Innovation Grants program.

Dr. Sarkar's personal research interest is in advancing the state of the art of programming language design, programming tools, and optimizing and parallelizing compilers to deliver improved productivity and performance benefits to users of high-performance systems. He leads the PERCS Programming Model and Tools project, which includes work on the X10 language and on MPI Tools. In the past, he has worked on several compiler-related projects at IBM including the PTRAN and Jikes RVM research projects at Watson, and the ASTI project at IBM Santa Teresa Laboratory which provided the foundation for high-level locality optimizations and OpenMP and HPF parallelization in IBM's XL Fortran product compilers. Dr. Sarkar has published over 75 papers in the area of optimizing and parallelizing compilers. He holds a B.Tech. degree from the Indian Institute of Technology, Kanpur, an M.S. degree from University of Wisconsin-Madison, and a Ph.D. from Stanford University. In 1997, he was on leave as a visiting associate professor at MIT, where he was a founding member of the MIT RAW project.

Back to Seminars in 2005-06