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

Home » Public Forums » archive » IDL program runs faster on slower CPU
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: IDL program runs faster on slower CPU [message #88069 is a reply to message #88064] Tue, 18 March 2014 05:22 Go to previous messageGo to previous message
Deckard++; is currently offline  Deckard++;
Messages: 11
Registered: March 2010
Junior Member
Le lundi 17 mars 2014 18:33:27 UTC+1, Craig Markwardt a écrit :
> [ I'm having lots of trouble posting from Google Groups the past few days. ]
>
Me too!

> On Sunday, March 16, 2014 6:15:04 PM UTC-4, Arthur Vigan wrote:
>
>> Strangely, the code runs about 4 to 5 times faster on the MacBook Pro. The code is strictly identical, with the same starting point, and it finds exactly the same result in the same number of iterations. I also mention that the program does not rely on disk access that could slow things down: all the data is in memory.
>
>
>
> I would suggest using PROFILER to find out where the bottleneck is. My first guess is you have some numerical faults like NaNs which are being handled by the two platforms differently. Sometimes numerical exceptions are handled very slowly because they take a round trip to the kernel.

It could be a possibility, but after running the profiler I am not so sure. The profiler output seems to show very mixed results, with some things running faster on the Mac, and some things running faster on the server. But more generally, any complex program seems to run faster on the Mac

I just ran a simple test on the two machines:

Profiler,/SYSTEM & Profiler
t0 = systime(/sec)
a = replicate(!dpi,10000,10000)
e = exp(a)
l = alog(a)
s = sin(a)
c = cos(a)
print,systime(/sec)-t0
Profiler,/REPORT

On the Mac:

Module Type Count Only(s) Avg.(s) Time(s) Avg.(s)
ALOG (S) 1 1.661171 1.661171 1.661171 1.661171
COS (S) 1 1.357197 1.357197 1.357197 1.357197
EXP (S) 1 0.541147 0.541147 0.541147 0.541147
PRINT (S) 1 0.111763 0.111763 0.111763 0.111763
PROFILER (S) 1 0.000024 0.000024 0.000024 0.000024
REPLICATE (S) 1 0.119898 0.119898 0.119898 0.119898
SIN (S) 1 1.213518 1.213518 1.213518 1.213518
SYSTIME (S) 2 0.000008 0.000004 0.000008 0.000004

On the Linux server:

Module Type Count Only(s) Avg.(s) Time(s) Avg.(s)
ALOG (S) 1 0.729371 0.729371 0.729371 0.729371
COS (S) 1 0.721096 0.721096 0.721096 0.721096
EXP (S) 1 0.635157 0.635157 0.635157 0.635157
PRINT (S) 1 0.000040 0.000040 0.000040 0.000040
PROFILER (S) 1 0.000014 0.000014 0.000014 0.000014
REPLICATE (S) 1 0.137368 0.137368 0.137368 0.137368
SIN (S) 1 4.108430 4.108430 4.108430 4.108430
SYSTIME (S) 2 0.000006 0.000003 0.000006 0.000003

Some basic functions seem to run much faster on linux (alog, cos), while others run faster on the Mac (sin, replicate). I really don't understand...

-- Arthur;
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: IDL's function SFIT coefficients
Next Topic: HOW TO COMPUTE BOUNDARY VALUES WHEN YOU HAVE TWO SPIKES IN YOUR DATA

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

Current Time: Wed Oct 08 17:32:00 PDT 2025

Total time taken to generate the page: 0.00406 seconds