comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Slow execution with NaNs under Solaris 8 and 9
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Slow execution with NaNs under Solaris 8 and 9 [message #34381] Wed, 12 March 2003 01:47
Timm Weitkamp is currently offline  Timm Weitkamp
Messages: 66
Registered: August 2002
Member
Ivar,

> Has anyone else observed anything similar?

On Solaris 8, I too observe a considerable drop in speed, though not an
order of magnitude:

IDL> print, getenv('OSTYPE')
solaris8
IDL> test_slowlaris
{ sparc sunos unix Solaris 5.6 Oct 26 2002 64 64}
No NaNs: 2.4719300
With NaNs: 5.6408559

Cheers,
Timm

On 11.03.03 at 12:10 -0800, Rick Towler wrote:

> "Ivar Christopher" wrote in message
>
>> We've recenty purchaced a couple of fast, new Sun systems, one running
>> Solaris 8 and the other Solaris 9. At some point I discovered that
>> some existing IDL code was running much slower than I expected on
>> these systems. After much tracking down, it turns out that when
>> various functions, including where() and trig functions, are called on
>> data that contain IEEE Not a Numbers (NaNs), the execution speed drops
>> by up to an order of magnitude.
>
> FWIW, this problem doesn't show up in slowlaris 7 (using the attached
> program which may or may not be an appropriate test). These numbers were
> gathered while performing a backup but that should slow both tests down more
> or less equally.
>
> IDL> test_slowlaris
> { sparc sunos unix 5.4.1 Jan 16 2001 32 64}
> No NaNs: 30.699895
> With NaNs: 25.150906
> % Program caused arithmetic error: Floating illegal operand
>
> -Rick
>
> pro test_slowlaris
>
> print, !version
>
> bigArray = FINDGEN(10,1000000)
>
> start = SYSTIME(/SECONDS)
>
> null = WHERE(bigArray gt 290000.)
> null = WHERE(bigArray lt 100000.)
> null = WHERE(bigArray eq 123456.)
> null = sin(bigArray)
>
> print, 'No NaNs:', SYSTIME(/SECONDS) - start
>
> bigArray[0,*] = !values.f_nan
> bigArray[4,*] = !values.f_nan
>
> start = SYSTIME(/SECONDS)
>
> null = WHERE(bigArray gt 290000.)
> null = WHERE(bigArray lt 100000.)
> null = WHERE(bigArray eq 123456.)
> null = sin(bigArray)
>
> print, 'With NaNs:', SYSTIME(/SECONDS) - start
>
> end

--
Timm Weitkamp <http://people.web.psi.ch/weitkamp>
Re: Slow execution with NaNs under Solaris 8 and 9 [message #34390 is a reply to message #34381] Tue, 11 March 2003 12:10 Go to previous message
Rick Towler is currently offline  Rick Towler
Messages: 821
Registered: August 1998
Senior Member
"Ivar Christopher" wrote in message

> We've recenty purchaced a couple of fast, new Sun systems, one running
> Solaris 8 and the other Solaris 9. At some point I discovered that
> some existing IDL code was running much slower than I expected on
> these systems. After much tracking down, it turns out that when
> various functions, including where() and trig functions, are called on
> data that contain IEEE Not a Numbers (NaNs), the execution speed drops
> by up to an order of magnitude.

FWIW, this problem doesn't show up in slowlaris 7 (using the attached
program which may or may not be an appropriate test). These numbers were
gathered while performing a backup but that should slow both tests down more
or less equally.

IDL> test_slowlaris
{ sparc sunos unix 5.4.1 Jan 16 2001 32 64}
No NaNs: 30.699895
With NaNs: 25.150906
% Program caused arithmetic error: Floating illegal operand

-Rick

pro test_slowlaris

print, !version

bigArray = FINDGEN(10,1000000)

start = SYSTIME(/SECONDS)

null = WHERE(bigArray gt 290000.)
null = WHERE(bigArray lt 100000.)
null = WHERE(bigArray eq 123456.)
null = sin(bigArray)

print, 'No NaNs:', SYSTIME(/SECONDS) - start

bigArray[0,*] = !values.f_nan
bigArray[4,*] = !values.f_nan

start = SYSTIME(/SECONDS)

null = WHERE(bigArray gt 290000.)
null = WHERE(bigArray lt 100000.)
null = WHERE(bigArray eq 123456.)
null = sin(bigArray)

print, 'With NaNs:', SYSTIME(/SECONDS) - start

end
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: HELP SAVING QUALITY IMAGES
Next Topic: passing parameters

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Oct 09 22:16:25 PDT 2025

Total time taken to generate the page: 0.15937 seconds