Skip to content
develop
Switch branches/tags
Code

BLT

Build Status Documentation Status

BLT is a streamlined CMake-based foundation for Building, Linking and Testing large-scale high performance computing (HPC) applications.

BLT makes it easy to get up and running on a wide range of HPC compilers, operating systems and technologies:

Getting started

BLT is easy to pull into an existing or new CMake-based project using a single CMake include() command:

include(path/to/blt/SetupBLT.cmake)

For more information, please check our user documentation and tutorial.

Questions

Any questions can be sent to blt-dev@llnl.gov. If you are an LLNL employee or collaborator, we have an internal Microsoft Teams group chat named "BLT" as well.

Contributions

We welcome all kinds of contributions: new features, bug fixes, documentation edits.

To contribute, make a pull request, with develop as the destination branch. We use CI testing and your branch must pass these tests before being merged.

For more information, see the contributing guide.

Authors

Thanks to all of BLT's contributors.

Open-Source Projects using BLT

  • Adiak: Library for collecting metadata from HPC application runs
  • Ascent: A flyweight in-situ visualization and analysis runtime for multi-physics HPC simulations
  • Axom: Software infrastructure for the development of multi-physics applications and computational tools
  • CARE: CHAI and RAJA extensions
  • CHAI: Copy-hiding array abstraction to automatically migrate data between memory spaces
  • Conduit: Simplified data exchange for HPC simulations
  • Comb: Communication performance benchmarking tool
  • ExaCMech: GPU-friendly library of constitutive models
  • Kripke: Simple, scalable, 3D Sn deterministic particle transport code
  • RAJA: Performance portability layer for HPC
  • SAMRAI: Structured Adaptive Mesh Refinement Application Infrastructure
  • Serac: 3D implicit nonlinear thermal-structural simulation code
  • Spheral: Steerable parallel environment for performing coupled hydrodynamical & gravitational numerical simulations
  • Umpire: Application-focused API for memory management on NUMA and GPU architectures
  • VTK-h: Scientific visualization algorithms for emerging processor architectures
  • WCS: Computational environment for simulating a whole cell model

If you would like to add a library to this list, please let us know via email or by submitting an issue or pull-request.

License

BLT is licensed under the BSD 3-Clause license, (BSD-3-Clause or https://opensource.org/licenses/BSD-3-Clause).

Copyrights and patents in the BLT project are retained by contributors. No copyright assignment is required to contribute to BLT.

See LICENSE for details.

Unlimited Open Source - BSD 3-clause Distribution LLNL-CODE-725085 OCEC-17-023

SPDX usage

Individual files contain SPDX tags instead of the full license text. This enables machine processing of license information based on the SPDX License Identifiers that are available here: https://spdx.org/licenses/

Files that are licensed as BSD 3-Clause contain the following text in the license header:

SPDX-License-Identifier: (BSD-3-Clause)

External Packages

BLT bundles its external dependencies in thirdparty_builtin/. These packages are covered by various permissive licenses. A summary listing follows. See the license included with each package for full details.

PackageName: fruit
PackageHomePage: https://sourceforge.net/projects/fortranxunit/
PackageLicenseDeclared: BSD-3-Clause

PackageName: gbenchmark
PackageHomePage: https://github.com/google/benchmark
PackageLicenseDeclared: Apache-2.0

PackageName: gmock
PackageHomePage: https://github.com/google/googlemock
PackageLicenseDeclared: BSD-3-Clause

PackageName: gtest
PackageHomePage: https://github.com/google/googletest
PackageLicenseDeclared: BSD-3-Clause

PackageName: run-clang-format
PackageHomePage: https://github.com/Sarcasm/run-clang-format
PackageLicenseDeclared: MIT