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

Re: Fast matrix filling in IDL



Phillip & Suzanne David wrote:
> 
> 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

Hopefully everyone is running this a few times and noting when
the times have become "stable". Here are three sequential runs
on a Sun Sparc 2 (IDL 5.1):

IDL> test
Time for Loop:        2.7740721
Time for Matrix Operations:        5.2337180     ; OUT OF WHACK!
Time for Rebin Operations:       0.16969705
IDL> test
Time for Loop:        2.6756930
Time for Matrix Operations:       0.27333605
Time for Rebin Operations:       0.16920698
IDL> test
Time for Loop:        2.7509290
Time for Matrix Operations:       0.27153599
Time for Rebin Operations:       0.16843796

Dave

-- 

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    David S. Foster         Univ. of California, San Diego
     Programmer/Analyst     Brain Image Analysis Laboratory
     foster@bial1.ucsd.edu  Department of Psychiatry
     (619) 622-5892         8950 Via La Jolla Drive, Suite 2240
                            La Jolla, CA  92037
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~