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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
BLAST Forum: Basic linear algebra subprograms technical forum standard (2001), Available via, http://www.netlib.org/blas/blas-forum
Message Passing Interface Forum: MPI: A Message Passing Interface Standard. University of Tenessee, Knoxville, Tenessee, Version 1.1 (1995)
Kitware, Inc.: The VTK User’s Guide: VTK 4.2 (2003)
Schroeder, W., Martin, K., Lorensen, B.: The Visualization Toolkit: An Object- Oriented Approach To 3D Graphics, 3rd edn. Kitware, Inc. (2002)
Ramachandran, P.: MayaVi: A free tool for CFD data visualization. In: 4th Annual CFD Symposium, Aeronautical Society of India (2001), http://mayavi.sourceforge.net
van Rossum, G., Fred, L., Drake, J.: An Introduction to Python. Network Theory Ltd. (2003)
Karypis, G., Kumar, V.: Multilevel algorithms for multi-constraint graph partitioning. In: Supercomputing 1998, pp. 1–13. IEEE Computer Society, Los Alamitos (1998)
Beckmann, O., Field, A.J., Gorman, G., Huff, A., Hull, M., Kelly, P.H.J.: Overcoming barriers to restructuring in a modular visualisation environment. In: Cox, A., Subhlok, J. (eds.) LCR 2004: Languages, Compilers and Runtime Support for Scalable Systems (2004) ACM Digital Library
Cameron, G.: Modular visualization environments: Past, present, and future. Computer Graphics 29, 3–4 (1995)
Parker, S.G., Johnson, C.R.: SCIRun: A scientific programming environment for computational steering. In: Proceedings of Supercomputing 1995 (1995)
Wright, H., Brodlie, K., Brown, M.: The dataflow visualization pipeline as a problem solving environment. In: Virtual Environments and Scientific Visualization 1996, pp. 267–276. Springer, Heidelberg (1996)
Johnson, C.R., Parker, S.G., Weinstein, D.: Large-Scale Computational Science Applications Using the SCIRun Problem Solving Environment. In: ISC 2000: International Supercomputer Conference, Mannheim, Germany (2000)
Foster, I., Vöckler, J., Wilde, M., Zhao, Y.: Chimera: A virtual data system for representing, querying, and automating data derivation. In: 14th International Conference on Scientific and Statistical Database Management, SSDBM 2002 (2002)
Cignoni, P., Montani, C., Scopigno, R.: MagicSphere: An insight tool for 3D data visualization. Computer Graphics Forum 13, C/317–C/328 (1994)
Beckmann, O., Kelly, P.H.J.: Efficient interprocedural data placement optimisation in a parallel library. In: O’Hallaron, D.R. (ed.) LCR 1998. LNCS, vol. 1511, pp. 123–138. Springer, Heidelberg (1998)
Liniker, P., Beckmann, O., Kelly, P.H.J.: Delayed evaluation self-optimising software components as a programming model. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 666–673. Springer, Heidelberg (2002)
Yeung, K.C., Kelly, P.H.J.: Optimising Java RMI programs by communication restructuring. In: Endler, M., Schmidt, D.C. (eds.) Middleware 2003. LNCS, vol. 2672. Springer, Heidelberg (2003)
Furmento, N., Mayer, A., McGough, S., Newhouse, S., Field, T., Darlington, J.: Optimisation of component-based applications within a grid environment. In: Supercomputing 2001 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Osmond, K., Beckmann, O., Field, A.J., Kelly, P.H.J. (2006). A Domain-Specific Interpreter for Parallelizing a Large Mixed-Language Visualisation Application. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_24
Download citation
DOI: https://doi.org/10.1007/978-3-540-69330-7_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69329-1
Online ISBN: 978-3-540-69330-7
eBook Packages: Computer ScienceComputer Science (R0)