Abstract
Understanding the layout of data and the accessing of that data is paramount to the optimal performance of an algorithm on one or many processors. This paper addresses the need for efficient tools to implement and carry out tensor based computations for scientific and engineering applications. In particular, we focus on certain ubiquitous operations such as outer products of arbitrary multi-dimensional arrays and matrix Kronecker products. We advocate an algebraic methodology based on A Mathematics of Arrays (MoA) and the ψ-Calculus, in which, any array based computer language (such as MATLAB) would be augmented to achieve optimal performance for the computation of multiple outer products. In this approach, an Operational Normal Form (ONF), which specifies the most efficient implementation in terms of starts, stops, and strides is mathematically derived given specific details of the processor/memory hierarchy. The vision of this research is the creation of a system in which the application scientist or engineer can use a functional subset of his/her favorite language and, in so doing, have the ability to generate code with high efficiency and compiler-like optimizations.
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
Abrams, P.S.: What’s wrong with APL? In: APL 1975: Proceedings of Seventh International Conference on APL, pp. 1–8. ACM, New York (1975)
Abrams, P.S.: An APL machine. PhD thesis, Stanford University, Stanford, CA, USA (1970)
Acar, E., Dunlavy, D.M., Kolda, T.G., Morup, M.: Scalable tensor factorizations with missing data. In: SDM 2010: Proceedings of the 2010 SIAM International Conference on Data Mining (April 2010)
Acar, E., Kolda, T.G., Dunlavy, D.M.: An optimizations approach for fitting canonical tensor decompositions. Technical Report SAND2009-0857, Sandia National Laboratories, Albuquerque, NM and Livermore, CA (February 2009)
Bader, B.W., Kolda, T.G.: Matlab tensor toolbox version 2.4 (2001), http://csmr.ca.sandia.gov/~tgkolda/TensorToolbox/
Bader, B.W., Kolda, T.G.: Algorithm 862: Matlab tensor classes for fast algorithm prototyping. ACM Transactions on Mathematical Software 32(4) (December 2006)
Bader, B.W., Kolda, T.G.: Efficient matlab computations with sparse and factored matrices. SIAM Journal on Scientific Computing 30(1), 205–231 (2007)
Berkling, K.: Arrays and the lambda calculus. Technical report, CASE Center and School of CIS, Syracuse University (1990)
Eatherton, W., Kelly, J., Schiefelbein, T., Pottinger, H., Mullin, L.R., Ziegler, R.: An fpga based reconfigurable coprocessor board utilizing a mathematics of arrays. Technical report, University of Missouri–Rolla, Computer Science Department (1995)
Gerhart, S.: Verification of APL Programs. PhD thesis, CMU (1972)
Helal, M.A.: Dimension and shape invariant programming: The implementation and the application. Master’s thesis, The American University in Cairo, Department of Computer Science (2001)
Kennedy, A., et al.: (October 2009), http://kac.maths.ed.ac.uk/nsf-nais/home.php
Kepner, J.: Parallel matlab for multicore and multinode camputers. SIAM, Philadelphia (2009)
Kolda, T.G., Bader, B.W.: Tensor decompositions and applications. SIAM Review 51(3), 455–500 (2009)
McMahon, T.: Mathematical formulation of general partitioning of multi-dimensional arrays to multi-dimensional architectures using the Psi calculus. Undergraduate Honors Thesis (1995)
Mermin, N.D.: Quantum Computer Science. Cambridge University Press, Cambridge (2007)
Mullin, L.M.R.: A Mathematics of Arrays. PhD thesis, Syracuse University (December 1988)
Mullin, L.R.: A uniform way of reasoning about array–based computation in radar: Algebraically connecting the hardware/software boundary. Digital Signal Processing 15, 466–520 (2005)
Mullin, L., Kluge, W., Scholtz, S.: On programming scientific applications in SAC – a functional language extended by a subsystem for high level array operations. In: Kluge, W.E. (ed.) IFL 1996. LNCS, vol. 1268, pp. 85–104. Springer, Heidelberg (1997)
Mullin, L., Nemer, N., Thibault, S.: The Psi compiler v4.0 for HPF to Fortran 90: User’s Guide. Department of Computer Science, University of Missouri–Rolla (1994)
Mullin, L.R., Raynolds, J.E.: Conformal computing: Algebraically connecting the hardware/software boundary using a uniform approach to high-performance computation for software and hardware applications. CoRR, abs/0803.2386 (2008)
Mullin, L., Rutledge, E., Bond, R.: Monolithic compiler experiments using C+ + expression templates. In: Proceedings of the High Performance Embedded Computing Workshop (HPEC 2002). MIT Lincoln Lab, Lexington (2002)
Mullin, L., Rutledge, E., Bond, R.: Monolithic compiler experiments using C+ + Expression Templates. In: Proceedings of the High Performance Embedded Computing Workshop HPEC 2002. MIT Lincoln Laboratory, Lexington (2002)
Mullin, L., Thibault, S.: Reduction semantics for array expressions: The Psi compiler. Technical Report CSC 94-05, Department of Computer Science, University of Missouri-Rolla (1994)
NSF-NAIS Workshop Intelligent Software: The Interface between Algorithms and Machines, Ediburgh, Scotland (October 2009), http://adrg.maths.ed.ac.uk/nsf-nais
Pottinger, H., Eatherton, W., Kelly, J., Schiefelbein, T., Mullin, L.R., Ziegler, R.: Hardware assists for high performance computing using a mathematics of arrays. In: FPGA 1995: Proceedings of the 1995 ACM Third International Symposium on Field-Programmable Gate Arrays, pp. 39–45. ACM, New York (1995)
Raynolds, J.E., Mullin, L.R.: Applications of conformal computing techniques to problems in computational physics: the fast fourier transform. Computer Physics Communications 170(1), 1–10 (2005)
Rosenkrantz, D.J., Mullin, L.R., Hunt III, H.B.: On minimizing materializations of array-valued temporaries. ACM Trans. Program. Lang. Syst. 28(6), 1145–1177 (2006)
Tu, H.-C.: FAC: A Functional Array Calculator and it’s Applicaton to APL and Functional Programming. PhD thesis, Yale University (1985)
Tu, H.-C., Perlis, A.J.: FAC: A functional APL language. IEEE Software 3(1), 36–45 (1986)
Van Loan, C.: (February 2009), http://www.cs.cornell.edu/cv/tenwork/home.htm
Van Loan, C.: (May 2009), http://www.cs.cornell.edu/cv/tenwork/finalreport.pdf
Van Loan, C.: The Kronecker product: A product of the times. In: SIAM Conference on Applied Linear Algebra, Monterey, California (October 2009)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Mullin, L., Raynolds, J. (2014). Scalable, Portable, Verifiable Kronecker Products on Multi-scale Computers. In: Ceberio, M., Kreinovich, V. (eds) Constraint Programming and Decision Making. Studies in Computational Intelligence, vol 539. Springer, Cham. https://doi.org/10.1007/978-3-319-04280-0_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-04280-0_14
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-04279-4
Online ISBN: 978-3-319-04280-0
eBook Packages: EngineeringEngineering (R0)