Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.


Yi Wang
Posts:
33
Registered:
3/30/12


M9 performance regression for Fold?
Posted:
Jan 28, 2014 6:08 AM


Hello,
I noticed an over 10x performance drop on Mathematica v9.0.1 compared with v7.01 for this code:
SetSystemOptions["CatchMachineUnderflow" > False]; AbsoluteTiming@ Fold[{(#[[1]] Sin[10.5])/(#2 + 1), #[[2]] + Tan[#[[1]]]} &, {Sin[ 10.5], 1.0}, N@Range[10^6]]
I got {0.184287, {0., 0.105747}} on v7, but got {2.311755, {0., 0.105747}} on v9. Note that the Do[...] version of above code needs about 2 seconds. Thus I suspect that on v9 the Fold code is not properly autocompiled.
Is this a regression? (Also is there a way to see if autocompile worked or not?)
Thanks! Yi
PS: To compare, I also tried the following code, where the performance on v7 and v9 are roughly the same (v9 is on average 5% more slowly though).
AbsoluteTiming@Fold[# + Sin[#2] &, 1.0, Range[10^6]]
A difference is that here the first argument of function in Fold is a number, and in the problematic example, the first argument is a list.
PS: I noticed this issuee during a discussion at http://mathematica.stackexchange.com/questions/41103/aboutautocompilingandperformancebetweendoandfold



