Comments:

  • Benchmark has been re-written to use Gradle and download jars from Maven Central
  • Benchmark run by Anders Peterson
  • Most complete benchmark yet! All libraries up to size 10000 and took two months to run.

Links to the results:

Test Environment

Date 2018 / 04
Instance Google Cloud n1-highmem-4
OS CentOS 7.5.1804
CPU Skylake Xeon
RAM 26 GB
CPU Cache Unknown
JVM Oracle Java HotSpot(TM) 64-Bit Server 1.8.0_161
Benchmark 0.11
Libraries Version
Colt 1.2
Commons Math 3.6.1
EJML 0.35
Jama 1.0.3
JBlas 1.2.4
la4j 0.6.0
MTJ 1.0.7
OjAlgo 45.0.0
UJMP 0.3.0

Summary Results

The following results are a weighted sum across all operations within each matrix size. Operations which take longer will have more weight. If a library could not finish an operation then its score is set to zero.

NOT The weight is computed from the amount of time the fastest library takes to complete. Which is why the results change a bit from Java to Java + Native.

Pure Java Summary Results

Mixed Java and Native Summary Results

Pure Java Libraries

These results show the performance of libraries that have code written entirely in Java.

Java: Basic Operation Results

Java: Solving Linear Systems

Java: Matrix Decompositions


Mixed Java and Native Libraries

These results show the performance of libraries that either use pure Java or calls to native libraries.

Mixed: Basic Operation Results

Mixed: Solving Linear Systems

Mixed: Matrix Decompositions