M9 performance regression for Fold?
- To: mathgroup at smc.vnet.net
- Subject: [mg132264] M9 performance regression for Fold?
- From: Yi Wang <tririverwangyi at gmail.com>
- Date: Tue, 28 Jan 2014 06:13:02 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
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 auto-compiled. Is this a regression? (Also is there a way to see if auto-compile 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/about-auto-compiling-and-performance-between-do-and-fold