[llvm-dev] [Openmp-dev] [cfe-dev] RFC: Proposing an LLVM subproject for parallelism runtime and support libraries
Chris Lattner via llvm-dev
llvm-dev at lists.llvm.org
Wed Apr 27 12:49:49 PDT 2016
On Apr 27, 2016, at 9:58 AM, Jason Henline via Openmp-dev <openmp-dev at lists.llvm.org> wrote:
> The LLVM open source project will contain a subproject named `parallel_utils` which will host the development of libraries which are aimed at enabling parallelism in code and which are also closely tied to compiler technology. Examples of libraries suitable for hosting within the `parallel_utils` subproject are runtime libraries and parallel math libraries. The initial candidates for inclusion in this subproject are StreamExecutor and libomptarget which would live in the `streamexecutor` and `libomptarget` subdirectories of `parallel_utils`, respectively.
> The `parallel_utils` project will host a collection of libraries where each library may be dependent on other libraries from the project or may be completely independent of any other libraries in the project. The rationale for hosting independent libraries within the same subproject is that all libraries in the project are providing related functionality that lives at the intersection of parallelism and compiler technology. It is expected that some libraries which initially began as independent will develop dependencies over time either between existing libraries or by extracting common code that can be used by each. One of the purposes of this subproject is to provide a working space where such refactoring and code sharing can take place.
Perhaps this is the intent, but I’d suggest specifically scoping the project to being “runtime” libraries specifically: things like math libraries are great to have, but something like a suite of auto-parallelization passes should be in another subproject. This avoids some license issues we currently have, but also helps more directly express the intent of the project and make the scope more clear. This would also allow you to replace the “utils” suffix with “rt”, to mirror compiler_rt.
More information about the llvm-dev