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 Linux Hardware Reviews
  1. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver
  2. MSI: Update Your BIOS From The Linux Desktop
  3. NVIDIA vs. AMD 2D Linux Drivers: Catalyst Is Getting Quite Good At 2D
  4. 15-Way GPU Comparison With Mesa 10.3 + Linux 3.17
Latest Linux News
  1. Automatic Feedback Directed Optimizer Merged Into GCC
  2. Debian Now Defaults To Xfce On Non-x86 Desktops
  3. Phoenix Is Trying To Be An Open Version Of Apple's Swift
  4. Linux 3.19 To Have Skylake Graphics, PPGTT Enablement
  5. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  6. Imagination Releases Full ISA Documentation For PowerVR Rogue GPUs
  7. Features GNOME Developers Want In The Linux Kernel
  8. GTK+ Gains Experimental Overlay Scrollbars
  9. Phoronix Test Suite 5.4 M3 Is Another Hearty Update
  10. GParted 0.20 Improves Btrfs Support
Latest Forum Discussions
  1. Users/Developers Threatening Fork Of Debian GNU/Linux
  2. Proof that strlcpy is un-needed
  3. xbox one tv tuner
  4. HOPE: The Ease Of Python With The Speed Of C++
  5. Bye bye BSD, Hello Linux: A Sys Admin's Story
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. NVIDIA Presents Its Driver Plans To Support Mir/Wayland & KMS On Linux
  8. AMD Is Restructuring Again, Losing 7% Of Employees