skip to main content
research-article

Diderot: a parallel DSL for image analysis and visualization

Published:11 June 2012Publication History
Skip Abstract Section

Abstract

Research scientists and medical professionals use imaging technology, such as computed tomography (CT) and magnetic resonance imaging (MRI) to measure a wide variety of biological and physical objects. The increasing sophistication of imaging technology creates demand for equally sophisticated computational techniques to analyze and visualize the image data. Analysis and visualization codes are often crafted for a specific experiment or set of images, thus imaging scientists need support for quickly developing codes that are reliable, robust, and efficient.

In this paper, we present the design and implementation of Diderot, which is a parallel domain-specific language for biomedical image analysis and visualization. Diderot supports a high-level model of computation that is based on continuous tensor fields. These tensor fields are reconstructed from discrete image data using separable convolution kernels, but may also be defined by applying higher-order operations, such as differentiation (∇). Early experiments demonstrate that Diderot provides both a high-level concise notation for image analysis and visualization algorithms, as well as high sequential and parallel performance.

References

  1. A. W. Appel and T. Jim. Shrinking lambda expressions in linear time. JFP, 7: 515--540, Sept. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. R. Aylward and E. Bullitt. Initialization, noise, singularities, and scale in height ridge traversal for tubular object centerline extraction. IEEE TMI, 21 (2): 61--75, Feb 2002.Google ScholarGoogle ScholarCross RefCross Ref
  3. R. Bartels, J. Beatty, and B. Barsky. An Introduction to Splines for Use in Computer Graphics and Geometric Modeling. Morgan Kaufmann Publishers, New York, NY, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. J. Basser, S. Pajevic, C. Pierpaoli, J. Duda, and A. Aldroubi. In vivo fiber tractograpy using DT-MRI data. phMagnetic Resonance in Medicine, 44: 625--632, 2000.Google ScholarGoogle Scholar
  5. P. Briggs, K. D. Cooper, , and L. T. Simpson. Value numbering. SP&E, 27 (6): 701--724, June 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. K. J. Brown, A. K. Sujeeth, H. Lee, T. Rompf, H. Chafi, M. Odersky, and K. Olukotun. A heterogeneous parallel framework for domain-specific languages. In PACT '11, Oct. 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Cabral and L. C. Leedom. Imaging vector fields using line integral convolution. In SIGGRAPH '93, pages 263--270, New York, NY, Aug. 1993. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H. Chafi, Z. Devito, A. Moors, T. Rompf, A. K. Sujeeth, P. Hanrahan, M. Odersky, and K. Olukotun. Language virtualization for heterogeneous parallel computing. In OOPSLA '10, pages 835--847, Oct. 2010. Part of the Onward! 2010 Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM TOPLAS, 13 (4): 451--490, Oct 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Z. DeVito, N. Joubert, F. Palacios, S. Oakley, M. Medina, M. Barrientos, E. Elsen, F. Ham, A. Aiken, K. Duraisamy, E. Darve, J. Alonso, and P. Hanrahan. Liszt: A domain specific language for building portable mesh-based PDE solvers. In SC '11, pages 1--12, Nov. 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Eberly. Ridges in Image and Data Analysis. Kluwer Academic Publishers, Boston, MA, 1996.Google ScholarGoogle Scholar
  12. Using vector instructions through built-in functions. Free Software Foundation. URL http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html.Google ScholarGoogle Scholar
  13. M. Hašan, J. Wolfgang, G. Chen, and H. Pfister. Shadie: A domain-specific language for volume visualization. Draft paper; available at http://miloshasan.net/Shadie/shadie.pdf, 2010.Google ScholarGoogle Scholar
  14. L. Ibanez and W. Schroeder. phThe ITK Software Guide. Kitware Inc., 2005.Google ScholarGoogle Scholar
  15. IDL: Interactive Data Language. ITT Visual Information Solutions. http://www.ittvis.com/ProductServices/IDL.aspx.Google ScholarGoogle Scholar
  16. The OpenCL Specification (Version 1.1). Khronos OpenCL Working Group, 2010. Available from http://www.khronos.org/opencl.Google ScholarGoogle Scholar
  17. G. Kindlmann, R. Whitaker, T. Tasdizen, and T. Moller. Curvature-based transfer functions for direct volume rendering: Methods and applications. In VIZ '03, pages 67--74, Los Alamitos, CA, Oct. 2003. IEEE Computer Society Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. MATLAB -- The language of technical computing. The Mathworks, Inc. http://www.mathworks.com/products/matlab.Google ScholarGoogle Scholar
  19. P. McCormick, J. Inman, J. Ahrens, J. Mohd-Yusof, G. Roth, and S. Cummins. Scout: A data-parallel programming language for graphics processors. Journal of Parallel Computing, 33: 648--662, Nov. 2007. ISSN 0167-8191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E. H. W. Meijering, W. J. Niessen, and M. A. Viergever. Quantitative evaluation of convolution-based methods for medical image interpolation. phMedical Image Analysis, 5 (2): 111--126, June 2001.Google ScholarGoogle Scholar
  21. M. D. Meyer, P. Georgel, and R. T. Whitaker. Robust particle systems for curvature dependent sampling of implicit surfaces. In SMI '05, pages 124--133, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. NVIDIA CUDA C Programming Guide (Version 4.0). NVIDIA, May 2011. Available from http://developer.nvidia.com/category/zone/cuda-zone.Google ScholarGoogle Scholar
  23. M. Puschel, J. Moura, J. Johnson, D. Padua, M. Veloso, B. Singer, J. Xiong, F. Franchetti, A. Gacic, Y. Voronenko, K. Chen, R. Johnson, and N. Rizzolo. SPIRAL: Code generation for DSP transforms. Proc. of the IEEE, 93 (2): 232--275, Feb. 2005.Google ScholarGoogle ScholarCross RefCross Ref
  24. G. X. Ritter and P. D. Gader. Image algebra techniques for parallel image processing. JPDC, 4 (1): 7--44, Feb. 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. NumPy: Numerical Python. Scientific Tools for Python. http://numpy.scipy.org.Google ScholarGoogle Scholar
  26. D. Skillicorn, J. M. Hill, and W. McColl. Questions and answers about BSP. Scientific Programming, 6 (3): 249--274, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  27. B. Spain. phTensor Calculus: A Concise Course. Dover, Mineola, NY, 2003.Google ScholarGoogle Scholar
  28. A. K. Sujeeth, H. Lee, K. J. Brown, T. Rompf, H. Chafi, M. Wu, A. R. Atreya, M. Odersky, and K. Olukotun. Optiml: An implicitly parallel domain-specific language for machine learning. In ICML '11, June 2011.Google ScholarGoogle Scholar
  29. NRRD: Nearly Raw Raster Data. Teem Library, http://teem.sf.net/nrrd.Google ScholarGoogle Scholar
  30. Teem website at http://teem.sf.net. Teem Library.Google ScholarGoogle Scholar
  31. L. G. Valiant. A bridging model for parallel computation. CACM, 33 (8): 103--111, Aug. 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Diderot: a parallel DSL for image analysis and visualization

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 47, Issue 6
              PLDI '12
              June 2012
              534 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2345156
              Issue’s Table of Contents
              • cover image ACM Conferences
                PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
                June 2012
                572 pages
                ISBN:9781450312059
                DOI:10.1145/2254064

              Copyright © 2012 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 11 June 2012

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!