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:
- Compiler families: gcc, clang, Intel, XL, Visual Studio
- Operating systems: Linux, Mac OS, Windows
- HPC programming models: MPI, OpenMP, CUDA, HIP
- Unit testing and benchmarking (built-in): Google Test (gtest and gmock), FRUIT, gbenchmark
- Documentation: Doxygen, Sphinx
- Code style: AStyle, ClangFormat, cmake-format, Uncrustify, YAPF (Yet Another Python Formatter)
- Code quality clang-query, clang-tidy, Cppcheck
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 [email protected]. 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