使用OpenMP支持编译R包

时间:2017-11-22 09:28:59

标签: r parallel-processing openmp

我正在尝试使用R包glinternet,它有一个选项“nCores”,代表要运行的线程数。

根据用户手册,要使其正常工作,必须在启用OpenMP的情况下安装软件包。这句话对我来说很模糊。

我检查了“MakeConf”文件,其中我找到了以下几行:

SHLIB_OPENMP_CFLAGS = -fopenmp
SHLIB_OPENMP_CXXFLAGS = -fopenmp
SHLIB_OPENMP_FCFLAGS = -fopenmp
SHLIB_OPENMP_FFLAGS = -fopenmp

在名为“MakeVars”的文件中添加这些行也无济于事:

PKG_CXXFLAGS=-fopenmp
PKG_LIBS= -fopenmp -lgomp 

我在Windows 10上使用R 3.4.1,并使用标准的install.packages()过程安装了软件包。

PS:这篇文章中给出的答案对我来说是不可理解的:How do we enable OpenMP to use multiple cores -- glintenet

修改

我尝试从Windows终端安装软件包。我会说一切都好,因为我可以看到很多行引用gcc和/或openmp。例如,我可以看到:

c:/Rtools/mingw_64/bin/gcc -I"C:/PROGRA~1/R/R-34~1.1/include" -DNDEBUG -I"d:/Compiler/gcc-4.9.3/local330/include" -fopenmp -O2 -Wall -std=gnu99 -mtune=core2 -c c_routines.c -o c_routines.o 

但是它没有改善包函数的执行时间。

0 个答案:

没有答案