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

问题描述 投票:4回答:2

在向CRAN提交包时,如何才能获得Windows和Mac OSX生成的二进制文件以利用OpenMP?

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

r macos openmp cran
2个回答
2
投票
  1. Unix源码 R在unix下具有良好的OpenMP支持。只需包含ifdef _OPENMP。 (用户必须在他们的机器上下载包源并编译包)。
  2. OS X二进制文件 从2018年中期开始,OS X的R使用clang编译,自定义clang提供OpenMP支持。利用OpenMP(例如OpenMx)的二进制包并行运行。 CRAN toolshttps://cran.r-project.org/bin/macosx/tools/clang-6.0.0.pkg提供的编译器安装程序可以简化源代码编译 强烈建议使用其他非CRAN编译器(例如自制软件)。
  3. Windows二进制文件 从2019年开始,windows工具链支持OpenMP和pthreads,但它很慢,默认情况下不启用。评论表明这可能会改变。

Refs

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


1
投票

截至R 3.5.3手册:

MacOS上的Apple版本的clang目前没有OpenMP支持,但CRAN二进制包是使用支持OpenMP的基于clang的工具链构建的。 http://www.openmp.org/resources/openmp-compilers-tools给出了一些编译器支持哪些版本的想法。

大多数MacOS用户的基于源的CRAN软件包安装将失败和/或没有openmp,除非他们已安装,例如,通过自制软件,铿锵支持openmp。进行的方法发展,所以用“homebrew clang openmp makevars R CRAN”等术语搜索最近的帖子。

© www.soinside.com 2019 - 2024. All rights reserved.