使用OpenMP编译CRAN二进制文件需要哪些钩子? (在OS X上)

时间:2015-08-09 10:28:53

标签: r macos openmp cran

在向CRAN提交程序包时,如何获取Windows和Mac OSX的结果二进制文件以利用OpenMP?

,即CRAN机器为OpenMP代码构建的make或编译钩子是什么?

2 个答案:

答案 0 :(得分:2)

  1. Unix源码
    • R在unix下具有良好的OpenMP支持。只需包含ifdef _OPENMP。 (用户必须在他们的机器上下载包源并编译包。)
  2. OS X二进制文件

    • 自2018年中期以来,OS X的R使用clang编译,自定义clang提供OpenMP支持。利用OpenMP(例如OpenMx)的二进制包并行运行。 CRAN tools https://cran.r-project.org/bin/macosx/tools/clang-6.0.0.pkg
    • 提供的编译器安装程序可以简化源代码编译
    • 强烈建议使用其他非CRAN编译器(例如自制程序)。
  3. Windows二进制文件

    • 自2019年起,Windows工具链支持OpenMP和pthreads,但它很慢并且默认情况下未启用。评论表明这可能会改变。
  4. 参考文献

    https://cran.r-project.org/doc/manuals/R-exts.html#OpenMP-support

答案 1 :(得分:1)

从R 3.5.3手册开始:

  

苹果在macOS上构建的clang版本目前不支持OpenMP,但是   CRAN二进制软件包是使用基于clang的工具链构建的   支持OpenMP。   http://www.openmp.org/resources/openmp-compilers-tools提出了一些想法   哪些编译器支持什么版本。

对于大多数MacOS用户,基于源的CRAN软件包安装将失败和/或没有openmp,除非他们已安装,例如通过自制软件,带有openmp支持的clang。这样做的方法不断发展,因此请搜索带有“自制酒bropenmp makevars R CRAN”之类的词的最新帖子。