[R-SIG-Mac] OpenMP on CRAN (Simon Urbanek)

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Sat May 2 09:55:30 CEST 2020


JJB,

good idea, I didn't think of it, I have now moved this one and the recipes repo to

https://github.com/R-macos

Cheers,
Simon


> On 2/05/2020, at 4:32 AM, Balamuta, James Joseph <balamut2 using illinois.edu> wrote:
> 
> Simon,
> 
> Thank you for the official instructions on using OpenMP with R 4.0.0!
> 
> Also, thanks for making the source behind mac.r-project.org available on GitHub! 
> https://github.com/s-u/R-mac-dev
> 
> Would you consider creating an organization to house all repositories related to R for macOS in a manner similar to R for Windows?
> 
> e.g. https://github.com/r-windows 
> 
> Best,
> 
> JJB
> 
> On 4/30/20, 8:10 PM, "R-SIG-Mac on behalf of Simon Urbanek" <r-sig-mac-bounces using r-project.org on behalf of simon.urbanek using R-project.org> wrote:
> 
>    I have now created a page about this:
> 
>    http://mac.r-project.org/openmp
> 
>    which also provides libomp binaries for all recent versions of Xcode (and more).
> 
>    Important note: this is about Xcode - it is NOT about using Homebrew tools nor the custom compilers we used before R 4.0.0. Both of the latter are not suitable for use with R 4.0.0 binaries.
> 
>    Please give it a shot. Thanks for those participating in the discussion.
> 
>    Cheers,
>    Simon
> 
> 
> 
>> On 1/05/2020, at 2:23 AM, Wright, Erik Scott <ESWRIGHT using pitt.edu> wrote:
>> 
>> Hi Kevin et al.,
>> 
>> The setup you suggested did not work for me, but I was able to get OpenMP to work on Mac (10.13) with R v4.0 packages.  Here's what I did:
>> 
>> (1) After installing Homebrew, ran
>> brew install libomp
>> # Note it is also possible to install from OpenMP Source code: https://releases.llvm.org/download.html#10.0.0
>> (2) Determined the install path with
>> brew --prefix libomp
>> # In my case /usr/local/opt/libomp
>> (3) Added lines to ~/.R/Makevars
>> CC=/usr/local/clang4/bin/clang -fopenmp -I/usr/local/opt/libomp/include
>> LDFLAGS=-L/usr/local/opt/libomp/lib
>> 
>> I imagine the process is similar for C++ code by setting CXX.  Now parallelization for C code with OpenMP is working again on Mac.
>> 
>> As always, I am thankful to the R community for helping problem solve.
>> 
>> I wish more direction along these lines could be added to mac.r-project.org
>> 
>> Erik
>> 
>> 
>>> On Apr 29, 2020, at 1:51 AM, Dmitriy Selivanov <selivanov.dmitriy using gmail.com> wrote:
>>> 
>>> Thanks, Kevin, I can confirm suggested setup works fine so far. Thank you!
>>> 
>>> I understand it, is that there's
>>> no guarantee that this will work properly (or continue to work
>>> properly) as the Apple toolchain continues to be updated -- e.g. a new
>>> version of macOS / Xcode could install a version of Apple Clang that
>>> is then incompatible with the version of libomp currently in use. In
>>> such a case, I suspect one would need to find and reinstall libomp.
>>> 
>>> Thats understandable. 
>>> 
>>> On Sat, Apr 25, 2020 at 8:09 PM Kevin Ushey <kevinushey using gmail.com> wrote:
>>> The following works for me on macOS 10.15.4 using Apple Clang + libomp
>>> from LLVM 10 (via Homebrew).
>>> 
>>> Install libomp from Homebrew with:
>>> 
>>>    brew install libomp
>>> 
>>> Then, put the following in ~/.R/Makevars
>>> 
>>>    CPPFLAGS += -I/usr/local/opt/libomp/include -Xclang -fopenmp
>>>    LDFLAGS += -L/usr/local/opt/libomp/lib -lomp
>>> 
>>> Then R will automatically enable + use OpenMP as appropriate when
>>> installing packages from sources.
>>> 
>>> The main danger of this approach, as I understand it, is that there's
>>> no guarantee that this will work properly (or continue to work
>>> properly) as the Apple toolchain continues to be updated -- e.g. a new
>>> version of macOS / Xcode could install a version of Apple Clang that
>>> is then incompatible with the version of libomp currently in use. In
>>> such a case, I suspect one would need to find and reinstall libomp.
>>> 
>>> In theory, this could be alleviated by ensuring all users download and
>>> use the same version of Xcode as is being used by the macOS build
>>> machine (Xcode 10.1), but in practice users will likely just be using
>>> the "default" set of command line tools that comes with their version
>>> of macOS.
>>> 
>>> Cunningham's law will hopefully ensure someone else will chime in if
>>> I've got something wrong :-)
>>> 
>>> Best,
>>> Kevin
>>> 
>>> On Sat, Apr 25, 2020 at 8:29 AM Wright, Erik Scott <ESWRIGHT using pitt.edu> wrote:
>>>> 
>>>> I second this request.  Dropping OpenMP support in R v4.0 on Mac is unfortunate.  My R package is highly parallelized via OpenMP, and many of my end-users take advantage of the excellent speedups.  It would be much appreciated if user-level instructions could be provided for how to enable OpenMP support on the Mac.
>>>> 
>>>> Thanks,
>>>> Erik
>>>> 
>>>> 
>>>>> On Apr 23, 2020, at 7:08 AM, Dmitriy Selivanov <selivanov.dmitriy using gmail.com> wrote:
>>>>> 
>>>>> Hi Simon,
>>>>> 
>>>>> Just wanted follow up on this topic.
>>>>> 
>>>>> It would be very helpful if you can provide some guide on
>>>>> https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmac.r-project.org%2F&data=02%7C01%7Ceswright%40pitt.edu%7C65097590dea4453ab8cf08d7e776b868%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1%7C0%7C637232369415901734&sdata=qlhXuEubgD6PNmkbD%2BWQy5OI9X%2BGjxSYHMNjA%2BQHZzI%3D&reserved=0<https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmac.r-project.org%2F&data=02%7C01%7Ceswright%40pitt.edu%7C65097590dea4453ab8cf08d7e776b868%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1%7C0%7C637232369415911728&sdata=5XR5LJuAKu4%2B3%2FUHsWVPMlyXTLY87P6OF%2FP%2FTZt1W8Y%3D&reserved=0> for those users
>>>>> (advanced?) and developers who wants to be able to use OpenMP on mac. From
>>>>> what I've understood from this mail thread the easiest way is to install R
>>>>> from homebrew as it is built with non-standard Apple toolchain.
>>>>> Apart from that you've mentioned you may consider to bundle binary  iomp
>>>>> with R installation, but "it would be on the package author to make sure
>>>>> that the way the package operates is compatible with that binary". Could
>>>>> you please elaborate on that?
>>>>> 
>>>>> I believe I'm not alone who would like to be able to use OpenMP on mac and
>>>>> "official" guidance would be very helpful.
>>>>> 
>>>>> --
>>>>> Regards
>>>>> Dmitriy Selivanov
>>>>> 
>>>>>      [[alternative HTML version deleted]]
>>>>> 
>>>>> _______________________________________________
>>>>> R-SIG-Mac mailing list
>>>>> R-SIG-Mac using r-project.org
>>>>> https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-mac&data=02%7C01%7Ceswright%40pitt.edu%7C65097590dea4453ab8cf08d7e776b868%7C9ef9f489e0a04eeb87cc3a526112fd0d%7C1%7C0%7C637232369415911728&sdata=yAu4MKX2Ka5yEaoq51byWJSkbL%2FpO1HvtUsI%2BQXmtJQ%3D&reserved=0
>>>> 
>>>> _______________________________________________
>>>> R-SIG-Mac mailing list
>>>> R-SIG-Mac using r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>> 
>>> 
>>> -- 
>>> Regards 
>>> Dmitriy Selivanov
>> 
> 
>    _______________________________________________
>    R-SIG-Mac mailing list
>    R-SIG-Mac using r-project.org
>    https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> 



More information about the R-SIG-Mac mailing list