Skip to content

OpenMP on CRAN

2 messages · Patrick Schratz, Simon Urbanek

#
Simon,

I don?t understand fully. I am using llvm for all C variants (just now shown) in combination with the 10.13 SDK.
So far this combination works flawlessly for all ?problematic? packages like data.table, igraph or Rcpp.

I don?t have deeper knowledge about the ?iomp? setup but as of right now I don?t know what I am mixing up here. Can you shine more light on this?
If it is about llvm in general: data.table recommends to use llvm openly in their wiki due to the lack of openMP for the standard clang.
And while this could be handled as ?any other package? in R, we all know that it has quite some impact and probably devs who know what they do in terms of C configs.

Regarding the SDK issue: Both Rcpp v1.0.4 and igraph 1.2.5 can?t be installed from source with SDK 10.15 and standard apple clang (or any C compiler). Switching to SDK 10.13 solves the issue. You were even commenting on the Rcpp issue.
Since SDK 10.15 is the current release and many users have no choice on which OS version they are (for different reasons), this issue should imo be inspected in more detail. What do you think?

Best, Patrick
On 2. Apr 2020, 23:38 +0200, Simon Urbanek <simon.urbanek at r-project.org>, wrote:

  
  
#
Patrick,

you were commenting on the thread where we talked about CRAN R - that one is now compiled using Apple clang. You were talking about using clang from Homebrew - those are incompatible as they use different run-time. Unfortunately, the Intel OpenMP run-time varies by clang compiler version and is known to fail when used with the wrong compiler. Analogously, mixing gomp (from gcc) and iomp is problematic (and GNU Fortran uses gomp). As discussed in the Homebrew thread, if you are compiling everything via Homebrew including R then it's all good, you just can't mix Apple tools and Homebrew in general.

Also at the bottom I was only talking about 10.14 SDK - that's what we use on CRAN and I have not seen any issues with it - you were claiming that it doesn't work with Rcpp and igraph.

Cheers,
Simon