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 Num Threads Bits Year Made Processor/Link
2018.04 Cloud 4 64 2018 Xeon
2019.02 3.4 GHz 4 64 2012 Core i5-3570K
2019.02 1.4 GHz 4 64 2018 Raspberry Pi 3B+

Memory Usage Results:

Date JavaVM OS Link
2013.10 1.7.0_17 Linux Mint 14 2013-10

Stability Results:

Date JavaVM OS Link
2013.10 1.7.0_17 Linux Mint 14 2013-10

For older benchmark results see History Of Results.

Source Code

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

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.