Tue Feb 20, 2007, 11:00-12:00, 4750 Boelter Hall X10: A High-Productivity Approach to Programming Multi-Core Systems Vivek Sarkar IBM Watson It is now well established that current and future computer systems are rapidly moving from single-core to multi-core processors so as to use parallelism instead of frequency scaling as the foundation for increased compute capacity. Unlike previous generations of hardware evolution, this shift will have a major impact on existing software. Current language facilities for concurrent programming are inadequate for addressing the needs of multi-core systems because they do not support general parallel structures combined with non-uniform models of data access. We have designed a modern object-oriented language, X10 (x10.sf.net), for high performance, high productivity parallel programming. 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 inter-place global data structures. We present an overview of the X10 programming model and language, experiences with our reference implementation, and discuss future directions for both homogeneous and heterogeneous multi-core architectures. This is joint work with other members of the X10 core team, including Vijay Saraswat, Rajkishore Barik, Philippe Charles , Chris Donawa, Robert Fuhrer, Allan Kielstra, Nate Nystrom, Igor Peshansky, Christoph von Praun, Tong Wen. BIO: Vivek Sarkar is Senior Manager of the Programming Technologies Department in the IBM Research Division, a member of the IBM Academy of Technology, and an ACM Distinguished Scientist. The projects under way in his department span the areas of 1) Programming Models and Programming Language Design: Collage, DALI/XJ, X10, 2) Development Tools: Continuous Software Quality (includes SAFE, Security Analysis, Scripting Analysis), PERCS Parallel Tools, SAFARI, 3) Deployment, Execution, Optimization: Dynamic Optimization, Jikes RVM, Metronome,, PDS/Mirage. Vivek's responsibilities also include leading the research efforts in Programming Model, Tools, and Productivity in the IBM PERCS project as part of the DARPA-funded program on High Productivity Computing Systems. Vivek's personal research interest is in advancing the state of the art in high-level programming language design and implementation so as to fully exploit the latest advances in processor hardware. This includes advances in programming tools, optimizing compilers, and parallelizing compilers to deliver improved productivity and, performance benefits to users of high-performance systems. In the past, Vivek 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. Vivek 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 sabbatical as a visiting associate professor at MIT, where he was a founding member of the MIT RAW multi-core project. Host: Jens Palsberg