Modular visualization environments: past, present, and future
ACM SIGGRAPH Computer Graphics - Special focus: modular visualization environments (MVEs)
SCIRun: a scientific programming environment for computational steering
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
The dataflow visualization pipeline as a problem solving environment
Proceedings of the Eurographics workshop on Virtual environments and scientific visualization '96
Multilevel algorithms for multi-constraint graph partitioning
SC '98 Proceedings of the 1998 ACM/IEEE conference on Supercomputing
Optimisation of component-based applications within a grid environment
Proceedings of the 2001 ACM/IEEE conference on Supercomputing
Chimera: AVirtual Data System for Representing, Querying, and Automating Data Derivation
SSDBM '02 Proceedings of the 14th International Conference on Scientific and Statistical Database Management
Delayed Evaluation, Self-optimising Software Components as a Programming Model
Euro-Par '02 Proceedings of the 8th International Euro-Par Conference on Parallel Processing
Efficient Interprocedural Data Placement Optimisation in a Parallel Library
LCR '98 Selected Papers from the 4th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Overcoming barriers to restructuring in a modular visualisation environment
LCR '04 Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems
Optimising Java RMI programs by communication restructuring
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
An Introduction to Python
Generation and optimisation of code using Coxeter lattice paths
Proceedings of the 2007 international workshop on Parallel symbolic computation
Explicit Dependence Metadata in an Active Visual Effects Library
Languages and Compilers for Parallel Computing
Hi-index | 0.00 |
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.