A domain-specific interpreter for parallelizing a large mixed-language visualisation application

  • Authors:
  • Karen Osmond;Olav Beckmann;Anthony J. Field;Paul H. J. Kelly

  • Affiliations:
  • Department of Computing, Imperial College London, London, United Kingdom;Department of Computing, Imperial College London, London, United Kingdom;Department of Computing, Imperial College London, London, United Kingdom;Department of Computing, Imperial College London, London, United Kingdom

  • Venue:
  • LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a technique for performing domain-specific optimisation based on the formation of an execution plan from calls made to a domain-specific library. The idea is to interpose a proxy layer between the application and the library that delays execution of the library code and, in so doing, captures a recipe for the computation required. This creates the opportunity for a “domain-specific interpreter” to analyse the recipe and generate an optimised execution plan. We demonstrate the idea by showing how it can be used to implement coarse grained tiling and parallelisation optimisations in MayaVi, a 44,000-line visualisation application written in Python and VTK, with no change to the MayaVi code base. We present a generic mechanism for interposing a domain-specific interpreter in Python applications, together with experimental results demonstrating the technique's effectiveness in the context of MayaVi. For certain visualisation problems, in particular the rendering of isosurfaces in an unstructured mesh fluid flow simulation, we demonstrate significant speedups from coarse grained tiling, and from both SMP and distributed-memory parallelisation.