University College, Dublin.
Last Updated : September 02, 2008
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 :
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.
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.