Date: Tue, 30 Aug 2016 18:17:49 -0700 From: "K. Macy" <kmacy@freebsd.org> To: "Eric A. Borisch" <eborisch@gmail.com> Cc: FreeBSD Stable <freebsd-stable@freebsd.org> Subject: Re: Benchmarks results for FreeBSD 11 Message-ID: <CAHM0Q_MsPwVMaxgXryO4m_c2-tXAVHbqqi7%2BsCNq5LHVrY30Ow@mail.gmail.com> In-Reply-To: <CAASnNnqGFJ9bwZ-k3CrobRaPWcOFnxEQJ=crnV-BGAQ_REtZUA@mail.gmail.com> References: <CAASnNnqGFJ9bwZ-k3CrobRaPWcOFnxEQJ=crnV-BGAQ_REtZUA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 30, 2016 at 10:39 AM, Eric A. Borisch <eborisch@gmail.com> wrote: > FWIW, in MacPorts, we patch clang such that it can find the (MacPorts > provided) libomp headers and library. This lets -fopenmp "just work," > and configure scripts can do their job. The libomp headers and lib in > dedicated sub-directories to minimize the impact of -fopenmp adding > them to the include and link paths. > > It is a fairly minor patch, and shouldn't (tm) have any impact on > clang executions without an openmp flag: > https://trac.macports.org/browser/trunk/dports/lang/llvm-3.8/files/openmp-locations.patch > > To get a simple OpenMP test script to compile on FreeBSD, I currently > need to pass (note I'm not the one using -lm): > > clang38 -fopenmp -o test test.c -L /usr/local/llvm38/lib -lm > > instead of (~ what configure will try) > > clang38 -fopenmp -o test test.c > > (11.0RC2 w/ llvm38 installed via pkg) > > I'd love to see base include llvm's OpenMP support, but failing that, > the one from ports should be made to work as configure scripts expect. > > And who knows, if it is there, maybe some items in base will start to > use it. We've got a chicken-and-egg problem right now. Thanks for the patch. Johannes Dieterich hacked the llvm38 port in my graphics branch and: mmacy@armageddon [~|18:13|81] clang++ omp.cpp -fopenmp mmacy@armageddon [~|18:13|81] cat omp.cpp #include <string> #include <iostream> using namespace std; int main(int argc, char** argv) { #pragma omp parallel for default(shared) for(int i = 0; i < 100; ++i){ #ifdef _OPENMP cout << "WITH OPENMP " << i << endl; #else cout << "WITHOUT OPENMP " << i << endl; #endif } return 0; } mmacy@armageddon [~|18:13|82] clang++38 omp.cpp -fopenmp mmacy@armageddon [~|18:13|83] ./a.out| head -5 WITH OPENMP WITH OPENMP 84WITH OPENMP 92WITH OPENMP 44 WITH OPENMP WITH OPENMP 9352WITH OPENMP 76WITH OPENMP WITH OPENMP 0 WITH OPENMP Fingers crossed that this can get propagated to master and the defaults for openblas, FFTW, and others can be made more sensible. -M
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHM0Q_MsPwVMaxgXryO4m_c2-tXAVHbqqi7%2BsCNq5LHVrY30Ow>