Research Article

ScalaLab and GroovyLab: Comparing Scala and Groovy for Scientific Computing

Table 2

Results of some basic benchmarks.

ScalaLab (secs)SciLab 5.21 (secs),
SciLab 5.5
MATLAB 7.1 (secs)
MATLAB 2012b
GroovyLab (secs)

Matrix multiplication with matrix sizes:
(2000, 2500) × (2500, 3000)
0.9 secs using Native BLAS combined with Java multithreading61.8, 5.0513.05, 0.6The same with ScalaLab
LU
10000.33.13, 2.420.36, 0.03The same as ScalaLab
15001.23.82, 2.11.18, 0.04As ScalaLab
20002.96.42, 1.62.72, 0.09As ScalaLab
inv
10002.712.97, 1.61.3, 0.05As ScalaLab
15007.813.14, 2.54.5, 0.15As ScalaLab
20009.3119.07, 3.25.9, 0.3As ScalaLab
QR
10001.034.3, 4.21.2, 0.04As ScalaLab
15003.79.96, 9.94.26, 0.2As ScalaLab
20009.2519.69, 19.39.89, 0.3As ScalaLab
Matrix access scripting benchmark0.0332.16, 32.6710.58, 0.32 0.031 static compilation,
0.156 with primitive ops,
0.211 with invoke dynamic
FFT
100 ffts of 16384 sized signal
Oregon DSP:
real case: 0.05,
complex case: 0.095
JTransforms:
real case: 0.07
complex case: 0.11,
Apache Common Maths:
complex case: 0.5
Numerical Recipes (Java Translation):
real case: 0.09
complex case: 0.12
Real case: 2.32
Complex case: 4.2
Real case: 0.05
Complex case: 0.08
The Java libraries for FFT are the same as ScalaLab’s