Resent: Wed, 09 Sep 1998 23:45:08 -0400
Resent: help-octave@bevo.che.wisc.edu
X-Mailer: exmh version 2.0.2 2/24/98 (debian)
To: Daniel Heiserer
cc: mxu1@email.gc.cuny.edu, help-octave@bevo.che.wisc.edu
Subject: Re: Recommend tela, octave, matlab
In-reply-to: daniel.heiserer's message of Wed, 09 Sep 1998 08:36:16 +0200.
<35F621E0.9F31A017@bmw.de>
From: mxu1@email.gc.cuny.edu
X-Face: "HxE|?EnC9fVMV8f70H83&{fgLE.|FZ^$>@Q(yb#N,Eh~N]e&]=>r5~UnRml1:4EglY{9B+
:'wJq$@c_C!l8@<$t,{YUr4K,QJGHSvS~U]H`<+L*x?eGzSk>XH\W:AK\j?@?c1o
> On a IRIX6.2 R10000 octave performs matlab out by a factor of 3-4 for
> numbercrunching: inverse and solve.
>
I would like to give some timing statistics here first:
On my Pentium200, 32M RAM, linux 2.0.35 system, timing in seconds for
inv(rand(n,n)): (taking average for 5 consequent runs, the command used:
a=rand(n,n); tic(); b=inv(a); toc(); )
n=100 n=200 n=400 n=600 n=800
tela-1.27 0.11 0.83 7.4 26.5 64.6
rlab-2.0.15 0.16 1.20 9.6 33.6 79.1
octave-2.1.7.3 0.11 0.90 8.8 32.2 82.9
and in a SGI Origin200 with 4 180 Mhz CPU and 256M RAM, do the same test:
n=100 n=200 n=400 n=600 n=800
tela-1.27 0.011 0.044 0.22 0.66 1.50
octave-2.0.13 0.036 0.26 1.47 11.3 32.0
matlab-4.2c 0.065 0.45 3.61 14.6 38.3
But I think a numbercrunching like inv actually measures more the quality of
the underlying library it calls rather than the efficiency of caller itself.
So I also make the following test ( a=0; tic(); for i=1:n; a=a+i; end; toc();
)
n=1e4 n=1e5 n=1e6
tela-1.27 0.07 0.75 7.5
rlab-2.0.15 0.09 0.92 9.26
octave-2.1.7.3 1.04 10.27 107.25
The SGI performs:
n=1e4 n=1e5 n=1e6
tela-1.27 0.044 0.45 4.50
octave-2.0.13 0.66 6.65 67.2
matlab-4.2c 0.19 1.93 19.5
( Note: tela is compiled into using 4 CPU parallelly, but matlab and octave is
not parallel compiled in the SGI machine. So it shows a great difference here.
But even after times 4 to the tela's results, it is still much faster than
other. Also, these results suggest that octave is using a better library
LAPACK than matlab for solving inv(), but octave's own efficiency is not as
good as matlab4. )
A. Scottedward Hodel wrote:
" Another package I've seen discussed is
SciLab, developed at INRIA in France. One reason I'll be staying
with Octave is about 16,000 lines of octave m-files I've written
for the Octave controls toolbox. I've occasionally considered
moving to another package (scilab being the prime contender), but
I'm finding the workload better if I improve Octave's packages
instead."
I also have scilab at my hand. Scilab is as efficient as or even a little bit
more efficient than tela. But I do not like its graphics and its interfacing
ability with external programs is strong but not as attractive and intuitive
as tela (in my view).
For example, a small code fragment can be dynamic linked into tela as a
function foo(x)
[y]=foo(x)
{
double val;
val=bar(x.RealValue());
y=Tobject(val);
return 0;
}
which actually call an external function "double bar(double)". Notice the
interfacing stuff is only the first line. The real interfacing thing is done
by a preprocessor ctpp which converts it to C++ code. And it supports variable
number of inputs and outputs, calling an script function (like .m file) from a
dynamic function ( like .oct file ).
Last, I need to point out that tela is NOT a matlab clone and it does not want
to. But it provide an engine which can call matlab within tela when tela run
out of features.
And it is true tela's features are not as rich as octave although it has some
very nice features. (see its web page)
--
Min Xu
City College of NY, CUNY
Email: mxu1@email.gc.cuny.edu
minxu@sci.ccny.cuny.edu
Tel: (O) (212) 650-6865
(O) (212) 650-5046
(H) (212) 690-2119