読者です 読者をやめる 読者になる 読者になる

R 2.13.0 の OpenMP 関連 make マクロ

R 2.13.0 から OpenMP 用のマクロ

SHLIB_OPENMP_CFLAGS
SHLIB_OPENMP_CXXFLAGS
SHLIB_OPENMP_FCFLAGS
SHLIB_OPENMP_FFLAGS

が Makevars ファイル中で使えるようになっていたらしい (Writing R Extensions)。

パッケージの src ディレクトリ中に OpenMP に対応したコード (#pragma openmp で始まる指示) を書いたソースファイルを入れておき、Makevars ファイルを

PKG_CFLAGS = $(SHLIB_OPENMP_CFLAGS)
PKG_LIBS   = $(SHLIB_OPENMP_CFLAGS)

こんな感じ*1で作っておくと、Rconfig.h で SUPPORT_OPENMP マクロが定義されていた場合に、コンパイルオプション (-fopenmp とか) を付けてバイナリを作ってくれるらしい。


あと CRAN の r-devel-linux-x86_64-gcc-fedora は 8 コアらしい。

*1:C 言語なら *_CFLAGS