help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Slow performance on Linux


From: Evan Thomas
Subject: Re: Slow performance on Linux
Date: Mon, 18 Mar 1996 13:21:37 +1000

John L Daschbach wrote:
>
>> [original message cut]
>
> I think clearly you have done something wrong.  I have not tried it
> with Linux, but it runs very well on my 486/33 16M with OS/2 and my
> P120 16M with OS/2.
>
> It runs a lot faster on a RS6000/590 256M :-)
>
> Actually, seat of the pants benchmarks on the RS6000 seem pretty
> good. Have not checked, but the matrix inversion times seem about a
> factor of 2 or a little more off from Fortran, which seems pretty
> good.
>
> It might be useful to compile a set of Octave benchmarks, both to
> compare machines and compilers.
>
> I compiled this some time ago, but I think it's gcc 2.7.2 and the IBM
> f77 compiler. For my work, the times are fine.  I'll try some on a PC
> with OS/2 and send them along.
>
> [d3h486]:(17)>tic;foo=rand(128,128);toc
> ans = 0.060529
> [d3h486]:(18)>tic;bar=inv(foo);toc
> ans = 0.083243
> [d3h486]:(19)>tic;foo=rand(256,256);toc
> ans = 0.22873
> [d3h486]:(20)>tic;bar=inv(foo);toc
> ans = 0.62577
> [d3h486]:(21)>tic;foo=rand(512,512);toc
> ans = 0.89869
> [d3h486]:(22)>tic;bar=inv(foo);toc
> ans = 4.8428
> [d3h486]:(23)>tic;foo=rand(1024,1024);toc
> ans = 3.5915
> [d3h486]:(24)>tic;bar=inv(foo);toc
> ans = 36.425
> [d3h486]:(31)>tic;foo=rand(2048,2048);toc
> ans = 14.634
> [d3h486]:(32)>tic;bar=inv(foo);toc
> ans = 285.83
>
> -John

Here some numbers from my machines:

  Test              SPARC Station 2     Pentium133     Ratio(Sun/P133)
  ----              ---------------     ----------     ---------------
f=rand(128,128)       0.53647             0.19737         2.7
b=inv(f)              1.7881              0.40758         4.4
f=rand(512,512)       6.2866              0.84654         7.4
b=inv(f)            128.00               25.471           5.0
f=rand(1024,1024)    25.591               3.3639          7.6
b=inv(f)           1011.3               232.49            4.3

bm (defined below)   52.652             853.25         ** 0.062 **

The bm.m test basically solves 3 simple differential equations using the
lsode function. These tests were performed using octave compiled with
gcc 2.6.1 and f2c on Linux and the binary distribution on the Sun. These
are wall clock times (ie using tic and toc), but both machines are very
lightly loaded so they should closely reflect cpu times.

Can anyone suggest why lsode should be so much slower on Linux/PC?

------------ bm.m test file --------------------------------
#
# Simple ODE bench mark test for Octave
#

#
# Set up global parms, load sripts, etc for sEPSP
#

# These control the driver
global freq dur height width;
freq = 2;
dur = 1;
height = 1;
width = 0.1;

# These control the internal cascade
global alpha beta;
alpha = [1, 1, 1];
beta  = [0.5, 0.5, 0.5];

# These are the normal sEPSP boundary/range conditions
global s0 t;
s0 = [0, 0, 0, 0];
t = (0:0.1:20)';    # <<<=== change the step size to vary run time
#
# Octave script for second messanger driver.
#
# The function produces a series of square pulse
# paramterized by the values shown below.

function ret = driver(t)

  if( !is_vector(t) )
    ret = driver_single(t);
    return;
  endif

  for i = 1:length(t)
    ret (i) = driver_single(t (i));
    i++;
  endfor

  return;

endfunction

#
# The equations "describing" the second messenger cascade
#
function sdot = sEPSP(s, t)

  global alpha beta;

  sdot(1) = alpha(1)*driver(t) - beta(1)*s(1);
  sdot(2) = alpha(2)*s(1) - beta(2)*s(2);
  sdot(3) = alpha(3)*s(2) - beta(3)*s(3);

endfunction
#
# Solve equations
#

disp("Solving equations...");fflush(stdout);
epsp = lsode("sEPSP", s0, t);
---------------------- end bm.m ------------------------------------
Evan Thomas
Department of Anatomy & Cell Biology
University of Melbourne
Parkville, 3052
ph: 9344-5849  fax: 9344-5818


reply via email to

[Prev in Thread] Current Thread [Next in Thread]