1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Why LLVM/Clang Was Ported To A Super Computer

Compiler

Published on 16 November 2012 02:39 PM EST
Written by Michael Larabel in Compiler
11 Comments

Most often whenever writing about LLVM and its Clang C/C++ compiler front-end on Phoronix, within the forums is a flurry of comments from those in support of and against this modular compiler infrastructure. Some are against LLVM/Clang simply because its BSD-licensed and sponsored by Apple rather than the GPLv3-licensed GCC backed by the FSF. Others, meanwhile, see LLVM as presenting unique advantages and benefits. What reasons would a leading US national laboratory have for deploying LLVM/Clang to their leading super-computer? Here's an explanation from them.

The Argonne National Laboratory outside of Chicago presented at the LLVM Developers' Meeting earlier this month in California. The subject of this talk by one of the largest US national laboratories for scientific and engineering research was on "LLVM and Clang on the Most Powerful Supercomputer in the World."

As of the June "Top 500" super-computer numbers, the first and third spots were IBM Blue Gene/Q systems. The top spot was "Sequoia" at the LLNL while Argonne had "Mira" in its third place position. The top twenty positions meanwhile on the Green 500 super-computer list for leading performance-per-Watt were all Blue Gene/Q systems. Argonne National Laboratory had ported LLVM/Clang to their BG/Q super-computer.

Why LLVM/Clang Was Ported To A Super Computer


The BG/Q architecture is 64-bit PowerPC-based with support for Quad-Vector Floating-Point (QPX) to extend regular PowerPC floating-point registers. Each BG/Q node is made of 16 user-accessible cores, one system core, and one spare core. The reasons expressed by Hal Finkel of the ANL laboratory for bringing LLVM/Clang to their super-computer came down to:

- Providing a high-performance and up-to-date C/C++ compiler over the life-time of the machine.

- Researchers at Argonne especially enjoy Clang's diagnostic abilities and static-analysis framework. Specifically noted were tagged-type diagnostics that will benefit the high-performance computing (HPC) community. "To my knowledge, no other compiler can produce these kinds of warnings, and these will be extremely valuable to our users."

- LLVM allows for tapping other languages that have an LLVM back-end like Intel's ISPC and different scripting languages.

- LLVM makes for compelling compiler research on the Blue Gene/Q architecture with its auto-vectorization support, parallelization with transactional memory and speculative execution, and communication-related optimizations and distributed systems.

Bringing LLVM and Clang to the Argonne National Laboratory's impressive super-computer involved modifying the PowerPC back-end, developing an itinerary for the A2-core based upon IBM's documentation, adapting the Hexagon hardware loops pass to work on PowerPC, and adding support for QPX intrinsics in Clang. Those were just the "easy" parts. The ANL researchers additionally developed a basic-block auto-vectorizer, modified the SelectionDAG builder, added support for v4i1 booleans to support QPX logical operations, cleaned-up/modernized the upstream PowerPC back-end, and fixed bugs within LLVM related to the labs' new target code.

With Argonne still being fond of LLVM/Clang, some of their future plans for improving the compiler infrastructure include support for generating all QPX instructions, more PowerPC back-end enhancements like better handling of condition registers and spilling, parallelization support (such as for LLVM/Clang's long-missing OpenMP support), higher level loop transformations with Polly, and MPI-specific optimizations. The national laboratory has a strong desire to make LLVM with Clang a "powerful force in HPC!"

There are PDF slides available of this ANL LLVM presentation for those interested in more details.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Articles & Reviews
  1. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  2. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  3. The New Place Where Linux Code Is Constantly Being Benchmarked
  4. 18-GPU NVIDIA/AMD Linux Comparison Of BioShock: Infinite
  5. Phoronix Test Suite 5.6 Adds New Phoromatic Enterprise Benchmarking Features
  6. OpenGL Threaded Optimizations Responsible For NVIDIA's Faster Performance?
Latest Linux News
  1. Mesa's Android Support Is Currently In Bad Shape
  2. Wayland's Weston Terminal Can Now Be Minimized
  3. Phoronix - Working Towards Faster Page Loads
  4. Improved OpenCL Support For Blender's Cycles Renderer
  5. Mesa 10.5.2 Packs In A Handful Of Fixes
  6. More Fedora/Ubuntu Linux vs. OS X OpenGL Benchmarks
  7. Intel Adds Mesa IR To NIR Translator & Makes Other NIR Improvements
  8. HAMMER2 Gets A Man Page
  9. Kodi 14.2 Released To End Out The "XBMC" 14.x Series
  10. Debian 8.0 Jessie RC2 Installer Released
Most Viewed News This Week
  1. Introducing The Library Operating System For Linux
  2. Allwinner Continues Jerking Around The Open-Source Community
  3. AMD Is Hiring Two More Open-Source Linux GPU Driver Developers
  4. Open-Source Driver Fans Will Love NVIDIA's New OpenGL Demo
  5. Systemd Change Allows For Stateless Systems With Tmpfs
  6. GNOME Shell & Mutter 3.16.0 Released
  7. GNU Nano 2.4.0 Brings Complete Undo System, Linter Support & More
  8. GNOME 3.16 Released: It's Their Best Release Yet
%%CLICK_URL_UNESC%%