Skip to main content

A Structured Grid Solver with Polyhedral+Dataflow Representation

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 2019)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11998))

Abstract

Proto is a C++ embedded Domain Specific Library for stencil-based computations. Proto is augmented in this work with a polyhedral dataflow intermediate representation (IR). The IR exposes several promising transformations. Each IR instances produces a performance model, and source code in C++. Generated code is annotated with OpenMP or OpenACC pragmas for shared-memory or accelerator parallelism. Performance is measured on modern multicore CPU and GPU platforms.

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 EPUB and 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

References

  1. Adams, M., et al.: Chombo software package for AMR applications-design document. Technical report (2015)

    Google Scholar 

  2. Alias, C., Baray, F., Darte, A.: Bee+ cl@ k: an implementation of lattice-based array contraction in the source-to-source translator rose. In: ACM SIGPLAN Notices, vol. 42, pp. 73–82. ACM (2007)

    Google Scholar 

  3. Bachan, J., et al.: The UPC++ PGAS library for exascale computing. In: Proceedings of the Second Annual PGAS Applications Workshop, p. 7. ACM (2017)

    Google Scholar 

  4. Baghdadi, R., et al.: PENCIL: a platform-neutral compute intermediate language for accelerator programming. In: 2015 International Conference on Parallel Architecture and Compilation (PACT), pp. 138–149. IEEE (2015)

    Google Scholar 

  5. Baghdadi, R., et al.: Tiramisu: a polyhedral compiler for expressing fast and portable code. In: Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization, pp. 193–205. IEEE Press (2019)

    Google Scholar 

  6. Bastoul, C.: Generating loops for scanning polyhedra: Cloog users guide. Polyhedron 2, 10 (2004)

    Google Scholar 

  7. Basu, P., Hall, M., Williams, S., Van Straalen, B., Oliker, L., Colella, P.: Compiler-directed transformation for higher-order stencils. In: 2015 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 313–323. IEEE (2015)

    Google Scholar 

  8. Benabderrahmane, M.-W., Pouchet, L.-N., Cohen, A., Bastoul, C.: The polyhedral model is more widely applicable than you think. In: Gupta, R. (ed.) CC 2010. LNCS, vol. 6011, pp. 283–303. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-11970-5_16

    Chapter  Google Scholar 

  9. Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: PLuTo: a practical and fully automatic polyhedral program optimization system. In: Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI 2008), Tucson, AZ, June 2008. Citeseer (2008)

    Google Scholar 

  10. Chen, C.: Polyhedra scanning revisited. ACM SIGPLAN Not. 47(6), 499–508 (2012)

    Article  Google Scholar 

  11. Colella, P., et al.: Chombo software package for AMR applications design document (2009). http://seesar.lbl.gov/ANAG/chombo/. Accessed Sept 2008

  12. Colella, P., Woodward, P.R.: The piecewise parabolic method (PPM) for gas-dynamical simulations. J. Comput. Phys. 54(1), 174–201 (1984)

    Article  Google Scholar 

  13. Cornford, S., Martin, D., Lee, V., Payne, A., Ng, E.: Adaptive mesh refinement versus subgrid friction interpolation in simulations of Antarctic ice dynamics. Ann. Glaciol. 57(73), 1–9 (2016)

    Article  Google Scholar 

  14. Davis, E.C., Strout, M.M., Olschanowsky, C.: Transforming loop chains via macro dataflow graphs. In: Proceedings of the 2018 International Symposium on Code Generation and Optimization, pp. 265–277. ACM (2018)

    Google Scholar 

  15. Doerfert, J., Sharma, S., Hack, S.: Polyhedral expression propagation. In: Proceedings of the 27th International Conference on Compiler Construction, pp. 25–36. ACM (2018)

    Google Scholar 

  16. Dorr, M.R., Colella, P., Dorf, M.A., Ghosh, D., Hittinger, J.A., Schwartz, P.O.: High-order discretization of a gyrokinetic Vlasov model in edge plasma geometry. J. Comput. Phys. 373, 605–630 (2018)

    Article  MathSciNet  Google Scholar 

  17. Dubey, A., et al.: A survey of high level frameworks in block-structured adaptive mesh refinement packages. J. Parallel Distrib. Comput. 74(12), 3217–3227 (2014)

    Article  Google Scholar 

  18. El-Ghazawi, T., Smith, L.: UPC: unified parallel C. In: Proceedings of the 2006 ACM/IEEE Conference on Supercomputing, p. 27. ACM (2006)

    Google Scholar 

  19. Feautrier, P.: Automatic parallelization in the polytope model. In: Perrin, G.-R., Darte, A. (eds.) The Data Parallel Programming Model. LNCS, vol. 1132, pp. 79–103. Springer, Heidelberg (1996). https://doi.org/10.1007/3-540-61736-1_44

    Chapter  Google Scholar 

  20. Fontaine, R., Gonnord, L., Morel, L.: Polyhedral dataflow programming: a case study. In: International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD) (2018)

    Google Scholar 

  21. Grosser, T., Groesslinger, A., Lengauer, C.: Polly: performing polyhedral optimizations on a low-level intermediate representation. Parallel Process. Lett. 22(04), 1250010 (2012)

    Article  MathSciNet  Google Scholar 

  22. Grosser, T., Verdoolaege, S., Cohen, A.: Polyhedral AST generation is more than scanning polyhedra. ACM Trans. Program. Lang. Syst. (TOPLAS) 37(4), 12 (2015)

    Article  Google Scholar 

  23. Henretty, T., Stock, K., Pouchet, L.-N., Franchetti, F., Ramanujam, J., Sadayappan, P.: Data layout transformation for stencil computations on short-vector SIMD architectures. In: Knoop, J. (ed.) CC 2011. LNCS, vol. 6601, pp. 225–245. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-19861-8_13

    Chapter  Google Scholar 

  24. Jangda, A., Bondhugula, U.: An effective fusion and tile size model for optimizing image processing pipelines. In: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 261–275. ACM (2018)

    Google Scholar 

  25. Kjolstad, F., Kamil, S., Chou, S., Lugato, D., Amarasinghe, S.: The tensor algebra compiler. Proc. ACM Program. Lang. 1(OOPSLA) (2017). Article no. 77

    Google Scholar 

  26. Krishnamoorthy, S., Baskaran, M., Bondhugula, U., Ramanujam, J., Rountev, A., Sadayappan, P.: Effective automatic parallelization of stencil computations. In: ACM SIGPLAN Notices, vol. 42, pp. 235–244. ACM (2007)

    Google Scholar 

  27. Lo, Y.J., et al.: Roofline model toolkit: a practical tool for architectural and program analysis. In: Jarvis, S.A., Wright, S.A., Hammond, S.D. (eds.) PMBS 2014. LNCS, vol. 8966, pp. 129–148. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-17248-4_7

    Chapter  Google Scholar 

  28. McCorquodale, P., Colella, P.: A high-order finite-volume method for conservation laws on locally refined grids. Commun. Appl. Math. Comput. Sci. 6(1), 1–25 (2011)

    Article  MathSciNet  Google Scholar 

  29. Mullapudi, R.T., Vasista, V., Bondhugula, U.: PolyMage: automatic optimization for image processing pipelines. In: ACM SIGARCH Computer Architecture News, vol. 43, pp. 429–443. ACM (2015)

    Google Scholar 

  30. Orozco, D.: TIDeFlow: a parallel execution model for high performance computing programs. In: 2011 International Conference on Parallel Architectures and Compilation Techniques (PACT), p. 211. IEEE Press, New York (2011)

    Google Scholar 

  31. Quilleré, F., Rajopadhye, S.: Optimizing memory usage in the polyhedral model. ACM Trans. Program. Lang. Syst. (TOPLAS) 22(5), 773–815 (2000)

    Article  Google Scholar 

  32. Ragan-Kelley, J., Barnes, C., Adams, A., Paris, S., Durand, F., Amarasinghe, S.: Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. ACM SIGPLAN Not. 48(6), 519–530 (2013)

    Article  Google Scholar 

  33. Sadayappan, P.: Domain specific language support for exascale. Technical report, The Ohio State University, Columbus, OH, United States (2017)

    Google Scholar 

  34. Sbîrlea, A., Shirako, J., Pouchet, L.-N., Sarkar, V.: Polyhedral optimizations for a data-flow graph language. In: Shen, X., Mueller, F., Tuck, J. (eds.) LCPC 2015. LNCS, vol. 9519, pp. 57–72. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-29778-1_4

    Chapter  Google Scholar 

  35. Shirako, J., Pouchet, L.N., Sarkar, V.: Oil and water can mix: an integration of polyhedral and AST-based transformations. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, pp. 287–298. IEEE Press (2014)

    Google Scholar 

  36. Steuwer, M., Remmelg, T., Dubach, C.: LIFT: a functional data-parallel IR for high-performance GPU code generation. In: 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pp. 74–85. IEEE (2017)

    Google Scholar 

  37. Strout, M.M., et al.: Generalizing run-time tiling with the loop chain abstraction. In: 2014 IEEE 28th International Parallel and Distributed Processing Symposium, pp. 1136–1145. IEEE (2014)

    Google Scholar 

  38. Tiwari, A., Chen, C., Chame, J., Hall, M., Hollingsworth, J.K.: A scalable auto-tuning framework for compiler optimization. In: 2009 Processing of the IEEE International Symposium on Parallel & Distributed, IPDPS 2009, pp. 1–12. IEEE (2009)

    Google Scholar 

  39. Toro, E.F.: Riemann Solvers and Numerical Methods for Fluid Dynamics: A Practical Introduction. Springer, Heidelberg (2013)

    Google Scholar 

  40. Trebotich, D., Graves, D.: An adaptive finite volume method for the incompressible Navier-Stokes equations in complex geometries. Commun. Appl. Math. Comput. Sci. 10(1), 43–82 (2015)

    Article  MathSciNet  Google Scholar 

  41. Trebotich, D., Shen, C., Miller, G., Molins, S., Steefel, C.: An adaptive embedded boundary method for pore scale reactive transport

    Google Scholar 

  42. Treibig, J., Hager, G., Wellein, G.: LIKWID: a lightweight performance-oriented tool suite for x86 multicore environments. In: 2010 39th International Conference on Parallel Processing Workshops, pp. 207–216. IEEE (2010)

    Google Scholar 

  43. Tu, P., Padua, D.: Automatic array privatization. In: Pande, S., Agrawal, D.P. (eds.) Compiler Optimizations for Scalable Parallel Systems. LNCS, vol. 1808, pp. 247–281. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45403-9_8

    Chapter  Google Scholar 

  44. Van Straalen, B., Trebotich, D., Ovsyannikov, A., Graves, D.T.: Scalable structured adaptive mesh refinement with complex geometry. In: Exascale Scientific Applications: Scalability and Performance Portability, p. 307 (2017)

    Google Scholar 

  45. Vasilache, N., Bastoul, C., Cohen, A.: Polyhedral code generation in the real world. In: Mycroft, A., Zeller, A. (eds.) CC 2006. LNCS, vol. 3923, pp. 185–201. Springer, Heidelberg (2006). https://doi.org/10.1007/11688839_16

    Chapter  Google Scholar 

  46. Verdoolaege, S.: isl: an integer set library for the polyhedral model. In: Fukuda, K., Hoeven, J., Joswig, M., Takayama, N. (eds.) ICMS 2010. LNCS, vol. 6327, pp. 299–302. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15582-6_49

    Chapter  Google Scholar 

  47. Vogman, G., Colella, P.: Continuum kinetic plasma modeling using a conservative 4th-order method with AMR. In: APS Meeting Abstracts (2012)

    Google Scholar 

  48. Williams, S., Waterman, A., Patterson, D.: Roofline: an insightful visual performance model for floating-point programs and multicore architectures. Technical report, Lawrence Berkeley National Lab. (LBNL), Berkeley, CA, United States (2009)

    Google Scholar 

  49. Yuki, T., Gupta, G., Kim, D.G., Pathan, T., Rajopadhye, S.: AlphaZ: a system for design space exploration in the polyhedral model. In: Kasahara, H., Kimura, K. (eds.) LCPC 2012. LNCS, vol. 7760, pp. 17–31. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37658-0_2

    Chapter  Google Scholar 

  50. Zhang, W., et al.: AMReX: a framework for block-structured adaptive mesh refinement (2019)

    Google Scholar 

  51. Zhang, W., Almgren, A., Day, M., Nguyen, T., Shalf, J., Unat, D.: BoxLib with Tiling: an adaptive mesh refinement software framework. SIAM J. Sci. Comput. 38(5), S156–S172 (2016)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgments

This material is based upon work supported by the US Department of Energy’s Office of Advanced Scientific Computing Research under contract number DE-AC02-05- CH11231. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the Department of Energy.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Eddie C. Davis or Catherine R. M. Olschanowsky .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Davis, E.C., Olschanowsky, C.R.M., Van Straalen, B. (2021). A Structured Grid Solver with Polyhedral+Dataflow Representation. In: Pande, S., Sarkar, V. (eds) Languages and Compilers for Parallel Computing. LCPC 2019. Lecture Notes in Computer Science(), vol 11998. Springer, Cham. https://doi.org/10.1007/978-3-030-72789-5_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-72789-5_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-72788-8

  • Online ISBN: 978-3-030-72789-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics