Manually writing parallel programs is difficult and error-prone. Automatic parallelization could address this issue, but profitability can be limited by not having facts known only to the programmer. A parallelizing compiler that collaborates with the programmer can increase the coverage and performance of parallelization while reducing the errors and overhead associated with manual parallelization. Unlike collaboration involving analysis tools that report program properties or make parallelization suggestions to the programmer, decompiler-based collaboration could leverage the strength of existing parallelizing compilers to provide programmers with a natural compiler-parallelized starting point for further parallelization or refinement. Despite this potential, existing decompilers fail to do this because they do not generate portable parallel source code compatible with any compiler of the source language. This paper presents SPLENDID, an LLVM-IR to C/OpenMP decompiler that enables collaborative parallelization by producing standard parallel OpenMP code. Using published manual parallelization of the PolyBench benchmark suite as a reference, SPLENDID's collaborative approach produces programs twice as fast as either Polly-based automatic parallelization or manual parallelization alone. SPLENDID's portable parallel code is also more natural than that from existing decompilers, obtaining a 39x higher average BLEU score.
CITATION STYLE
Tan, Z., Chon, Y., Kruse, M., Doerfert, J., Xu, Z., Homerding, B., … August, D. I. (2023). SPLENDID: Supporting Parallel LLVM-IR Enhanced Natural Decompilation for Interactive Development. In International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS (Vol. 3, pp. 679–693). Association for Computing Machinery. https://doi.org/10.1145/3582016.3582058
Mendeley helps you to discover research relevant for your work.