Benchmarks -- Matlab & Clones

Derek O'Connor

University College, Dublin.

Last Updated : September 02, 2008


Introduction.

 Here are some tests I have run on  Matlab and its clones.

The benchmark program generates  a dense, random 1000x1000 double-precision matrix and then performs the following standard matrix operations :

  1. Multiplication  A*A
  2. LUP Decomposition
  3. Invert A
  4. Singular Value Decomposition
  5. QR Factorization
  6. Eigenvalues
  7. Determinant
  8. Rank
  9. Condition

These tests are not intended to be exhaustive or definitive. They simply test the the standard matrix operations that all matrix-oriented numerical systems have.

Benchmark Sources: SimpleBenchD.m and  SimpleBenchD.oms

Benchmark Results: BenchAug06.pdf

These results were obtained on Dell Workstation 620, Intel Pentium III Xeon 800 MHz, 640 MB ram, Windows 2000 SP4.

 

Multi-Core Benchmarks


Intel has just released their implementation of the Linpack benchmark, optimized for multi-core Xeon and Itanium processors, using the latest version of their Math Kernel, MKL 10. The benchmark is here
http://www.intel.com/cd/software/products/asmo-na/eng/363191.htm

Matlab Equivalent of Linpack Benchmark : 

The Matlab  code  x = A\b  is equivalent to the the Fortran code above in that it solves a general set of linear equations $Ax = b$. The Matlab benchmark programs and results are here. 

These results were obtained on Dell Precsion 690, 2xQuadcore Xeon 5345 2.33 GHz, 8 GB ram, Windows Vista Ultimate 64 bit.

NOTE : Matlab R2007b & R2008a use Intel Math Kernel  MKL 9.?

 


Software Sources.

http://www.omatrix.com/

http://www.octave.org/

http://scilabsoft.inria.fr/


BLAS.  (Basic Linear Algebra Subroutines)

Numerical software systems such as Matlab, O-Matrix, etc., need to use the Blas Kernels to achieve good speed. Even symbolic systems such as Mathematica now use a Blas kernel (I believe). Most  C and Fortran compilers allow you to link to Blas kernels (to me, something of a black art).

The bencmark tests above  show the difference between using and not using a Blas kernel -- look at the Matlab 6.5(1) and Matlab 6.5(2) columns. The lack of Blas clearly shows up in the Scilab and GNU Octave columns -- neither uses Blas kernels. (I believe the latest versions do use Blas. They do. See last note below.)

NOTE : O-Matrix 6 uses the latest Intel Math Kernel (MKL 8.0) optimized for various Pentiums. (Derek O'Connor, Aug  2006)

NOTE : Matlab 7 (Release 14 SP1) now uses the same Intel Math Kernel (MKL 7.0) .  (Derek O'Connor, Mar 2005)

NOTE : Both Octave 2.1.73 and Scilab 4 now use the Atlas Math Kernel.  (Derek O'Connor, Aug 2006)

 

There are free Blas kernels at 

Atlas : http://www.netlib.org/atlas/  and

Flame : Texas Advanced Computing Center

Most hardware manufacturers now have their own kernels, tuned specifically to their processors.