私が書いている(R)プログラムは、ある時点で、結果のプログラムを高速化するために、OpenMP命令を含むCソースコードファイルを書き込むことができます(これらのファイルには、主に、結果が配列に書き込まれる微分方程式のセットが含まれています-としてこれらのステップは独立して実行できます。ompセクションを使用して並列化することをお勧めします)。この方法で生成されたファイルは私のプログラムの別の部分で使用されることになっているので、実行時に使用してそれらをコンパイルするためにRも使用します。このアプローチには、を使用して特定のコンパイラを課す必要がないsystem(R CMD SHLIB...)
という利点があるようです。R CMD SHLIB
ユーザー。
私が現在直面している問題は、-fopenmp
(または-openmp
)コンパイラ指令をに渡すことができず、RパッケージをビルドしていないときにR CMD SHLIB
追加のコンパイラフラグ(または理想的には)を提供するMakevarsファイルを使用できないこと$SHLIB_OPENMP_CFLAGS
です-私はこの場合は実行しないので、R CMD SHLIB
指定したファイルをコンパイルします。ただし、OpenMPの並列化がないとSHLIB
、この状況で対応するフラグを渡す方法がわかりません。
とにかくこのタスクに使用する可能性はありますかR CMD SHLIB
、それともOpenMPコンパイル用のコンパイラーを内部的に指定することによって移植性を犠牲にする必要がありますか?