WG211/M15Kelly

From WG 2.11
Jump to: navigation, search

Domain-specific performance optimisations (DSOs) can prove extremely profitable. My group at Imperial has worked on six or seven DSO different projects, mostly in computational science applications. This talk aims to reflect on our experiences. One aspect, of course, is whether we have a stand-alone domain-specific language (DSL), a DSL embedded in a general host language, or an “active library” whose implementation delivers DSOs, perhaps across sequences of calls. A key question, though, is just what enables us to deliver a DSO. Is it some special semantic property deriving from the domain? Is it because the DSL abstracts from implementation details – enabling the compiler to make choices that would be committed in lower-level code? Is it that the DSL captures large-scale dataflows that are obscured when coded in a conventional general-purpose language? Is it simply that we know that particular optimisations are good for a particular context? The talk will explore this question with reference to our DSO projects in finite-element methods, unstructured meshes, linear algebra and Fourier interpolation. This is joint work with many collaborators.