Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3315454.3329954acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Finite difference methods fengshui: alignment through a mathematics of arrays

Published: 08 June 2019 Publication History

Abstract

Numerous scientific-computational domains make use of array data. The core computing of the numerical methods and the algorithms involved is related to multi-dimensional array manipulation. Memory layout and the access patterns of that data are crucial to the optimal performance of the array-based computations. As we move towards exascale computing, writing portable code for efficient data parallel computations is increasingly requiring an abstract productive working environment. To that end, we present the design of a framework for optimizing scientific array-based computations, building a case study for a Partial Differential Equations solver. By embedding the Mathematics of Arrays formalism in the Magnolia programming language, we assemble a software stack capable of abstracting the continuous high-level application layer from the discrete formulation of the collective array-based numerical methods and algorithms and the final detailed low-level code. The case study lays the groundwork for achieving optimized memory layout and efficient computations while preserving a stable abstraction layer independent of underlying algorithms and changes in the architecture.

Supplementary Material

MP4 File (3315454.3329954.mp4)
Presentation Video

References

[1]
Philip Samuel Abrams. 1970. An APL machine. Ph.D. Dissertation. Stanford University, Stanford, CA, USA.
[2]
Evrim Acar, Animashree Anandkumar, Lenore Mullin, Sebnem Rusitschka, and Volker Tresp. 2016. Tensor Computing for Internet of Things (Dagstuhl Perspectives Workshop 16152). Dagstuhl Reports 6, 4 (2016), 57–79.
[3]
Evrim Acar, Animashree Anandkumar, Lenore Mullin, Sebnem Rusitschka, and Volker Tresp. 2018. Tensor Computing for Internet of Things (Dagstuhl Perspectives Workshop 16152). Dagstuhl Manifestos 7, 1 (2018), 52–68.
[4]
Brett W. Bader, Tamara G. Kolda, et al. 2015. MATLAB Tensor Toolbox Version 2.6. Available online. http://www.sandia.gov/~tgkolda/ TensorToolbox/
[5]
Anya Helene Bagge. 2009. Constructs & Concepts: Language Design for Flexibility and Reliability. Ph.D. Dissertation. Research School in Information and Communication Technology, Department of Informatics, University of Bergen, Norway, PB 7803, 5020 Bergen, Norway. http://www.ii.uib.no/~anya/phd/
[6]
Klaus Berkling. 1990. Arrays and the Lambda Calculus. Technical Report 93. Electrical Engineering and Computer Science Technical Reports.
[7]
Johannes Martinus Burgers. 1948. A mathematical model illustrating the theory of turbulence. In Advances in applied mechanics. Vol. 1. Elsevier, 171–199.
[8]
Eva Burrows, Helmer André Friis, and Magne Haveraaen. 2018. An Array API for Finite Difference Methods. In Proceedings of the 5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY 2018). ACM, New York, NY, USA, 59–66.
[9]
J. A. Crotinger et al. 2000. Generic Programming in POOMA and PETE. Lecture Notes in Computer Science 1766 (2000).
[10]
Philip W. Grant, Magne Haveraaen, and Michael F. Webster. 2000. Coordinate free programming of computational fluid dynamics problems. Scientific Programming 8, 4 (2000), 211–230.
[11]
Ian Grout and Lenore Mullin. 2018. Hardware Considerations for Tensor Implementation and Analysis Using the Field Programmable Gate Array. Electronics 7, 11 (2018).
[12]
John L. Gustafson and Lenore M. Mullin. 2017. Tensors Come of Age: Why the AI Revolution will help HPC. CoRR abs/1709.09108 (2017). arXiv: 1709.09108 http://arxiv.org/abs/1709.09108
[13]
Bastian Hagedorn, Larisa Stoltzfus, Michel Steuwer, Sergei Gorlatch, and Christophe Dubach. 2018. High Performance Stencil Code Generation with Lift. In Proceedings of the 2018 International Symposium on Code Generation and Optimization (CGO 2018). ACM, New York, NY, USA, 100–112.
[14]
Magne Haveraaen, Helmer André Friis, and Tor Arne Johansen. 1999. Formal Software Engineering for Computational Modelling. Nord. J. Comput. 6, 3 (1999), 241–270.
[15]
Magne Haveraaen, Helmer André Friis, and Hans Munthe-Kaas. 2005. Computable Scalar Fields: a basis for PDE software. Journal of Logic and Algebraic Programming 65, 1 (September-October 2005), 36–49.
[16]
H. B. Hunt III, L. Mullin, and D. J. Rosenkrantz. 1998. Experimental Design and Development of a Polyalgorithm for the FFT. Technical Report 98–5. University at Albany, Department of Computer Science.
[17]
Harry B. Hunt III, Lenore R. Mullin, Daniel J. Rosenkrantz, and James E. Raynolds. 2008. A Transformation–Based Approach for the Design of Parallel/Distributed Scientific Software: the FFT. CoRR abs/0811.2535 (2008). arXiv: 0811.2535 http://arxiv.org/abs/0811.2535
[18]
K. Iverson. 1962. A Programming Language. John Wiley and Sons, Inc. New York.
[19]
Fredrik Kjolstad, Shoaib Kamil, Stephen Chou, David Lugato, and Saman Amarasinghe. 2017. The Tensor Algebra Compiler. Proc. ACM Program. Lang. 1, Article 77 (Oct. 2017), 29 pages.
[20]
J. W. Klop, Marc Bezem, and R. C. De Vrijer (Eds.). 2001. Term Rewriting Systems. Cambridge University Press, New York, NY, USA.
[21]
Tamara G. Kolda and Brett W. Bader. 2009. Tensor Decompositions and Applications. SIAM Rev. 51, 3 (September 2009), 455–500.
[22]
Lenore Mullin. 1988. A Mathematics of Arrays. Ph.D. Dissertation.
[23]
Lenore Mullin and Michael Jenkins. 1996. Effective Data Parallel Computation Using the Psi-Calculus. Concurrency Journal (1996).
[24]
L Mullin and J Raynolds. 2014. Scalable, Portable, Verifiable Kronecker Products on Multi-scale Computers. Constraint Programming and Decision Making. Studies in Computational Intelligence, Vol. 539. Springer, Cham.
[25]
L. Mullin, E. Rutledge, and R. Bond. 2002. Monolithic Compiler Experiments using C ++ Expression Templates. In Proceedings of the High Performance Embedded Computing Workshop (HPEC 2002). MIT Lincoln Lab, Lexington, MA.
[26]
Lenore M. Restifo Mullin, Ashok Krishnamurthi, and Deepa Iyengar. 1988. The Design And Development of a Basis, alphaL, for Formal Functional Programming Languages with Arrays Based on a Mathematics of Arrays. In Proceedings of the International Conference on Parallel Processing, ICPP ’88, The Pennsylvania State University, University Park, PA, USA, August 1988. Volume 2: Software.
[27]
L.M. R. Mullin. 1991. Psi, the Indexing Function: A Basis for FFP with Arrays. In Arrays, Functional Languages, and Parallel Systems. Kluwer Academic Publishers.
[28]
Lenore R. Mullin. 2005. A uniform way of reasoning about array-based computation in radar: Algebraically connecting the hardware/software boundary. Digital Signal Processing 15, 5 (2005), 466–520.
[29]
L. R. Mullin, D. Dooling, E. Sandberg, and S. Thibault. 1993. Formal Methods for Scheduling, Routing and Communication Protoc ol. In Proceedings of the Second International Symposium on High Performance Distributed Computing (HPDC-2). IEEE Computer Society.
[30]
L. R. Mullin, D. J. Rosenkrantz, H. B. Hunt III, and X. Luo. 2003. Efficient Radar Processing Via Array and Index Algebras. In Proceedings First Workshop on Optimizations for DSP and Embedded Systems (ODES). San Francisco, CA, 1–12.
[31]
Paul Chang and Lenore R. Mullin. 2002. An Optimized QR Factorization Algorithm based on a Calculus of Indexing.
[32]
Jeremy G. Siek and Andrew Lumsdaine. 1998. The Matrix Template Library: A Generic Programming Approach to High Performance Numerical Linear Algebra. In Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments. Springer-Verlag, London, UK, UK. http://dl.acm.org/citation.cfm?id= 646894.709706
[33]
Google Brain Team. 2015. https://www.tensorflow.org/.
[34]
Hai-Chen Tu and Alan J. Perlis. 1986. FAC: A Functional APL Language. IEEE Software 3, 1 (Jan. 1986), 36–45.

Cited By

View all
  • (2023)Mathematics of Arrays Computations for Embedded Systems Applications2023 International Conference on Power, Energy and Innovations (ICPEI)10.1109/ICPEI58931.2023.10473792(1-4)Online publication date: 18-Oct-2023
  • (2022)Realizing Mathematics of Arrays Operations as Custom Architecture Hardware-Software Co-Design SolutionsInformation10.3390/info1311052813:11(528)Online publication date: 4-Nov-2022
  • (2022)P3 problem and Magnolia language: Specializing array computations for emerging architecturesFrontiers in Computer Science10.3389/fcomp.2022.9313124Online publication date: 31-Oct-2022
  • Show More Cited By

Index Terms

  1. Finite difference methods fengshui: alignment through a mathematics of arrays

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ARRAY 2019: Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming
    June 2019
    104 pages
    ISBN:9781450367172
    DOI:10.1145/3315454
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 June 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Finite Difference Methods
    2. Magnolia
    3. Mathematics of Arrays
    4. Partial Differential Equations
    5. Psi calculus

    Qualifiers

    • Research-article

    Conference

    PLDI '19
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 17 of 25 submissions, 68%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)20
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 13 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Mathematics of Arrays Computations for Embedded Systems Applications2023 International Conference on Power, Energy and Innovations (ICPEI)10.1109/ICPEI58931.2023.10473792(1-4)Online publication date: 18-Oct-2023
    • (2022)Realizing Mathematics of Arrays Operations as Custom Architecture Hardware-Software Co-Design SolutionsInformation10.3390/info1311052813:11(528)Online publication date: 4-Nov-2022
    • (2022)P3 problem and Magnolia language: Specializing array computations for emerging architecturesFrontiers in Computer Science10.3389/fcomp.2022.9313124Online publication date: 31-Oct-2022
    • (2021)Padding in the mathematics of arraysProceedings of the 7th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming10.1145/3460944.3464311(15-26)Online publication date: 17-Jun-2021

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media