[llvm-dev] [Openmp-dev] [cfe-dev] RFC: Proposing an LLVM subproject for parallelism runtime and support libraries

C Bergström via llvm-dev
Wed, 01 Jun 2016 11:46:57 -0000

On Wed, Jun 1, 2016 at 7:22 PM, Hal Finkel <hfinkel at anl.gov>
wrote:
>
> ________________________________
>
> From: "C Bergström" <cbergstrom at pathscale.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>,
"cfe-dev"
> <cfe-dev at lists.llvm.org>, "openmp-dev" <openmp-dev at
lists.llvm.org>,
> "Chandler Carruth" <chandlerc at gmail.com>, "Carlo
Bertolli"
> <cbertol at us.ibm.com>, "Andrey Bokhanko"
<andreybokhanko at gmail.com>
> Sent: Wednesday, June 1, 2016 12:19:19 AM
> Subject: Re: [Openmp-dev] [llvm-dev] [cfe-dev] RFC: Proposing an LLVM
> subproject for parallelism runtime and support libraries
>
> The thread has lost focus and cherry picking replies..
>
> To restate things since maybe you missed my points
> ----
> 1) SE is a programming model and needs a home of it's own. Having a
> programming model with it's headers and all other stuff glued into a
runtime
> project which intends to be universal and PM agnostic doesn't make
sense.
>
> They'd start in separate subdirectories.
>
>
> 1.1) The more I look, the most it seems SE is just a step-child project and
> stuffing it in llvm while still not having any users or strong backing
> doesn't make sense. We have enough PM already and my gut feeling is
this
> isn't going in a direction to bring in other stakeholders.

Point by point because I don't agree with what you write below entirely

>
> I think this is the core of my reply. OpenMP has a strong user community,

I'd agree here

> but OpenMP 4 offloading is still young.

ditto

> OpenMP 4 offloading does not yet
> have a real user community

agreement

> yet because the first implementations just
> started shipping very recently.

Partially strongly disagree - Maybe you meant on Power8?
Intel has had their support for OMP4 for quite some time. It may have
been buggy and focused on simd directive, but as best I can tell they
have worked quite hard to fix bugs and improve it.

(Shameless self promotion) We have had some degree of OMP4 offloading
for like 1.5 years now.. It's mostly targeting the GPU and x86, but
also more recently working on Power8/AArch64.

I'm quite certain these companies all have varying degrees of OMP4
done: Cray, IBM, PGI

> Furthermore, our implementation is certainly
> quite new, and OpenMP 4 offloading is really quite akin to SE in that
> regard.

Strongly disagree - Intel has been working with the LLVM community on
the parsing/sema and other parts of OMP4 for like a year or more..
This has been a long and well vetted process backed back a well
defined standard. Compared to SE which is just some thing that popped
up out of nowhere and has a couple people from Google throwing their
weight around.

> I view them both as experimental projects, and both have strong
> backing with significant investment, so I expect both to mature over time.

I'd agree both are experimental and probably need some work. I'd
strongly disagree the amount of investment of both projects is equal.
Again - OMP4 may have zero real world users, but there's a lot of
stubborn people trying to make it work. Compared to SE which the
people involved have yet to even answer basic things - like what's the
future of SE and how to contribute to it.

> Our non-subtle strategic goal as a community should be to encourage the
> various teams to take advantage of each others expertise in the most
> practical way.

I think we need to pushback against more programming models, but I
agree we should encourage lots of great patches around things like the
pass manager.

IMHO it's more productive to spend time trying to improve the
programming models and standards we have than experimental fun ideas.
---------
Can you point me at something concrete which SE would allow you to do
which an existing model can't?

I'll shutup and apologize if real side by side comparisons for the
beauty of SE come out.