BLT

Build, Link and Triumph

BLT is composition of CMake macros and several widely used open source tools assembled to simplify HPC software development.

BLT was released by Lawrence Livermore National Laboratory (LLNL) under a BSD-style open source license. It is developed on github under LLNL’s github organization: https://github.com/llnl/blt

BLT at a Glance

  • Simplifies Setup
    • CMake macros for:
      • Creating libraries and executables
      • Managing compiler flags
      • Managing external dependencies
    • Multi-platform support (HPC Platforms, OSX, Windows)
  • Batteries included
    • Built-in support for HPC Basics: MPI, OpenMP, and CUDA
    • Built-in support for unit testing in C/C++ and Fortran
  • Streamlines development processes
    • Support for documentation generation
    • Support for code health tools:
      • Runtime and static analysis, benchmarking

BLT Developers

Developers include:

BLT User Tutorial

This tutorial is aimed at getting BLT users up and running as quickly as possible.

It provides instructions for:

  • Adding BLT to a CMake project
  • Setting up host-config files to handle multiple platform configurations
  • Building, linking, and installing libraries and executables
  • Setting up unit tests with GTest
  • Using external project dependencies
  • Creating documentation with Sphinx and Doxygen

The tutorial provides several examples that calculate the value of \pi by approximating the integral f(x) = \int_0^14/(1+x^2) using numerical integration. The code is adapted from: https://www.mcs.anl.gov/research/projects/mpi/usingmpi/examples-usingmpi/simplempi/cpi_c.html.

The tutorial requires a C++ compiler and CMake, we recommend using CMake 3.8.0 or newer. Parts of the tutorial also require MPI, CUDA, Sphinx and Doxygen.

Tutorial Contents