简体   繁体   English

英特尔MKL和Oracle R发行版

[英]Intel MKL and Oracle R Distribution

I am trying to test the multi-threading advantages of using Oracle R Distribution. 我正在尝试测试使用Oracle R Distribution的多线程优势。 I have a workstation with a 12 core CPU and 32 GB of RAM available that I'd really like to exploit. 我有一个工作站,它具有12核CPU和32 GB可用的RAM,我非常想利用它。

I've downloaded the latest Oracle R distribution and the 30 day trial of Intel MKL 11.1. 我已经下载了最新的Oracle R发行版和Intel MKL 11.1的30天试用版。 I've specified my PATH per the Oracle documentation and in R studio when I run Sys.BlasLapack() , I am getting Intel Math Kernel Library (Intel MKL). 当我运行Sys.BlasLapack() ,我已经根据Oracle文档和R studio指定了PATH ,我正在获取Intel Math Kernel Library(Intel MKL)。

However my jobs aren't running any faster. 但是我的工作没有更快地运行。 Do I need to run one of the .bat files to actually compile and set parameters for the MKL? 我是否需要运行.bat文件之一来实际编译和设置MKL的参数? I don't have Visual Studio and I can't find anything on the web telling me how to do this. 我没有Visual Studio,并且在网上找不到任何内容告诉我如何执行此操作。 Any pointers? 有指针吗? I am using Windows 7 Professional. 我正在使用Windows 7专业版。

Short Answer: Run the benchmark from here under standard BLAS and Intel MKL to see if the MKL is working. 答案很简单:从运行基准这里在标准BLAS和Intel MKL,看看是否MKL工作。 MKL will only improve performance for some operations. MKL仅会提高某些操作的性能。

To actually get the full power of the Oracle R implementation you would have to use the embedded R functions . 要真正获得Oracle R实现的全部功能,您必须使用嵌入式R函数 These are the ones that start with ore . 这些是从ore开始的。

In Oracle R Enterprise, embedded R execution is the ability to store R scripts in Oracle Database and to invoke such scripts, which then execute in one or more R engines that run in the database and that are dynamically started and managed by the database. 在Oracle R Enterprise中,嵌入式R执行是将R脚本存储在Oracle数据库中并调用此类脚本的能力,这些脚本然后在一个或多个R引擎中执行,这些R引擎在数据库中运行并且由数据库动态启动和管理。

We have tried out ORE in the office with Oracle running on an Exadata box; 我们已经在办公室中试用了ORE,并在Exadata框上运行了Oracle。 we began to see performance lift only when the datasets were extremely large . 我们仅在数据集非常大时才开始看到性能提升。

If your goal is to take advantage of a more powerful BLAS you don't actually need Oracle R to do that. 如果您的目标是利用功能更强大的BLAS,则实际上并不需要OracleR。 On a Unix distribution you can build open source R with using the --with-blas option (see this link ). 在Unix发行版上,您可以使用--with-blas选项构建开源R(请参阅此链接 )。 I believe the same approach can be used for Windows although I've never compiled R from source with Windows. 我相信同样的方法可以用于Windows,尽管我从来没有使用Windows从源代码编译过R。

Not all R functions run faster with the a different BLAS, in particular most modeling functions like glm don't use the BLAS. 并非所有R函数在不同的BLAS上运行都更快,特别是像glm这样的大多数建模函数都不使用BLAS。 To check the performance of your system with different BLAS I have used scripts from this site . 为了检查使用不同BLAS的系统的性能,我使用了此站点中的脚本 They will run much faster if the Intel MKL is being used. 如果使用Intel MKL,它们将运行得更快。 Maybe you should try one on your Oracle R distribution and compare with your open source install to confirm that ORE is using the Intel BLAS. 也许您应该在Oracle R发行版上尝试一下,并与开源安装进行比较,以确认ORE使用的是Intel BLAS。

Overall I did not get much day to day performance improvement out of installing the Intel BLAS when I tried it. 总体而言,尝试安装Intel BLAS并不能带来很多日常性能提升。 Revolution Analytics makes a big deal over how their non-free distribution of R leverages the Intel MKL. Revolution Analytics在其非免费发行的R如何利用英特尔MKL方面取得了重大进展。 But they had to rewrite many R functions to take advantage of the increased speed. 但是他们不得不重写许多R函数以利用提高的速度。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM