是否存在用于C / C ++的R编译器?

Does an R compiler to C/C++ exist?

我想知道部署R的最佳方法。Matlab具有" matlab编译器"(MCR)。 过去有过关于R的类似讨论,将R编译为C或C ++。 有人有赖斯(Rice)的约翰·加文(John Garvin)开发的R到C编译器(RCC)的经验吗?

我研究了它,它似乎是唯一一个将R代码编译为可执行代码的项目。 据我所知,它仍然没有被使用。

[编辑1:]:明确地说,我知道有C和C ++(以及Java,Python等)与R(rJava,rcpp,Rpy等)的接口。 我想知道无需预先安装R即可编译和部署R代码的特定方法。

[编辑2:]:John Mellor-Crummey告诉我,他们仍在研究RCC,并希望在4个月左右(最早)将其提供。 如果发现其他问题,我将进一步更新。


字节码编译器将成为R 2.13版本的一部分。默认情况下,此版本未使用它,但它可用。我期望2.14版本默认情况下会编译所有基本软件包和推荐软件包。编译器::编译帮助页面和《 R安装和管理手册》提供了更多详细信息。


我忘记了莱斯项目,已经有一段时间了。我认为此处的操作术语在项目页面的顶部进行了说明:最近更新于2006年3月8日。

我们都知道R的变化很大。因此,我只为您提供一些标准的指针:

  • 不仅对R内部知识了解很多,而且对字节编译器也了解很多的Luke Tierney一直在从事这样的项目。还没有准备好,它仍然可以与标准R引擎一起使用。
  • Stephen Milborrow将R的Ra扩展与他的即时编译器软件包jit一起使用
  • 我的《使用R进行高性能计算简介》教程(UseR!2009的最新教程幻灯片)介绍了性能分析,编译范围,使用R进行并行计算等部分,包括
    Rcpp和一些有关
    RInside。

简而言之:如果没有预先安装R,就没有想要的特定方法来编译和部署R代码。抱歉。

编辑/更新(2011年4月):Luke的新compiler程序包将是R 2.13.0(将于2011年4月发布)的一部分,但默认情况下未"激活",该功能预期于2011年10月发布,为R 2.14.0。

编辑/更新(2011年12月):Tierney教授刚刚发布了有关字节码编译器的100多页论文。


人们为什么在部署R时会感到恐惧?我相当确定我之前已经看过这个问题。

安装R简直是小菜一碟(实际上您并没有说出要关注哪个操作系统)。对于Windows,它是一个.exe。文件,运行它,说"是"几次并完成。我怀疑安装程序exe可能也有无人参与安装的标志。


您可以签出实现R的子集的P编译器。特别是,列表,矩阵,向量等以及lsfit,chol,svd,...都得到了实现。

您可以在以下位置下载免费版本

www.ptechnologies.org

它大大加快了计算速度。

最好,


我没有使用过Garvin的软件包,也不知道这些路线可能发生什么。然而:

通常,在进行分析以查找瓶颈之后,人们只是直接在C / C ++ / Fortran中编写计算密集型函数。有关示例,请参见RCpp接口或使用.C和.Call从R调用C函数。 Scythe统计库对R用户也非常有用,因为语法/函数名称相似。