Seminari

SEJITS – Turning Patterns-based Designs into Optimized Parallel Code

by Tim Mattson (Intel)

Wednesday, October 24, 2012 from to (Europe/Rome)
at Universe ( Sala Asinelli )
Via Ranzani, 13/2
Description
All software should be parallel software. This is the natural result of the transition to a many-core world. For a small fraction of the world’s programmers (efficiency programmers), this is not a problem and they are well served by low-level languages and OpenMP, MPI, or OpenCL. Most programmers, however, are “domain specialists” who write code. They are too busy working in their domain of choice (such as physics) to master the intricacies of each computer they use. How do we make these programmers productive without giving up performance?

The key is a clear software architecture expressed in terms of design patterns that exposes the concurrency in a problem. The resulting code is written using a patterns-based framework within a high-level, productivity language (such as Python). Then a separate system is used by a small group of efficiency programmers to translate that code into a highly optimized program. This software transformation system is called SEJITS: Selective Embedded Just In Time Specializers. 

In this talk, I will describe the overall vision behind this work, including the patterns that sit at its core. We will explore how SEJITS works and show its use for a few applications.  We’ll close with some thoughts on where this technology might evolve and hopefully move into the mainstream of parallel computing.
Material: