Abstract
Developers need to be able to write code using high-level, reusable black-box components. Also essential is confidence that code can be mapped to an efficient implementation on the available hardware, with robust high performance. In this paper we present a prototype component library being developed to deliver this for industrial visual effects applications. Components are based on abstract algorithmic skeletons that provide metadata characterizing data accesses and dependence constraints. Metadata is combined at run-time to build a polytope representation which supports aggressive inter-component loop fusion. We present results for a wavelet-transform-based degraining filter running on multicore PC hardware, demonstrating 3.4x–5.3x speed-ups, improved parallel efficiency and a 30% reduction in memory consumption without compromising the program structure.
This work was partly funded by the EPSRC (ref EP/E002412).
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
Ashby, T.J., Kennedy, A.D., O’Boyle, M.F.P.: Cross component optimisation in a high level category-based language. In: Danelutto, M., Vanneschi, M., Laforenza, D. (eds.) Euro-Par 2004. LNCS, vol. 3149, pp. 654–661. Springer, Heidelberg (2004)
Bacon, D.F., Graham, S.L., Sharp, O.J.: Compiler transformations for high-performance computing. ACM Comput. Surv. 26(4), 345–420 (1994)
Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: PACT 13 IEEE International Conference on Parallel Architecture and Compilation Techniques, Juan-les-Pins, pp. 7–16 (September 2004)
Beckmann, O., Houghton, A., Mellor, M., Kelly, P.: Runtime code generation in C++ as a foundation for domain-specific optimisation. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 291–306. Springer, Heidelberg (2004)
Beckmann, O., Kelly, P., Liniker, P.: Delayed evaluation, self-optimising software components as a programming model. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 323–342. Springer, Heidelberg (2002)
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)
Benoit, A., Cole, M., Hillston, J., Gilmore, S.: Flexible skeletal programming with eSkel. In: Cunha, J.C., Medeiros, P.D. (eds.) Euro-Par 2005. LNCS, vol. 3648, pp. 761–770. Springer, Heidelberg (2005)
Bourdev, L., Jin, H.: Generic Image Library design guide (December 2006), http://opensource.adobe.com/gil/gil_design_guide.pdf
Cohen, A., Girbal, S., Parello, D., Sigler, M., Temam, O., Vasilache, N.: Facilitating the search for compositions of program transformations. In: ACM Int. Conf. on Supercomputing (ICS 2005), Boston, Massachusetts (June 2005)
Czarnecki, K., Eisenecker, U.W., Glück, R., Vandevoorde, D., Veldhuizen, T.L.: Generative programming and active libraries. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol. 1766, pp. 25–39. Springer, Heidelberg (2000)
Furmento, N., Mayer, A., McGough, S., Newhouse, S., Field, T., Darlington, J.: Optimisation of component-based applications within a grid environment. In: Supercomputing 2001: Proceedings of the 2001 ACM/IEEE conference on Supercomputing (CDROM). ACM Press, New York (2001)
Kelly, P., Beckmann, O., Field, A.J., Baden, S.: THEMIS: Component dependence metadata in adaptive parallel computations. Parallel Processing Letters 11(4) (2001)
Lengauer, C.: Loop parallelization in the polytope model. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 398–416. Springer, Heidelberg (1993)
Nicolescu, C., Jonker, P.: EASY PIPE: An “easy to use” parallel image processing environment based on algorithmic skeletons. In: IPDPS 1901: Proceedings of the 15th International Parallel & Distributed Processing Symposium, p. 114. IEEE Computer Society Press, Los Alamitos (2001)
Osmond, K., Beckmann, O., Field, A.J., Kelly, P.H.J.: A domain-specific interpreter for parallelizing a large mixed-language visualisation application. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 347–361. Springer, Heidelberg (2004)
Pop, S., Silber, G.-A., Cohen, A., Bastoul, C., Girbal, S., Vasilache, N.: GRAPHITE: Polyhedral analyses and optimizations for GCC. In: GNU Compilers Collection Developers Summit, Ottawa, Canada (2006)
Rabhi, F.A., Gorlatch, S. (eds.): Patterns and skeletons for parallel and distributed computing. Springer, London (2003)
Russell, F.P., Mellor, M.R., Kelly, P.H.J., Beckmann, O.: An active linear algebra library using delayed evaluation and runtime code generation. In: Library-Centric Software Design LCSD 2006 (2006)
Schordan, M., Quinlan, D.: A source-to-source architecture for user-defined optimizations. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 214–223. Springer, Heidelberg (2003)
Song, Y., Xu, R., Wang, C., Li, Z.: Data locality enhancement by memory reduction. In: ICS 2001: Proceedings of the 15th International Conference on Supercomputing, pp. 50–64. ACM Press, New York (2001)
De Stefano, A., Collis, B., White, P.: Synthesising and reducing film grain. Journal of Visual Communication and Image Representation 17(1), 163–182
Veldhuizen, T.L., Gannon, D.: Active libraries: Rethinking the roles of compilers and libraries. In: Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing (OO 1998). SIAM, Philadelphia (1998)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cornwall, J.L.T., Kelly, P.H.J., Parsonage, P., Nicoletti, B. (2008). Explicit Dependence Metadata in an Active Visual Effects Library. In: Adve, V., Garzarán, M.J., Petersen, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2007. Lecture Notes in Computer Science, vol 5234. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85261-2_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-85261-2_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85260-5
Online ISBN: 978-3-540-85261-2
eBook Packages: Computer ScienceComputer Science (R0)