DateMay 2, 2014
Speaker Kath Knobe (
TopicPrograming in CnC for POarallel Execution
Abstract: Parallel programming is difficult for anyone but it’s particularly difficult for the domain expert who wants to focus on their domain (say finance, medical imaging or chemistry) and not on computer science. Most programming models require the user to think about and express what units of computation to execute in parallel. This is hard and depends on the target architecture. Instead, CnC requires the user to think about and express the ordering constraints among the units of computation. This is easier and depends only on the application. In fact, the user must know these constraints even to write a correct serial program. There are exactly two relationships that cause ordering constraints: producer/consumer (one computation produces data that another uses) and controller/controllee (one computation determines if another will execute). CnC is simply a way of expressing these ordering constraints. This approach not only simplifies the programmer’s problem but because the resulting program is less constrained the execution can be more efficient.

The talk will introduce CnC and present our experience with CnC LULESH, a shock hydro-dynamics application. This work was done for the DOE Exascale software stack (S-Stack) project. If time permits we may also touch on the tuning capabilities in CnC.

Kathleen Knobe worked at Compass (aka Massachusetts Computer Associates) from 1980 to 1991 designing compilers for a wide range of parallel platforms including Thinking Machines, MasPar, Alliant, Numerix, and several government projects. In 1991 she decided to finish her education. After graduating from MIT (with Bill Dally) in 1997, she joined Digital Equipment’s Cambridge Research Lab (CRL). She stayed through the DEC/Compaq/HP mergers and when CRL was absorbed into Intel. She currently works in a Technology Pathfinding and Innovation team in the Software Solutions Group at Intel.

In addition to CnC, her professional interests focus on parallelism through compiler technology, runtime system design, and language design. Her major projects include the Subspace Model of computation (a compiler internal form for parallelism), Data Optimization (compiler transformations for locality), Array Static Single Assignment form (a method of achieving for array elements the advantages that SSA has for scalars), Weak Dynamic Single Assignment form (a global method for eliminating overwriting of data to maximize scheduling flexibility), Stampede (a programming model for streaming media applications).