Skip to main content

A Domain-Specific Interpreter for Parallelizing a Large Mixed-Language Visualisation Application

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4339))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. BLAST Forum: Basic linear algebra subprograms technical forum standard (2001), Available via, http://www.netlib.org/blas/blas-forum

  2. Message Passing Interface Forum: MPI: A Message Passing Interface Standard. University of Tenessee, Knoxville, Tenessee, Version 1.1 (1995)

    Google Scholar 

  3. Kitware, Inc.: The VTK User’s Guide: VTK 4.2 (2003)

    Google Scholar 

  4. Schroeder, W., Martin, K., Lorensen, B.: The Visualization Toolkit: An Object- Oriented Approach To 3D Graphics, 3rd edn. Kitware, Inc. (2002)

    Google Scholar 

  5. Ramachandran, P.: MayaVi: A free tool for CFD data visualization. In: 4th Annual CFD Symposium, Aeronautical Society of India (2001), http://mayavi.sourceforge.net

  6. van Rossum, G., Fred, L., Drake, J.: An Introduction to Python. Network Theory Ltd. (2003)

    Google Scholar 

  7. Karypis, G., Kumar, V.: Multilevel algorithms for multi-constraint graph partitioning. In: Supercomputing 1998, pp. 1–13. IEEE Computer Society, Los Alamitos (1998)

    Google Scholar 

  8. 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

    Google Scholar 

  9. Cameron, G.: Modular visualization environments: Past, present, and future. Computer Graphics 29, 3–4 (1995)

    Article  Google Scholar 

  10. Parker, S.G., Johnson, C.R.: SCIRun: A scientific programming environment for computational steering. In: Proceedings of Supercomputing 1995 (1995)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Cignoni, P., Montani, C., Scopigno, R.: MagicSphere: An insight tool for 3D data visualization. Computer Graphics Forum 13, C/317–C/328 (1994)

    Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. 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)

    Chapter  Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics