parallel-lib: New LLVM Suproject

Hi Tanya,

As discussed in the past few weeks in the llvm-dev thread “RFC: Proposing an LLVM subproject for parallelism runtime and support libraries”, we would like to start a new LLVM subproject called parallel-libs (a kind of a parallel cousin to compiler-rt), and I was told you were the one to contact in order to get it created. The charter for the project is included below. Are you able to get this subproject set up?

Thanks for your help,

-Jason

Charter:

Jason,

This sounds good. Have you created the project in SVN yet?

I’ll need to do the post commit hook to the mailing lists, plus set up mailing lists. Would anyone want to volunteer to moderate the new mailing lists? Will you have docs that need updating or website?

-Tanya

Thanks for your help, Tanya!

I haven’t created the project in SVN yet. Am I able to set it up myself on the LLVM servers, or does someone else need to do that part?

I’ll be glad to volunteer to moderate the new mailing lists.

We will want a website. I think there will be a top-level docs directory for the project and a docs directory for each subproject. To begin with, StreamExecutor will be the only subproject so the structure will look something like this:

parallel-libs/
docs/
stream_executor/
docs/

Does that seem like a reasonable way to set it up?

What will it look like when they add the liboffload from OMP?

Would it be parallel-libs/libomptarget/
or
parallel-libs/omp/libomptarget/

If there's any code in SE which is "common" and can or should be
reused to consumed - maybe give some long term consideration to
superficial refactoring. This "lib/API" design mentality is common in
llvm/clang and it would be nice if it was mirrored here.

Would it be parallel-libs/libomptarget/
or
parallel-libs/omp/libomptarget/

To me the second way seems better because it seems likely that other OpenMP stuff could end up in there in the long run.

Once we decide on which code to share, I think we will end up with new directories at the top level for those common components.

Thanks for your help, Tanya!

I haven’t created the project in SVN yet. Am I able to set it up myself on the LLVM servers, or does someone else need to do that part?

You can do this yourself within the llvm-project SVN repository.

I’ll be glad to volunteer to moderate the new mailing lists.

Thanks!

We will want a website. I think there will be a top-level docs directory for the project and a docs directory for each subproject. To begin with, StreamExecutor will be the only subproject so the structure will look something like this:

parallel-libs/
docs/
stream_executor/
docs/

Does that seem like a reasonable way to set it up?

Yes for docs. Virtually all the projects have a www directory within their project. That usually holds static web pages. Then there is a docs directory that has either static docs or sphinx generated docs. Doxygen would also fall in there. The scripts are all set up to handle this sort of project layout (www and docs).

You could probably easily have a top level www for parallel-libs and also each project have its own website if needed or not. Its fine for each subprojects to have its own docs dir… they would just get built separately unless you set up cmake to build everything at the top level and combine the docs? Not sure how you want that to work.

-Tanya

Huh? What makes you think so?

Have you consulted with OpenMP developers and users?

Yours,
Andrey

Hi Andrey,

Sorry, I definitely misspoke when I said it was likely for OpenMP stuff to end up in this new project. I meant to say that it was possible in the long run, but there are no plans for that now.

I don't think it's overstepping to say that at all - I'd love for the
Intel and "OpenMP" guys to consider this a viable home. If the
libtarget stuff from omp really wants to play nice with llvm projects
as a whole, this will be that common denominator place where reviews
and feedback can combine.

To put this another way - I'd be slightly disappointed if people
working on OpenMP wouldn't consider this.
The things they are working on can/should be shareable across multiple
programming models..

Jason,

No worries – I just wanted to stress that relocation of libomp from a separate project to the new “parallel” one is not guaranteed and should be guided by the best interests of its developers and users.

Yours,
Andrey

Tanya,

I just set up the parallel-libs project in SVN (r273452), so I think it is ready to have the mailing lists created and the post-commit hooks set up. Again, I’m glad to moderate the mailing lists.

Thanks for all your help