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
- Colt
- Commons Math
- Efficient Java Matrix Library (EJML)
- Jama
- jblas
- JScience (Older benchmarks only)
- Matrix Toolkit Java (MTJ)
- OjAlgo
- Parallel Colt
- Universal Java Matrix Package (UJMP)
- Elegant Linear Algebra for Java (la4j)
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.