ABSTRACT
It is a commonly held view that Java's lack of support for true rectangular arrays is one of the main impediments to its widespread applicability in numerical computing. In a recent work, we have proposed efficient implementation of linear algebra kernels such as matrix-vector and matrix-matrix multiplications by formulating arithmetic calculations in terms of diagonals, and thereby giving an orientation-neutral (column-/row-major layout) computational scheme. Diagonally-structured computation is especially suitable for banded matrices. In this paper we show that, using our diagonal framework, Java native arrays can yield superior computational performance. We present two alternative implementations for matrix-matrix multiplication operation in Java. The results from numerical testing demonstrate the advantage of our proposed methods.
- 2008: (Accessed:2018-07-21). BLAS (Basic Linear Algebra Subprograms). https://www.netlib.org/lapack/Google Scholar
- Nuerrennisahan Nurgul Aimaiti. 2018. A Computational study of sparse or structured matrix operations, MSC Thesis, Department of Mathematics and Computer Science, University of Lethbridge, Alberta, Canada.Google Scholar
- Ronald F Boisvert, Jack J Dongarra, Roldan Pozo, Karin A Remington, and GW Stewart. 1998. Developing numerical libraries in Java. Concurrency: Practice and Experience 10, 11-13 (1998), 1117--1129.Google ScholarCross Ref
- Ronald F Boisvert, José Moreira, Michael Philippsen, and Roldan Pozo. 2001. Java and numerical computing. Computing in Science & Engineering 3, 2 (2001), 18.Google ScholarDigital Library
- Randal E. Bryant and David R. O'Hallaron. 2016. Computer Systems: A Programmer's Perspective (3rd ed.). Addison-Wesley Publishing Company, USA.Google ScholarDigital Library
- Francisco Heron de Carvalho Junior and Cenez Araújo Rezende. 2016. Performance evaluation of virtual execution environments for intensive computing on usual representations of multidimensional arrays. Science of Computer Programming 132 (2016), 29--49.Google ScholarDigital Library
- J Jack Dongarra and Aad J van der Steen. 2012. High-performance computing systems: Status and outlook. Acta Numerica 21 (2012), 379--474.Google ScholarCross Ref
- Geir Gundersen and Trond Steihaug. 2004. Data structures in Java for matrix computations. Concurrency and computation: Practice and Experience 16, 8 (2004), 799--815.Google ScholarDigital Library
- Geir Gundersen and Trond Steihaug. 2012. On diagonally structured problems in unconstrained optimization using an inexact super Halley method. J. Comput. Appl. Math. 236, 15 (2012), 3685--3695. https://doi.org/10.1016/j.cam.2011.07.006Google ScholarDigital Library
- Shahadat Hossain and Mohammad Sakib Mahmud. 2019. On Computing with Diagonally Structured Matrices. In Proceedings of The Twenty Third IEEE High Performance Extreme Computing Conference (HPEC 2019). IEEE.Google ScholarCross Ref
- Mikel Lujan, Anila Usman, Patrick Hardie, TL Freeman, and John R Gurd. 2005. Storage formats for sparse matrices in Java. In International Conference on Computational Science. Springer, 364--371.Google ScholarDigital Library
- José E Moreira, Samuel P Midkiff, and Manish Gupta. 2000. From flop to megaflops: Java for technical computing. ACM Transactions on Programming Languages and Systems (TOPLAS) 22, 2 (2000), 265--295.Google ScholarDigital Library
- Jose E Moreira, Samuel P Midkiff, and Manish Gupta. 2003. Supporting multidimensional arrays in Java. Concurrency and Computation: Practice and Experience 15, 3-5 (2003), 317--340.Google ScholarCross Ref
- Igor Pechtchanski and Vivek Sarkar. 2005. Immutability specification and its applications. Concurrency and Computation: Practice and Experience 17, 5-6 (2005), 639--662.Google ScholarCross Ref
- Ana Rodriguez, Cristian Mateos, and Alejandro Zunino. 2017. Improving scientific application execution on android mobile devices via code re-factorings. Software: Practice and Experience 47, 5 (2017), 763--796.Google ScholarDigital Library
- Thomas Stricker and T Cross. 1997. Global address space, non-uniform band-width: A memory system performance characterization of parallel systems. In Proceedings Third International Symposium on High-Performance Computer Architecture. IEEE, 168--179.Google ScholarCross Ref
- Kathy Yelick, Luigi Semenzato, Geoff Pike, Carleton Miyamoto, Ben Liblit, Arvind Krishnamurthy, Paul Hilfinger, Susan Graham, David Gay, Phil Colella, et al. 1998. Titanium: a high-performance Java dialect. Concurrency and Computation: Practice and Experience 10, 11-13 (1998), 825--836.Google Scholar
- Zahari Zlatev, Phuong Vu, Jerzy Wasniewski, and Kjeld Schaumburg. 1988. Com-putations with symmetric, positive definite and band matrices on a parallel vector processor. Parallel Comput. 8, 1-3 (1988), 301--31Google ScholarCross Ref
Index Terms
- Computational Experience with Diagonally Structured Linear Algebra in Java
Recommendations
Matrix Multiplication with Diagonals: Structured Sparse Matrices and Beyond
HP3C '23: Proceedings of the 2023 7th International Conference on High Performance Compilation, Computing and CommunicationsMatrix-matrix multiplication is a fundamental computation in a wide range of scientific problems. In this paper, we investigate algorithmic aspects of this important operation whereby the underlying arithmetic calculations are ordered in a way that is ...
Stochastic Preconditioning for Diagonally Dominant Matrices
This paper presents a new stochastic preconditioning approach for large sparse matrices. For the class of matrices that are rowwise and columnwise irreducibly diagonally dominant, we prove that an incomplete $\rm{LDL^T}$ factorization in a symmetric ...
Comments