[R-SIG-Mac] Perplexed benchmark result from a new Macbook Pro Core i5

Yan Zhou zhouyan1014 at gmail.com
Mon May 10 15:29:43 CEST 2010


I did the same test on a MBP 15 i7 2.66GHz. The results follows. This is for x86_64 version, the i386 version (aka R32) is slightly slower than this.

> set.seed(1)
> A <- matrix(rnorm(2000*2000),2000,2000)
> system.time(B <- crossprod(A))
   user  system elapsed 
  1.983   0.029   0.628 
> system.time(B <- crossprod(A))
   user  system elapsed 
  1.988   0.023   0.595 
> system.time(solve(B))
   user  system elapsed 
  5.980   0.183   2.366 
> system.time(solve(B))
   user  system elapsed 
  5.781   0.155   1.982 
> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
   user  system elapsed 
  2.269   0.919   3.160 
> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
   user  system elapsed 
  2.207   0.846   3.029 
> sessionInfo()
R version 2.11.0 Patched (2010-04-28 r51858) 
x86_64-apple-darwin9.8.0 

On 8 May 2010, at 19:53, Gardar Johannesson wrote:

> I was just replacing a Macbook Pro from 2008 (with a 2.2GHz Intel Core 2 Duo) with a new Macbook Pro (with a 2.4GHz Intel Core i5). To get a rough idea about the difference in R execution speed I ran a small test, with the output shown below. In short:
> 
> 1) The new Macbook Pro was ca 60% _slower_ at linear algebra (crossprod() and solve())
> 2) The new Macbook Pro was ca 17% faster on a long for-loop
> 3) Linking against Goto2 versus vecLib improved the linear algebra results slightly
> 
> Both test were done using the same 2.11.0 dmg image from CRAN. 
> 
> Any thoughts on this? 
> 
> Any ideas how I can improve the performance results? What about compiling from source?
> 
> 
> Thanks,
> Gardar Johannesson
> 
> 
> ###########################################
> ## Results from new macbook pro (Core i5 @ 2.4Ghz)
> 
>> set.seed(1)
>> A <- matrix(rnorm(2000*2000),2000,2000)
>> system.time(B <- crossprod(A))
>   user  system elapsed 
>  2.500   0.058   0.816 
>> system.time(B <- crossprod(A))
>   user  system elapsed 
>  2.502   0.050   0.814 
>> system.time(solve(B))
>   user  system elapsed 
>  7.208   0.265   2.740 
>> system.time(solve(B))
>   user  system elapsed 
>  7.121   0.264   2.666 
>> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
>   user  system elapsed 
>  2.964   0.602   3.528 
>> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
>   user  system elapsed 
>  3.040   0.732   3.732 
>> sessionInfo()
> R version 2.11.0 (2010-04-22) 
> i386-apple-darwin9.8.0 
> 
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base     
> 
> loaded via a namespace (and not attached):
> [1] tools_2.11.0
>> 
> 
> ###################################################
> ## Results from old macbook pro (Core 2 Duo @ 2.2GHz)
> 
>> set.seed(1)
>> A <- matrix(rnorm(2000*2000),2000,2000)
>> system.time(B <- crossprod(A))
>   user  system elapsed 
>  1.429   0.073   0.800 
>> system.time(B <- crossprod(A))
>   user  system elapsed 
>  1.429   0.064   0.874 
>> system.time(solve(B))
>   user  system elapsed 
>  4.532   0.285   2.860 
>> system.time(solve(B))
>   user  system elapsed 
>  4.521   0.281   2.834 
>> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
>   user  system elapsed 
>  3.501   0.764   4.215 
>> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
>   user  system elapsed 
>  3.459   0.702   4.113 
>> sessionInfo()
> R version 2.11.0 (2010-04-22) 
> i386-apple-darwin9.8.0 
> 
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base     
>> 
> 
> 
> ###################################################
> ## Results from new macbook pro (Core i5 @ 2.4Ghz)
> ## Linking against Goto2 BLAS (vs vecLib)
> 
>> set.seed(1)
>> A <- matrix(rnorm(2000*2000),2000,2000)
>> system.time(B <- crossprod(A))
>   user  system elapsed 
>  2.348   0.124   0.635 
>> system.time(B <- crossprod(A))
>   user  system elapsed 
>  2.342   0.110   0.622 
>> system.time(solve(B))
>   user  system elapsed 
>  6.634   0.327   2.158 
>> system.time(solve(B))
>   user  system elapsed 
>  6.697   0.348   2.034 
>> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
>   user  system elapsed 
>  2.577   0.548   2.885 
>> system.time({a <- rep(1.0,100); for(i in 1:1e6) a <- 1.0*a+0.0})
>   user  system elapsed 
>  2.411   0.478   2.859 
>> sessionInfo()
> R version 2.11.0 (2010-04-22) 
> i386-apple-darwin9.8.0 
> 
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
> 
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac



More information about the R-SIG-Mac mailing list