Skip to content

Commit 7ec2cb8

Browse files
authored
Merge pull request #478 from LLNL/v0.4.0-rc
0.4.0 rc
2 parents c253509 + 4ebdb32 commit 7ec2cb8

File tree

162 files changed

+5722
-1540
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+5722
-1540
lines changed

.gitlab-ci.yml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
##############################################################################
2+
# Copyright (c) 2017-2021, Lawrence Livermore National Security, LLC and BLT
3+
# project contributors. See the LICENSE file for details.
4+
##############################################################################
5+
6+
variables:
7+
PROJECT_ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
8+
BUILD_ROOT: ${CI_PROJECT_DIR}
9+
10+
stages:
11+
- l_build
12+
- q_allocate_resources
13+
- q_build
14+
- q_release_resources
15+
16+
####
17+
# Template
18+
.srun_build_script:
19+
script:
20+
#Use pre-existing allocation if any
21+
- JOBID=$(squeue -h --name=${PROJECT_ALLOC_NAME} --format=%A)
22+
- ASSIGN_ID=$(if [[ -n "${JOBID}" ]]; then echo "--jobid=${JOBID}"; fi)
23+
- EXEC_PREFIX="srun -p pdebug ${ASSIGN_ID} -t 10 -N 1 --mpibind=off"
24+
#BUILD + TEST
25+
- echo -e "section_start:$(date +%s):build_and_test\r\e[0K
26+
Build and test ${CI_PROJECT_NAME}"
27+
- ${EXEC_PREFIX} .gitlab/build_and_test.sh
28+
- echo -e "section_end:$(date +%s):build_and_test\r\e[0K"
29+
artifacts:
30+
reports:
31+
junit: build/junit.xml
32+
33+
34+
.build_blueos_3_ppc64le_ib_p9_script:
35+
script:
36+
- EXEC_PREFIX="lalloc 1 -W 10 -q pdebug"
37+
#BUILD + TEST
38+
- echo -e "section_start:$(date +%s):build_and_test\r\e[0K
39+
Build and test ${CI_PROJECT_NAME}"
40+
- ${EXEC_PREFIX} .gitlab/build_and_test.sh
41+
- echo -e "section_end:$(date +%s):build_and_test\r\e[0K"
42+
artifacts:
43+
reports:
44+
junit: build/junit.xml
45+
46+
47+
# This is where jobs are included
48+
include:
49+
- local: .gitlab/build_quartz.yml
50+
- local: .gitlab/build_lassen.yml

.gitlab/build_and_test.sh

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
BUILD_DIR=`pwd`/build
6+
7+
echo "~~~~~~~~~~ START:build_and_test.sh ~~~~~~~~~~~"
8+
echo "CWD="`pwd`
9+
echo "BUILD_DIR="$BUILD_DIR
10+
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
11+
12+
rm -rf $BUILD_DIR
13+
mkdir $BUILD_DIR
14+
cd $BUILD_DIR
15+
16+
cmake -C ../host-configs/llnl/$SYS_TYPE/$HOST_CONFIG ../tests/internal
17+
make -j8
18+
ctest -DCTEST_OUTPUT_ON_FAILURE=1 --no-compress-output -T Test -VV
19+
xsltproc -o junit.xml ../tests/ctest-to-junit.xsl Testing/*/Test.xml
20+
21+
echo "~~~~~~~~~~ END:build_and_test.sh ~~~~~~~~~~~~~"
22+
echo "CWD="`pwd`
23+
echo "BUILD_DIR="$BUILD_DIR
24+
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

.gitlab/build_lassen.yml

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
####
2+
# This is the share configuration of jobs for lassen
3+
.on_lassen:
4+
variables:
5+
tags:
6+
- shell
7+
- lassen
8+
rules:
9+
- if: '$CI_COMMIT_BRANCH =~ /_lnone/ || $ON_LASSEN == "OFF"' #run except if ...
10+
when: never
11+
- when: on_success
12+
13+
####
14+
# Load required modules
15+
.with_cuda:
16+
before_script:
17+
- module load cmake/3.18.0
18+
- module load cuda/11.1.1
19+
20+
####
21+
# Template
22+
.build_on_lassen:
23+
stage: l_build
24+
extends: [.build_blueos_3_ppc64le_ib_p9_script, .on_lassen]
25+
needs: []
26+
27+
####
28+
# Build jobs
29+
clang_upstream_link_with_nvcc (lassen):
30+
variables:
31+
HOST_CONFIG: "clang@upstream_link_with_nvcc.cmake"
32+
extends: [.build_on_lassen, .with_cuda]
33+
34+
clang_upstream_nvcc_c++17 (lassen):
35+
variables:
36+
HOST_CONFIG: "clang@upstream_nvcc_c++17.cmake"
37+
extends: [.build_on_lassen, .with_cuda]
38+
39+
clang_upstream_nvcc_c++17_no_separable (lassen):
40+
variables:
41+
HOST_CONFIG: "clang@upstream_nvcc_c++17_no_separable.cmake"
42+
extends: [.build_on_lassen, .with_cuda]
43+
44+
clang_upstream_nvcc_xlf (lassen):
45+
variables:
46+
HOST_CONFIG: "clang@upstream_nvcc_xlf.cmake"
47+
extends: [.build_on_lassen, .with_cuda]
48+
49+
pgi_20.4_nvcc (lassen):
50+
variables:
51+
HOST_CONFIG: "[email protected]_nvcc.cmake"
52+
extends: [.build_on_lassen, .with_cuda]

.gitlab/build_quartz.yml

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
####
2+
# This is the share configuration of jobs for quartz
3+
.on_quartz:
4+
tags:
5+
- shell
6+
- quartz
7+
rules:
8+
- if: '$CI_COMMIT_BRANCH =~ /_qnone/ || $ON_QUARTZ == "OFF"' #run except if ...
9+
when: never
10+
- if: '$CI_JOB_NAME =~ /release_resources/'
11+
when: always
12+
- when: on_success
13+
14+
####
15+
# In pre-build phase, allocate a node for builds
16+
allocate_resources_build_quartz:
17+
variables:
18+
GIT_STRATEGY: none
19+
extends: [.on_quartz]
20+
stage: q_allocate_resources
21+
script:
22+
- salloc -p pdebug -N 1 -c 36 -t 30 --no-shell --job-name=${PROJECT_ALLOC_NAME} --mpibind=off
23+
needs: []
24+
25+
####
26+
# In post-build phase, deallocate resources
27+
# Note : make sure this is run even on build phase failure
28+
release_resources_build_quartz:
29+
variables:
30+
GIT_STRATEGY: none
31+
extends: [.on_quartz]
32+
stage: q_release_resources
33+
script:
34+
- export JOBID=$(squeue -h --name=${PROJECT_ALLOC_NAME} --format=%A)
35+
- if [[ -n "${JOBID}" ]]; then scancel ${JOBID}; fi
36+
37+
####
38+
# Template
39+
.build_on_quartz:
40+
stage: q_build
41+
extends: [.srun_build_script, .on_quartz]
42+
43+
####
44+
# Build jobs
45+
clang_4_0_0_libcxx (quartz):
46+
variables:
47+
HOST_CONFIG: "[email protected]"
48+
extends: [.build_on_quartz]
49+
50+
clang_6_0_0_static_analysis (quartz):
51+
variables:
52+
HOST_CONFIG: "[email protected]"
53+
extends: [.build_on_quartz]
54+
55+
gcc_8_3_1 (quartz):
56+
variables:
57+
HOST_CONFIG: "[email protected]"
58+
extends: [.build_on_quartz]
59+
60+
pgi_20_1 (quartz):
61+
variables:
62+
HOST_CONFIG: "[email protected]"
63+
extends: [.build_on_quartz]

.mailmap

+24-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
1-
George Zagaris <[email protected]> George Zagaris <[email protected]>
2-
Kenneth Weiss <[email protected]> Kenneth Weiss <[email protected]>
3-
Kenneth Weiss <[email protected]> Kenny Weiss <[email protected]>
4-
Kenneth Weiss <[email protected]> Kenny Weiss <[email protected]>
5-
Peter B. Robinson <[email protected]> robinson96 <[email protected]>
6-
Peter B. Robinson <[email protected]> robinspb <[email protected]>
7-
Randolph R. Settgast <[email protected]> Randolph R. Settgast <[email protected]>
8-
Randolph R. Settgast <[email protected]> Randolph Settgast <[email protected]>
9-
Randolph R. Settgast <[email protected]> Randolph Settgast <[email protected]>
10-
1+
Alfredo Metere <[email protected]> Alfredo Metere <[email protected]>
2+
Alfredo Metere <[email protected]> metere1llnl <[email protected]>
3+
Benjamin Curtice Corbett <[email protected]> Ben Corbett <[email protected]>
4+
Burl M. Hall <[email protected]> BurlMHall <[email protected]>
5+
Daniel Taller <[email protected]> Danny Taller <[email protected]>
6+
Geoffrey Oxberry <[email protected]> Geoffrey M Oxberry <[email protected]>
7+
Geoffrey Oxberry <[email protected]> Geoffrey M. Oxberry <[email protected]>
8+
George Zagaris <[email protected]> George Zagaris <[email protected]>
9+
Jason Burmark <[email protected]> Jason Burmark <[email protected]>
10+
Josh Essman <[email protected]> Josh Essman <[email protected]>
11+
Keith Healy <[email protected]> keithhealy <[email protected]>
12+
Kenneth Weiss <[email protected]> Kenny Weiss <[email protected]>
13+
Kenneth Weiss <[email protected]> Kenny Weiss <[email protected]>
14+
Kenneth Weiss <[email protected]> Kenneth Weiss <[email protected]>
15+
Kristi Belcher <[email protected]> Kristi Belcher <[email protected]>
16+
Kristi Belcher <[email protected]> Kristi Belcher <[email protected]>
17+
Kristi Belcher <[email protected]> Kristi <[email protected]>
18+
Marty McFadden <[email protected]> Marty McFadden <[email protected]>
19+
Peter B. Robinson <[email protected]> robinson96 <[email protected]>
20+
Peter B. Robinson <[email protected]> robinspb <[email protected]>
21+
Randolph R. Settgast <[email protected]> Randolph Settgast <[email protected]>
22+
Randolph R. Settgast <[email protected]> Randolph R. Settgast <[email protected]>
23+
Randolph R. Settgast <[email protected]> Randolph Settgast <[email protected]>
24+
Johann Dahm <[email protected]> Johann Dahm <[email protected]>

CONTRIBUTING.md

+4-14
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
We welcome contributions to BLT. To do so please submit a pull request through our
44
BLT github page at https://github.com/LLNL/blt.
55

6+
Before submitting a pull request, update `RELEASE-NOTES.md` accordingly.
7+
68
All contributions to BLT must be made under the BSD License.
79

810
Any questions can be sent to [email protected].
@@ -13,18 +15,6 @@ The BLT project uses git's commit history to track contributions from individual
1315

1416
Since we want everyone to feel they are getting the proper attribution for their contributions, please add your name to the list below as part of your commit.
1517

16-
# Contributors (In Alphabetical Order)
17-
18-
* Izaak Beekman
19-
* Robert Blake, LLNL
20-
* Jason Burmark, LLNL
21-
* Ben Corbett, LLNL
22-
* Johann Dahm
23-
* Chip Freitag, AMD, Inc.
24-
* Elsa Gonsiorowski, LLNL
25-
* Burl Hall, LLNL
26-
* Matt Larsen, LLNL
27-
* Martin McFadden, LLNL
28-
* Mark Miller, LLNL
29-
* David Poliakoff, Sandia National Laboratories
18+
# Contributors
3019

20+
Thanks to all of BLT's [contributors](https://github.com/LLNL/blt/graphs/contributors).

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2017-2019, Lawrence Livermore National Security, LLC.
1+
Copyright (c) 2017-2021, Lawrence Livermore National Security, LLC.
22
All rights reserved.
33

44
Redistribution and use in source and binary forms, with or without

README.md

+42-32
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@
44
Status](https://dev.azure.com/llnl-blt/blt/_apis/build/status/LLNL.blt?branchName=develop)](https://dev.azure.com/llnl-blt/blt/_build/latest?definitionId=1&branchName=develop)
55
[![Documentation Status](https://readthedocs.org/projects/llnl-blt/badge/?version=develop)](https://llnl-blt.readthedocs.io/en/develop/?badge=develop)
66

7-
BLT is a streamlined [CMake](https://cmake.org)-based foundation for
7+
BLT is a streamlined [CMake](https://cmake.org)-based foundation for
88
<b>B</b>uilding, <b>L</b>inking and <b>T</b>esting large-scale high performance computing (HPC) applications.
99

10-
BLT makes it easy to get up and running on a wide range of HPC compilers,
10+
BLT makes it easy to get up and running on a wide range of HPC compilers,
1111
operating systems and technologies:
1212
* Compiler families:
13-
[gcc](https://gcc.gnu.org),
14-
[clang](https://clang.llvm.org),
15-
[Intel](https://software.intel.com/en-us/compilers),
16-
[XL](https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family),
13+
[gcc](https://gcc.gnu.org),
14+
[clang](https://clang.llvm.org),
15+
[Intel](https://software.intel.com/en-us/compilers),
16+
[XL](https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family),
1717
[Visual Studio](https://visualstudio.microsoft.com/vs/features/cplusplus)
18-
* Operating systems:
19-
Linux,
20-
Mac OS,
18+
* Operating systems:
19+
Linux,
20+
Mac OS,
2121
Windows
2222
* HPC programming models:
23-
[MPI](https://www.mpi-forum.org/),
24-
[OpenMP](https://www.openmp.org/),
25-
[CUDA](https://developer.nvidia.com/cuda-zone),
23+
[MPI](https://www.mpi-forum.org/),
24+
[OpenMP](https://www.openmp.org/),
25+
[CUDA](https://developer.nvidia.com/cuda-zone),
2626
[HIP](https://gpuopen.com/compute-product/hip-convert-cuda-to-portable-c-code)
2727
* Unit testing and benchmarking (built-in):
2828
[Google Test (gtest and gmock)](https://github.com/google/googletest),
@@ -34,11 +34,14 @@ operating systems and technologies:
3434
* Code style:
3535
[AStyle](http://astyle.sourceforge.net),
3636
[ClangFormat](https://clang.llvm.org/docs/ClangFormat.html),
37-
[Uncrustify](http://uncrustify.sourceforge.net)
37+
[cmake-format](https://github.com/cheshirekow/cmake_format),
38+
[Uncrustify](http://uncrustify.sourceforge.net),
39+
[YAPF (Yet Another Python Formatter)](https://github.com/google/yapf)
3840
* Code quality
3941
[clang-query](http://clang.llvm.org/docs/LibASTMatchers.html),
42+
[clang-tidy](https://clang.llvm.org/extra/clang-tidy),
4043
[Cppcheck](http://cppcheck.sourceforge.net)
41-
44+
4245

4346
Getting started
4447
---------------
@@ -54,39 +57,44 @@ For more information, please check our [user documentation and tutorial](https:/
5457
Questions
5558
---------
5659

57-
Any questions can be sent to [email protected].
60+
Any questions can be sent to [email protected]. If you are an LLNL employee or collaborator, we have an
61+
internal Microsoft Teams group chat named "BLT" as well.
5862

59-
Authors
60-
-------
63+
Contributions
64+
-------------
65+
66+
We welcome all kinds of contributions: new features, bug fixes, documentation edits.
6167

62-
Developers include:
68+
To contribute, make a [pull request](https://github.com/LLNL/blt/pulls), with `develop`
69+
as the destination branch. We use CI testing and your branch must pass these tests before
70+
being merged.
6371

64-
* Chris White, LLNL
65-
* Kenneth Weiss, LLNL
66-
* Cyrus Harrison, LLNL
67-
* George Zagaris, LLNL
68-
* Lee Taylor, LLNL
69-
* Aaron Black, LLNL
70-
* David A. Beckingsale, LLNL
71-
* Richard Hornung, LLNL
72-
* Randolph Settgast, LLNL
72+
For more information, see the [contributing guide](https://github.com/LLNL/blt/blob/develop/CONTRIBUTING.md).
7373

74-
Please see our [contributing guide](https://github.com/LLNL/blt/blob/develop/CONTRIBUTING.md)
75-
for details about how to contribute to the project.
74+
Authors
75+
-------
7676

77-
The full list of project contributors can be found on the
78-
[BLT Contributors Page](https://github.com/LLNL/BLT/graphs/contributors).
77+
Thanks to all of BLT's [contributors](https://github.com/LLNL/blt/graphs/contributors).
7978

8079
Open-Source Projects using BLT
8180
------------------------------
8281

82+
* [Adiak](https://github.com/LLNL/Adiak): Library for collecting metadata from HPC application runs
8383
* [Ascent](https://github.com/Alpine-DAV/ascent): A flyweight in-situ visualization and analysis runtime for multi-physics HPC simulations
8484
* [Axom](https://github.com/LLNL/axom): Software infrastructure for the development of multi-physics applications and computational tools
85+
* [CARE](https://github.com/LLNL/CARE): CHAI and RAJA extensions
8586
* [CHAI](https://github.com/LLNL/CHAI): Copy-hiding array abstraction to automatically migrate data between memory spaces
8687
* [Conduit](https://github.com/LLNL/conduit): Simplified data exchange for HPC simulations
88+
* [Comb](https://github.com/LLNL/Comb): Communication performance benchmarking tool
89+
* [ExaCMech](https://github.com/LLNL/ExaCMech): GPU-friendly library of constitutive models
90+
* [Kripke](https://github.com/LLNL/Kripke): Simple, scalable, 3D Sn deterministic particle transport code
8791
* [RAJA](https://github.com/LLNL/raja): Performance portability layer for HPC
92+
* [SAMRAI](https://github.com/LLNL/SAMRAI): Structured Adaptive Mesh Refinement Application Infrastructure
93+
* [Serac](https://github.com/LLNL/serac): 3D implicit nonlinear thermal-structural simulation code
94+
* [Spheral](https://github.com/LLNL/spheral): Steerable parallel environment for performing coupled hydrodynamical & gravitational numerical simulations
8895
* [Umpire](https://github.com/LLNL/Umpire): Application-focused API for memory management on NUMA and GPU architectures
8996
* [VTK-h](https://github.com/Alpine-DAV/vtk-h): Scientific visualization algorithms for emerging processor architectures
97+
* [WCS](https://github.com/LLNL/wcs): Computational environment for simulating a whole cell model
9098

9199
If you would like to add a library to this list, please let us know via [email](mailto:[email protected])
92100
or by submitting an [issue](https://github.com/LLNL/blt/issues) or [pull-request](https://github.com/LLNL/blt/pulls).
@@ -101,7 +109,7 @@ Copyrights and patents in the BLT project are retained by contributors.
101109
No copyright assignment is required to contribute to BLT.
102110

103111
See [LICENSE](./LICENSE) for details.
104-
112+
105113
Unlimited Open Source - BSD 3-clause Distribution
106114
`LLNL-CODE-725085` `OCEC-17-023`
107115

@@ -123,6 +131,8 @@ BLT bundles its external dependencies in thirdparty_builtin/. These
123131
packages are covered by various permissive licenses. A summary listing
124132
follows. See the license included with each package for full details.
125133

134+
[//]: # (Note: The spaces at the end of each line below add line breaks)
135+
126136
PackageName: fruit
127137
PackageHomePage: https://sourceforge.net/projects/fortranxunit/
128138
PackageLicenseDeclared: BSD-3-Clause

0 commit comments

Comments
 (0)