Announcement

Collapse
No announcement yet.

AESOP: A New Auto-Parallelizing Compiler

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • AESOP: A New Auto-Parallelizing Compiler

    Phoronix: AESOP: A New Auto-Parallelizing Compiler

    AESOP is a new auto-parallelizing C/C++ compiler for shared memory systems. This new open-source compiler was written at the University of Maryland and is now available to the public...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    It's worth noting that this is built as a Clang/LLVM modification. It "replaces" Clang in that it offers a driver (CLI tool) to invoke itself using the modified Clang frontend and LLVM backend. It offers a GCC driver by using a modified DragonEgg plugin (LLVM backing a GCC frontend).

    It's essentially a large patch to Clang/LLVM, not a whole new compiler.

    Comment


    • #3
      Originally posted by elanthis View Post
      It's worth noting that this is built as a Clang/LLVM modification. It "replaces" Clang in that it offers a driver (CLI tool) to invoke itself using the modified Clang frontend and LLVM backend. It offers a GCC driver by using a modified DragonEgg plugin (LLVM backing a GCC frontend).

      It's essentially a large patch to Clang/LLVM, not a whole new compiler.
      Thanks, elanthis. I am one of the AESOP developers, and this is basically right. AESOP leverages existing LLVM frontends, and just provides its own "replacement" drivers to enable people to easily attempt whole-program autoparallelization in existing projects.

      Although we can compile some major SPEC/NAS benchmarks with good results, we are certainly not claiming that AESOP is anywhere near production-ready. We are also not claiming that this is a whole new compiler framework, rather, it is a compiler implemented using LLVM. Most of the implementation amounts to several significant additional LLVM-based libraries which provide the required analysis and transformations.

      The work was announced to the LLVMdev mailing list in case other LLVM developers/researchers might be interested in the work so far.

      Comment


      • #4
        This sounds great, this is something I think many people hoped for. Is this something that's already being merged into Clang or is it too complicated to simply merge? When can we expect to see this implemented in Clang and do the developers of AESOP plan to continue developing for AESOP exclusively or work with Clang more closely instead?
        Last edited by Feared; 04 March 2013, 05:38 PM. Reason: forgotten words

        Comment


        • #5
          Originally posted by Feared View Post
          This sounds great, this is something I think many people hoped for. Is this something that's already being merged into Clang or is it too complicated to simply merge? When can we expect to see this implemented in Clang and do the developers of AESOP plan to continue developing for AESOP exclusively or work with Clang more closely instead?
          Although architecturally the AESOP analysis and code generation might merge nicely into LLVM, the problem is that AESOP's code is only research quality; it would need a lot of cleanup, review, and testing before it would be worthy of inclusion in LLVM. We announced to the LLVM mailing list because our research projects which used these parts of AESOP are winding down, and we thought it would be good to make the work available in case others find it useful. Although it is not production-ready, it can still compile pretty large projects and sometimes gets good results without the user having to resort to manual parallelization.

          Comment

          Working...
          X