Seattle Conference on Scalability 2008: Chapel: Productive Parallel Programming at Scale
Chapel is a new programming language being developed by Cray Inc. as part of the DARPA-led High Productivity Computing Systems Program (HPCS). Chapel strives to increase parallel programmability for supercomputer users by raising the level of abstraction compared to current parallel programming models. Language concepts that support this goal include abstractions for globally distributed data aggregates and anonymized task-based parallelism. Since locality is crucial when computing at large scales, Chapel also supports language concepts for reasoning about architectural locality on the target machine, including control over data placement and affinity between tasks and data. In contrast to previous higher-level parallel languages, Chapel is designed to be a "multi-resolution language", in which users can start by writing very abstract code and then incrementally add more detail until they are as close to the machine as that portion of their code requires. Although Chapel was not specifically designed for datacenter-oriented applications, many of its concepts should also be quite suitable for this domain given the importance of distributed data, concurrency, and affinity. In this talk, I will provide an overview of Chapel, explain how it was designed to help the HPC community, and describe its status. I will also attempt to make ties between its concepts and how they might be useful in a datacenter-based programming environment.
Speaker: Bradford Chamberlain
Bradford Chamberlain is a Principal Engineer at Cray Inc., where he works on parallel programming models, focusing primarily on the design and implementation of the Chapel parallel language in his role as technical lead for that project. Before starting at Cray in 2002, he spent a year at a start-up working at the opposite end of the hardware spectrum to design a parallel language (SilverC) for reconfigurable embedded hardware. Brad received his Ph.D. in Computer Science & Engineering from the University of Washington in 2001 where his work focused on the design and implementation of the ZPL parallel array language, particularly on implementing and generalizing its region concept – a first-class index set representation for programming with distributed arrays. While at UW, he also dabbled in algorithms for accelerating the rendering of complex 3D scenes. Brad remains associated with the University of Washington as an affiliate faculty member and most recently co-led a seminar there that focused on the design of Chapel. He received his Bachelor's degree in Computer Science from Stanford University with honors in 1992.
Slides for this talk are available at http://groups.google.com/group/seattle-scalability-conference
Google Tech Talks
June 14, 2008