Prof. Laxmikant Kale – "Raising the level of abstraction in parallel programming"
- Monday 10/27/08 at 11AM
- Siebel Center 4405
I will describe an approach to parallel programming and its evolution over the past 15 years. The principles behind this approach are:
(a) Application-driven and bottom-up development of programming abstractions.
(b) Seeking an optimal division of labor between the programmer and the system.
I will describe the evolution as a sequence of abstractions and capabilities that build upon each other, and is leading to a highly productive parallel programming methodology.
1. The foundation is message driven object-based virtualization, and the automated runtime resource
management engendered thereby. This is demonstrated in Charm++ and AMPI systems.
2. The interoperability supported and enabled by the message driven execution in this runtime is leveraged by higher level notations that simplify expression of parallelism for special patterns of communication that occur frequently in parallel applications in science and engineering. The exemplary notations are Charisma (for supporting applications with static data flow among objects) and MSA (supporting disciplined shared array accesses).
3. These abstractions are complemented by data-structure-specific frameworks, for commonly used data
structures, such as unstructured meshes.
With interoperability and concurrent composition, multiple modules written in different abstractions can cooperate effectively in a single application. I will illustrate these abstractions using production-quality CSE applications that have scaled to over 40,000 processors, in computational astronomy, biomolecular simulations, and quantum chemistry/nanotechnology, as well as a multi-disciplinary rocket simulation applications.
– Main.MichaelWolf - 08 Oct 2008