The International Conference for High Performance Computing, Networking, Storage and Analysis
bgclang: Creating an Alternative, Customizable, Toolchain for the Blue Gene/Q.
Authors: Hal Finkel (Argonne National Laboratory)
Abstract: bgclang, a compiler toolchain based on the LLVM/Clang compiler infrastructure, but customized for the IBM Blue Gene/Q (BG/Q) supercomputer, is a successful experiment in creating an alternative, high-quality compiler toolchain for non-commodity HPC hardware. By enhancing LLVM with support for the BG/Q's QPX vector instruction set, bgclang inherits from LLVM/Clang a high-quality auto-vectorizing optimizer, C++11 frontend, and many other associated tools. Moreover, bgclang provides both unique capabilities and a much-needed platform for experimentation. Here we'll focus on two examples: First, bgclang's Address Sanitizer feature, which provides efficient instrumentation-based memory-access validation at scale; Second, experiments in loop optimization techniques, including a software prefetching optimization, within bgclang. These loop optimizations can produce 2x speedups over code produced by other available compilers for loops in the TSVC bechmark suite.