Patrick,

> On 4/04/2020, at 1:33 AM, Patrick Schratz <patrick.schr...@gmail.com> wrote:
> 
> Simon,
> 
> thanks. I assume that you mean “clang from homebrew” = llvm (from homebrew)?

LLVM is the compiler infrastructure project, clang is the C/C++ compiler from 
that project. We don't use any of the other compilers form LLVM.


> Indeed I am currently trying that out and it looks really robust for source 
> installations (more than the systems clang (+ eventual openMP flags like 
> suggested by Kevin) and other variants (gcc from homebrew or openMP enabled 
> clang7 or 8).
> 
> Note that I do not use R via homebrew.
> 
> However, all in all I am essentially mixing the custom llvm from homebrew 
> with the official R installer and the old 10.13 SDK.
> It looks quite complex and I’d wish everything would be easier. However, in 
> the end I just want to have a stable “install from source” environment that 
> works for all packages out there (I do not use the binaries).
> 

Why don't use use Homebrew? That's exactly what Homebrew provides - its own 
ecosystem, everything form source (with cached binaries if you want them).


> All in all I am a bit confused now about all the mixing and options 
> available. Let’s see what the foreseeable future brings and where things are 
> going.
> 

Mixing is not available. You pick one system and go with it, but can't mix 
between them, because of the different run-time libraries.


> Regarding the SDK issue: I think most users just use the binaries on macOS 
> (across all OS versions) and rarely face such issues. And there are 
> presumably not many people out there that do actual R-devel testing on 
> Catalina (?), otherwise I’d expect way more people to jump into the 
> discussion. However, I am not alone with these issues as you can see in the 
> Rcpp issue we were talking about. 
> Maybe you can even reproduce the issues by linking a custom install of the 
> 10.15 SDK on a non-Catalina machine? I don’t know how much trouble that would 
> bring up when trying to jump into the future - but this ist just an idea :)
> 

That's an entirely different, unrelated topic. Testing cutting edge (or even 
pre-release) systems makes sense, but that's not our current worry (there was a 
separate thread about CI).

Cheers,
Simon


> Thanks for your work!
> On 3. Apr 2020, 14:13 +0200, Simon Urbanek <simon.urba...@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
>> 
>> 
>> 
>>> On 4/04/2020, at 1:00 AM, Patrick Schratz <patrick.schr...@gmail.com> wrote:
>>> 
>>> 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.urba...@r-project.org>, 
>>> wrote:
>>>> Patrick,
>>>> 
>>>> you can't mix compilers - it really matters which iomp your'e using. llvm 
>>>> has its own modified version which may not be the same as the official 
>>>> Intel release. From your tests it looks like you're using the llvm one 
>>>> which will likely work only with that compiler. Since Apple doesn't have 
>>>> official omp support it's hard to say which versions work and which don't.
>>>> 
>>>> 
>>>>> On 3/04/2020, at 10:20 AM, Patrick Schratz <patrick.schr...@gmail.com> 
>>>>> wrote:
>>>>> 
>>>>> Thanks Kevin, interesting approach.
>>>>> 
>>>>> However, when testing it against a few packages I get symbol pointer 
>>>>> issues (e.g. for data.table and xgboost).
>>>>> Using llvm everything works.
>>>>> Could llvm be the best middle way? Easy installation via brew and still 
>>>>> clang compliant.
>>>>> 
>>>>> Currently my Makevars look as follows
>>>>> 
>>>>> CFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk
>>>>> […]
>>>>> 
>>>>> CC = ccache /usr/local/opt/llvm/bin/clang
>>>>> […]
>>>>> 
>>>>> Where llvm was installed via `brew install llvm`.
>>>>> SDK 10.13 because of {igraph} and {Rcpp} issues with SDK 10.14 and SDK 
>>>>> 10.15
>>>> 
>>>> 
>>>> I mentioned that before, but I do not see issues with 10.14 SDK.
>>>> 
>>>> Cheers,
>>>> Simon
>>>> 
>>>> 
>>>>> On 2. Apr 2020, 23:01 +0200, Simon Urbanek <simon.urba...@r-project.org>, 
>>>>> wrote:
>>>>>> Tim,
>>>>>> 
>>>>>> 
>>>>>>> On 3/04/2020, at 2:01 AM, BATES Timothy <tim.ba...@ed.ac.uk> wrote:
>>>>>>> 
>>>>>>> Moving to a compiler that drops support for OpenMP seems a sad choice, 
>>>>>>> especially now we’ve all climbed the learning curve of the non-Apple 
>>>>>>> compiler (the real barrier was lack of a pkg installer and that’s done 
>>>>>>> now).
>>>>>>> 
>>>>>> 
>>>>>> It has caused a lot of issues, it trips people on a daily basis which is 
>>>>>> just not worth it. Also with Apple's increasingly strict rules about 
>>>>>> what can be distributed we don't want to be in the business in 
>>>>>> maintaining a separate toolchain. There have been numerous issues with 
>>>>>> C++ exceptions so the fall out was much bigger than originally expected 
>>>>>> and it would only get worse.
>>>>>> 
>>>>>> 
>>>>>>> Losing OpenMP for the CRAN version of OpenMx/umx (our SEM packages) 
>>>>>>> would be a big loss for users (for whom the CRAN version now supports 
>>>>>>> OpenMP giving them a 2-12x speed up). In general, R on Mac is made more 
>>>>>>> viable by having OpenMP
>>>>>>> 
>>>>>>> Re Brian’s points, I’d say that the distribution problem is crucial: 
>>>>>>> Packages not on CRAN have dramatically diminished accessibility/useage.
>>>>>>> 
>>>>>> 
>>>>>> The idea is that if a package deems this critical, it can enable this 
>>>>>> for the users. As it is now, packages can still supply iomp and use it.
>>>>>> 
>>>>>> That said, I would open for discussion the ability to distribute iomp 
>>>>>> with the R binary, but it would not be supported by R directly, i.e., it 
>>>>>> would be on the package author to make sure that the way the package 
>>>>>> operates is compatible with that binary. Let me know what you think.
>>>>>> 
>>>>>> 
>>>>>>> Second, a great range of compute-intensive problems are amenable to 
>>>>>>> division amongst cores, including nearly all models that take more than 
>>>>>>> a nominal amount of time to run: So simulations, CIs, bootstrapping, 
>>>>>>> nearly everything in genetics all speeds up.
>>>>>>> 
>>>>>> 
>>>>>> Yes, but OpenMP is rarely used for those tasks. In R OpenMP can be only 
>>>>>> used for very small subset of such tasks - which is why alternative 
>>>>>> approaches are much more common.
>>>>>> 
>>>>>> Cheers,
>>>>>> Simon
>>>>>> 
>>>>>> 
>>>>>>> I’d say especially on desktop/laptop. The big advantage of multi blade 
>>>>>>> systems requires snowfall-type solutions, but desktops profit 
>>>>>>> automatically from their multi-core structure and don;’t have multiple 
>>>>>>> processors (except graphics, which no-one seems to be exploiting on 
>>>>>>> CRAN-style R), so OpenMP is their one trick. I’d hope not to lose it.
>>>>>>> 
>>>>>>> Best, t
>>>>>>> 
>>>>>>> 
>>>>>>>> On 2 Apr 2020, at 05:18, Prof Brian Ripley <rip...@stats.ox.ac.uk> 
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> On 01/04/2020 22:02, Simon Urbanek wrote:
>>>>>>>>> JJB,
>>>>>>>>> 1. correct, there was too much trouble in this. But please feel free 
>>>>>>>>> to start a new thread about this here if you have strong opinions.
>>>>>>>> 
>>>>>>>> Also note that it is possible (and not hard) to install packages from 
>>>>>>>> source with an OpenMP-supporting compiler, and how to do so is in the 
>>>>>>>> R-admin manual. The problems come in distributing them.
>>>>>>>> 
>>>>>>>> The benefits of OpenMP are often overestimated, especially on 
>>>>>>>> desktop/laptop level hardware. But it is available for the small 
>>>>>>>> (tiny?) proportion of users who need it.
>>>>>>> The University of Edinburgh is a charitable body, registered in 
>>>>>>> Scotland, with registration number SC005336.
>>>>>>> _______________________________________________
>>>>>>> R-SIG-Mac mailing list
>>>>>>> R-SIG-Mac@r-project.org
>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>>> 
>>>>>> _______________________________________________
>>>>>> R-SIG-Mac mailing list
>>>>>> R-SIG-Mac@r-project.org
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>> 
>> 

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to