Skip to main content

Huge Data But Small Programs: Visualization Design via Multiple Embedded DSLs

  • Conference paper
Practical Aspects of Declarative Languages (PADL 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5418))

Included in the following conference series:

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.

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. McCormick, B.H., DeFanti, T.A., Brown, M.D.: Visualization in scientific computing. Computer Graphics 21(6) (1987)

    Google Scholar 

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

    Google Scholar 

  3. 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/

    Google Scholar 

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

    Google Scholar 

  5. Whalen, D., Norman, M.L.: Competition data set and description. IEEE Visualization Design Contest (2008), http://vis.computer.org/VisWeek2008/vis/contests.html

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  9. Spence, R.: Information Visualization. Addison-Wesley, Reading (2000)

    Google Scholar 

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

    Chapter  Google Scholar 

  11. Khronos Group: OpenGL—the industry foundation for high-performance graphics, http://www.opengl.org/

  12. Wernecke, J.: The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor. Pearson, London (1994)

    Google Scholar 

  13. Courtney, A., Nilsson, H., Peterson, J.: The Yampa arcade. In: Proc. Haskell Workshop, pp. 7–18. ACM Press, New York (2003)

    Google Scholar 

  14. Coutts, D., Stewart, D., Leshchinskiy, R.: Rewriting Haskell strings. In: Practical Applications of Declarative Languages (January 2007)

    Google Scholar 

  15. Henderson, P.: Functional geometry. Higher-order and Symbolic Computation 15, 349–365 (2002)

    Article  MATH  Google Scholar 

  16. Arya, K.: A functional approach to animation. Computer Graphics Forum 5(4), 297–311 (1986)

    Article  Google Scholar 

  17. Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. Journal of Functional Programming 13(2) (2003)

    Google Scholar 

  18. Elliott, C.: Programming graphics processors functionally. In: Proc. of the Haskell Workshop. ACM Press, New York (2004)

    Google Scholar 

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

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics