Simon,

thanks. I assume that you mean “clang from homebrew” = llvm (from homebrew)?
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).

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.

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 :)

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
> > >
>

        [[alternative HTML version deleted]]

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

Reply via email to