
OMatrix Performance
OMatrix has been designed from the ground up for accuracy and highperformance.
The OMatrix environment enables you to both prototype designs and
perform large scale analysis within the integrated environment. OMatrix
has been built using highly optimized C/C++, FORTRAN, and assembly code to provide
optimal execution performance. The linear algebra
routines in OMatrix are based on the algorithms from BLAS, LINPACK, and LAPACK to provide
robust, accurate solutions. As of OMatrix 6.4 the majority of the numerical functions and
many of the data processing functions have been restrucutured to to take advantage of multicore
machines.
Overall, OMatrix is the fastest matrix computation package we have tested.
 SciViews
The following benchmarks are from the Stefen Steinhaus' Number Crunching Report,
SciViews.org, and Matlab customers. The benchmark script is 100% Matlab compatible;
the same script can be run in either OMatrix or Matlab.
Even greater
performance gains are available when implementing solutions in the native OMatrix
language.
The OMatrix environment provides two languages  The native
OMatrix language which is similar to, but more flexible, powerful,
and easier to use than Matlab; and Matlab mode for running Matlab code.
Benchmark 
OMatrix 6.5 
Matlab 7.6 
FFT over 2^19 random complex values 
0.044 
0.084 
FFT over 800,000 random complex values 
0.100 
0.125 
Sorting 2,000,000 random values 
0.201 
0.271 
Standard deviation of 2,000,000 random values 
0.003 
0.075 
1000x1000 random matrix .^3 
0.011 
0.639 
800x800 random matrix .^1000. 
0.012 
0.045 
Gaussian error function over 500x500 matrix 
0.001 
0.043 
800x800 Toeplitz matrix 
0.014 
0.050 
Create 2000x2000 normal distributed random matrix 
0.011 
0.103 
Create 2500x2500 ones matrix 
0.014 
0.029 
Linear regression over 600x600 matrix (c=a\b') 
0.019 
0.045 
720x720 crossproduct (b= a' * a) 
0.046 
0.043 
Eigenvalues of 320x320 random matrix 
0.154 
0.215 
Determinant of 650x650 random matrix 
0.023 
0.038 
Cholesky decomposition of 900x900 matrix 
0.035 
0.031 
Inverse of 400x400 random matrix 
0.015 
0.023 
750,000 Fibonacci number (vector calculation) 
0.134 
0.110 
Creation of 1000x1000 Hilbert matrix 
0.025 
0.038 
Escoufier's method on 37x37 matrix (loops) 
0.156 
0.340 
Gamma function over 600x600 matrix 
0.061 
0.093 
sin(x)+cos(x) over 1500x1500 random matrix 
0.048 
0.094 
exp(log(x)) over 1500x1500 random matrix 
0.130 
0.198 
matrix*scalar over 2000x2000 random matrix 
0.022 
0.025 
matrix/scalar over 2000x2000 random matrix 
0.020 
0.036 
All timings are in seconds.  Run on an Intel Core 2 Quad, Q6600 at 2.4 GHz, with 4GB of memory
All calculations performed with doubleprecision values
I use OMatrix for computationally intensive numerical mathematics in projects about
plasma physics and engineering. The reasonable OMatrix price has made it very
affordable, and the outstanding execution performance has relieved me from the need to code in
C/C++ for most of my projects.
 Mario Charro, PhD.,  Universidad Politecnica de Madrid, Spain
OMatrix has a small memory footprint and efficiently
uses system resources. For the benchmark above the initial memory
usage, (immediately after application startup) was 7MB for OMatrix
and 63MB for Matlab. Peak memory usage during execution was 154MB for
OMatrix and 170MB for Matlab.
All benchmarks on www.omatrix.com are available in the example\benchmarks
directory of the OMatrix Light download.
(To run Matlab compatible mfiles
in OMatrix,
press the lightning bolt icon on the toolbar, change the 'Files of type' drop down to
'Mlmode File Type', and then select the file.) Note that you must install the
OMatrix MFile Compatibility Library
to run the Matlabbased benchmarks available on this page.
See Why Users are Choosing OMatrix for a more
detailed product comparison of OMatrix and Matlab.
