Abstract
Although applications of functional programming are diverse, most examples deal with modest amounts of data – no more than a few megabytes. This paper describes how Haskell has been used to address a challenging astrophysics visualization problem, where the complete uncompressed dataset is nearly a terabyte. Our solution makes extensive use of three novel domain-specific languages: to specify data resources, to abstract over rendering operations, and most significantly, to design the desired visualization. The result is a powerful framework for time-varying multi-field visualization. This approach represents a significant departure from standard practices in the visualization field, and has application well beyond the original problem. That our solution consists of less than 4.5K lines of code is itself a notable result. This paper motivates and describes the overall architecture of our solution, and technical features of the DSLs that are used in place of the traditional visualization pipeline.
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
McCormick, B.H., DeFanti, T.A., Brown, M.D.: Visualization in scientific computing. Computer Graphics 21(6) (1987)
Haber, R.B., Lucas, B., Collins, N.: A data model for scientific visualization with provision for regular and irregular grids. In: Proceedings of Visualization 1991. IEEE Computer Society Press, Los Alamitos (1991)
Schroeder, W., Martin, K., Lorensen, B.: The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics, 2nd edn. Prentice-Hall, Englewood Cliffs (1998), http://www.vtk.org/
Rhyne, T.M., Tory, M., Munzner, T., Ward, M., Johnson, C., Laidlaw, D.W.: Information and scientific visualization: Separate but equal or happy together at last. In: Proc. Visualization. IEEE Computer Society Press, Los Alamitos (2003)
Whalen, D., Norman, M.L.: Competition data set and description. IEEE Visualization Design Contest (2008), http://vis.computer.org/VisWeek2008/vis/contests.html
Duke, D.J., Wallace, M., Borgo, R., Runciman, C.: Fine-grained visualization pipelines and lazy functional languages. Transactions on Visualization and Computer Graphics 12(5), 973–980 (2006)
Duke, D.J., Borgo, R., Runciman, C., Wallace, M.: Experience report: Visualizing data through functional pipelines. In: Proc. Intl.Conf. on Functional Programming. ACM Press, New York (2008)
Borgo, R., Duke, D.J., Wallace, M., Runciman, C.: Multi-cultural visualization: how functional programming can enrich visualization (and vice versa). In: Proc. Vision, Modeling, and Visualization. AKA Verlag - IOS Press (2006)
Spence, R.: Information Visualization. Addison-Wesley, Reading (2000)
Runciman, C., Naylor, M., Lindblad, F.: SmallCheck and Lazy SmallCheck: exhaustive testing for small values. In: Proc. of the ACM SIGPLAN Symposium on Haskell, pp. 37–48. ACM Press, New York (2008)
Khronos Group: OpenGL—the industry foundation for high-performance graphics, http://www.opengl.org/
Wernecke, J.: The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor. Pearson, London (1994)
Courtney, A., Nilsson, H., Peterson, J.: The Yampa arcade. In: Proc. Haskell Workshop, pp. 7–18. ACM Press, New York (2003)
Coutts, D., Stewart, D., Leshchinskiy, R.: Rewriting Haskell strings. In: Practical Applications of Declarative Languages (January 2007)
Henderson, P.: Functional geometry. Higher-order and Symbolic Computation 15, 349–365 (2002)
Arya, K.: A functional approach to animation. Computer Graphics Forum 5(4), 297–311 (1986)
Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. Journal of Functional Programming 13(2) (2003)
Elliott, C.: Programming graphics processors functionally. In: Proc. of the Haskell Workshop. ACM Press, New York (2004)
Heard, J.: A gentle introduction to functional information visualization. ACM SIGPLAN Developers’ Track on Functional Programming (DEFUN) (2008), http://bluheron.europa.renci.org/docs/BeautifulCode.pdf
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Duke, D.J., Borgo, R., Wallace, M., Runciman, C. (2008). Huge Data But Small Programs: Visualization Design via Multiple Embedded DSLs. In: Gill, A., Swift, T. (eds) Practical Aspects of Declarative Languages. PADL 2009. Lecture Notes in Computer Science, vol 5418. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-92995-6_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-92995-6_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-92994-9
Online ISBN: 978-3-540-92995-6
eBook Packages: Computer ScienceComputer Science (R0)