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

Re: Fast matrix filling in IDL



Phillip & Suzanne David <pdavid@earthling.net> writes:

> David Fanning wrote:
> > 
> > Stein Vidar Hagfors Haugan (steinhh@ulrik.uio.no) writes:
> > >
> > > A slight modification of David's program, and adding
> > > my favourite speedup method:
> > >
> > >   time = systime(1)
> > >   array = rebin(reform(v,m,1,/overwrite),m,n,/sample)
> > >   print, 'Time for Rebin Operations: ', systime(1) - time
> > >
> > > On { alpha OSF unix 5.2 Oct 30 1998}, this gives:
> > >
> > > Time for Loop:                   0.27343702
> > > Time for Matrix Operations:      0.093750000
> > > Time for Rebin Operations:       0.067382932
> > >
> > > Note that the relative speeds can vary quite a lot on
> > > different architectures.
> > 
> > I guess. Here is what I get with Stein Vidar's modifications
> > on my Windows NT machine:
> > 
> >    IDL> Print, !Version
> >    { x86 Win32 Windows 5.2 Oct 30 1998}
> >    IDL> test
> >    Time for Loop:       0.10000002
> >    Time for Matrix Operations:      0.019999981
> >    Time for Rebin Operations:      0.039999962
> > 
> > The Rebin operations are twice as slow as the matric operations.
> > Hummm. Why!?
> 
> 
> Here's another result from IDL 5.0.2 on the Mac:
> Time for Loop:       0.30000007
> Time for Matrix Operations:       0.13333333
> Time for Rebin Operations:       0.50000000
> 
> Phillip

Almost no differences between the matrix/rebin for an SGI.

testspeed 
Time for Loop:       0.28050208
Time for Matrix Operations:      0.047688007
Time for Rebin Operations:      0.043171048
IDL> print,!version 
{ mipseb IRIX unix 5.1.1 Jul 20 1998}
IDL>