Java Matrix Benchmark

Java Matrix Benchmark (JMatBench) is a tool for evaluating Java linear algebra libraries for speed, stability, and memory usage. This tool can be used by users to select the best library for their application and by developers for identifying bugs and weaknesses. Its goal is to help improve the state of high performance computing on the Java platform.

JMatBench rigorously tests performance across a wide range of matrix sizes and linear algebra operations. The runtime performance benchmark measures how fast each library can run under optimal conditions. It generates accurate results by taking in account JavaVM runtime optimizations, dynamically adjusts to the platform it is run on, and uses well established good benchmarking techniques. The stability benchmark evaluates several standard linear algebra operations for their accuracy, sensitivity, and ability to handle overflow/underflow conditions. Memory benchmark determines the minimum amount of memory required to perform different tasks. For more information see the approach page.

Runtime Performance Results:

Date Speed Threads Bits Processor/Link
2021.12 3.3 GHz 6 64 Xeon
2018.04 Cloud 4 64 Xeon
2019.02 3.4 GHz 4 64 Core i5-3570K
2019.02 1.4 GHz 4 64 Raspberry Pi 3B+

Memory Usage Results:

Date JavaVM OS Link
2022.01 15.0.2 Ubuntu 20.04.3 2022-01
2013.10 1.7.0-17 Linux Mint 14 2013-10

Stability Results:

Date JavaVM OS Link
2021.01 15.0.2 Ubuntu 20.04.3 2022-01
2013.10 1.7.0-17 Linux Mint 14 2013-10

For older benchmark results see History Of Results.

Source Code

https://github.com/lessthanoptimal/Java-Matrix-Benchmark

Understanding the benchmark:

The manual provides instructions on how to use the benchmark. To understand how the runtime performance is benchmarked see the methodology page.

Tested Libraries

Works in Process

If you wish to ask a question consider posting to the discussion group, or if it is specific to a particular wikipage post a comment on the wikipage itself.