Ubuntu下使用icc/ifort/MKL编译R及性能实测(3)

3.2 icc+ifort+MKL编译的测试结果
= R-benchmark-25.R =

R Benchmark 2.5
===============
Number of times each test is run__________________________:  3

I. Matrix calculation
---------------------
Creation, transp., deformation of a 2500x2500 matrix (sec):  1.00633333333333
2400x2400 normal distributed random matrix ^1000____ (sec):  1.07333333333333
Sorting of 7,000,000 random values__________________ (sec):  1.22766666666667
2800x2800 cross-product matrix (b = a' * a)_________ (sec):  2.14133333333334
Linear regr. over a 3000x3000 matrix (c = a \ b')___ (sec):  1.248
--------------------------------------------
Trimmed geom. mean (2 extremes eliminated):  1.180347511679

II. Matrix functions
--------------------
FFT over 2,400,000 random values____________________ (sec):  1.34566666666667
Eigenvalues of a 640x640 random matrix______________ (sec):  1.496
Determinant of a 2500x2500 random matrix____________ (sec):  1.53566666666667
Cholesky decomposition of a 3000x3000 matrix________ (sec):  1.47066666666667
Inverse of a 1600x1600 random matrix________________ (sec):  1.59333333333333
--------------------------------------------
Trimmed geom. mean (2 extremes eliminated):  1.50054007982371

III. Programmation
------------------
3,500,000 Fibonacci numbers calculation (vector calc)(sec):  1.42833333333333
Creation of a 3000x3000 Hilbert matrix (matrix calc) (sec):  1.348
Grand common divisors of 400,000 pairs (recursion)__ (sec):  1.77033333333334
Creation of a 500x500 Toeplitz matrix (loops)_______ (sec):  2.34466666666667
Escoufier's method on a 45x45 matrix (mixed)________ (sec):  1.211
--------------------------------------------
Trimmed geom. mean (2 extremes eliminated):  1.5049595832868

Total time for all 15 tests_________________________ (sec):  22.2403333333333
Overall mean (sum of I, II and III trimmed means/3)_ (sec):  1.38652416123196
--- End of test ---

= bench.R =

[1] "hilbert n=500"
用户  系统  流逝
0.280 0.032 0.289
用户  系统  流逝
0.292 0.032 0.169
用户  系统  流逝
0.296 0.036 0.169
[1] "hilbert n=1000"
用户  系统  流逝
1.440 0.140 0.971
用户  系统  流逝
1.356 0.124 0.842
用户  系统  流逝
1.276 0.140 0.834
[1] "sort n=6"
用户  系统  流逝
0.408 0.024 0.461
用户  系统  流逝
0.416 0.016 0.431
用户  系统  流逝
0.408 0.024 0.430
[1] "sort n=7"
用户  系统  流逝
5.512 0.216 5.740
用户  系统  流逝
5.437 0.260 5.704
用户  系统  流逝
5.504 0.192 5.703
[1] "loess n=3"
用户  系统  流逝
0.060 0.000 0.128
用户  系统  流逝
0.052 0.000 0.051
用户  系统  流逝
0.052 0.000 0.051
用户  系统  流逝
0.048 0.000 0.051
用户  系统  流逝
0.052 0.000 0.050
[1] "loess n=4"
用户  系统  流逝
8.897 0.016 4.560
用户  系统  流逝
9.184 0.004 4.607
用户  系统  流逝
9.141 0.008 4.585
用户  系统  流逝
9.204 0.008 4.621
用户  系统  流逝
9.209 0.004 4.619

针对 R-benchmark-25.R 的15项测试结果绘制barchart一张. 在部分情况下, Intel编译器和数学库的组合反较默认编译慢, 绝大部分项目icc/ifort/MKL都较默认编译有一定的性能提升, 在5个项目上远远超出默认库的性能(系MKL所致).

Ubuntu下使用icc/ifort/MKL编译R及性能实测

4 主要参考
1. Building R-2.8.0 with Intel Compiler Suite 11.0 (icc 11, ifort 11, MKL 10)

2. Compiling 64-bit R 2.10.1 with MKL in Linux: The rationale for compiling R using the Intel Math Kernel Library

3. 《R Installation and Administration Guide》 Appendix A.3.1.4

4. Intel MKL参数选择工具

5 结语
自行编译需谨慎, 本人又属linux菜鸟, 不能保证以上设定都是正确和最优的, 且GNU和Intel两家的货混用, 很有可能出问题. 如果因为追求一点速度导致计算结果有误, 都懂的.

6 已知问题
q("no")以后无响应, 需要强制退出.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21499.html