Computational Experience with Diagonally Structured Linear Algebra in Java

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.

[1]  Shahadat Hossain,et al.  On Computing with Diagonally Structured Matrices , 2019, 2019 IEEE High Performance Extreme Computing Conference (HPEC).

[2]  Ronald F. Boisvert,et al.  Developing numerical libraries in Java , 1998, Concurr. Pract. Exp..

[3]  Thomas R. Gross,et al.  Global address space, non-uniform bandwidth: a memory system performance characterization of parallel systems , 1997, Proceedings Third International Symposium on High-Performance Computer Architecture.

[4]  Michael Philippsen,et al.  Java and numerical computing , 2001, Comput. Sci. Eng..

[5]  Jack Dongarra,et al.  Batched BLAS (Basic Linear Algebra Subprograms) 2018 Specification , 2018 .

[6]  Jack Dongarra,et al.  High-performance computing systems: Status and outlook* , 2012, Acta Numerica.

[7]  David R. O'Hallaron,et al.  Computer Systems: A Programmer's Perspective , 1991 .

[8]  Katherine A. Yelick,et al.  Titanium: A High-performance Java Dialect , 1998, Concurr. Pract. Exp..

[9]  Francisco Heron de Carvalho Junior,et al.  Performance evaluation of virtual execution environments for intensive computing on usual representations of multidimensional arrays , 2016, Sci. Comput. Program..

[10]  Trond Steihaug,et al.  Data structures in Java for matrix computations , 2004, Concurr. Pract. Exp..

[11]  Jack Dongarra,et al.  Developing numerical libraries in Java , 1998 .

[12]  Alejandro Zunino,et al.  Improving scientific application execution on android mobile devices via code refactorings , 2017, Softw. Pract. Exp..

[13]  Samuel P. Midkiff,et al.  Supporting multidimensional arrays in Java , 2003, Concurr. Comput. Pract. Exp..

[14]  Robert A. van de Geijn,et al.  BLAS (Basic Linear Algebra Subprograms) , 2011, Encyclopedia of Parallel Computing.

[15]  Samuel P. Midkiff,et al.  From flop to megaflops: Java for technical computing , 1998, TOPL.

[16]  Trond Steihaug,et al.  Elsevier Editorial System(tm) for Journal of Computational and Applied Mathematics Manuscript Draft Title: on Diagonally Structured Problems in Unconstrained Optimization Using an Inexact Super Halley Method on Diagonally Structured Problems in Unconstrained Optimization Using an Inexact Super Halle , 2022 .

[17]  Mikel Luján,et al.  Storage Formats for Sparse Matrices in Java , 2005, International Conference on Computational Science.

[18]  Vivek Sarkar,et al.  Immutability specification and its applications , 2002, JGI '02.

[19]  Zahari Zlatev,et al.  Computations with symmetric, positive definite and band matrices on a parallel vector processor , 1988, Parallel Comput..

[20]  Nuerrennisahan Aimaiti A Computational study of sparse or structured matrix operations , 2018 .