Skip to content

Commit

Permalink
Merge pull request #478 from LLNL/v0.4.0-rc
Browse files Browse the repository at this point in the history
0.4.0 rc
  • Loading branch information
white238 authored Apr 9, 2021
2 parents c253509 + 4ebdb32 commit 7ec2cb8
Show file tree
Hide file tree
Showing 162 changed files with 5,722 additions and 1,540 deletions.
50 changes: 50 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
##############################################################################
# Copyright (c) 2017-2021, Lawrence Livermore National Security, LLC and BLT
# project contributors. See the LICENSE file for details.
##############################################################################

variables:
PROJECT_ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
BUILD_ROOT: ${CI_PROJECT_DIR}

stages:
- l_build
- q_allocate_resources
- q_build
- q_release_resources

####
# Template
.srun_build_script:
script:
#Use pre-existing allocation if any
- JOBID=$(squeue -h --name=${PROJECT_ALLOC_NAME} --format=%A)
- ASSIGN_ID=$(if [[ -n "${JOBID}" ]]; then echo "--jobid=${JOBID}"; fi)
- EXEC_PREFIX="srun -p pdebug ${ASSIGN_ID} -t 10 -N 1 --mpibind=off"
#BUILD + TEST
- echo -e "section_start:$(date +%s):build_and_test\r\e[0K
Build and test ${CI_PROJECT_NAME}"
- ${EXEC_PREFIX} .gitlab/build_and_test.sh
- echo -e "section_end:$(date +%s):build_and_test\r\e[0K"
artifacts:
reports:
junit: build/junit.xml


.build_blueos_3_ppc64le_ib_p9_script:
script:
- EXEC_PREFIX="lalloc 1 -W 10 -q pdebug"
#BUILD + TEST
- echo -e "section_start:$(date +%s):build_and_test\r\e[0K
Build and test ${CI_PROJECT_NAME}"
- ${EXEC_PREFIX} .gitlab/build_and_test.sh
- echo -e "section_end:$(date +%s):build_and_test\r\e[0K"
artifacts:
reports:
junit: build/junit.xml


# This is where jobs are included
include:
- local: .gitlab/build_quartz.yml
- local: .gitlab/build_lassen.yml
24 changes: 24 additions & 0 deletions .gitlab/build_and_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

set -e

BUILD_DIR=`pwd`/build

echo "~~~~~~~~~~ START:build_and_test.sh ~~~~~~~~~~~"
echo "CWD="`pwd`
echo "BUILD_DIR="$BUILD_DIR
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

rm -rf $BUILD_DIR
mkdir $BUILD_DIR
cd $BUILD_DIR

cmake -C ../host-configs/llnl/$SYS_TYPE/$HOST_CONFIG ../tests/internal
make -j8
ctest -DCTEST_OUTPUT_ON_FAILURE=1 --no-compress-output -T Test -VV
xsltproc -o junit.xml ../tests/ctest-to-junit.xsl Testing/*/Test.xml

echo "~~~~~~~~~~ END:build_and_test.sh ~~~~~~~~~~~~~"
echo "CWD="`pwd`
echo "BUILD_DIR="$BUILD_DIR
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
52 changes: 52 additions & 0 deletions .gitlab/build_lassen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
####
# This is the share configuration of jobs for lassen
.on_lassen:
variables:
tags:
- shell
- lassen
rules:
- if: '$CI_COMMIT_BRANCH =~ /_lnone/ || $ON_LASSEN == "OFF"' #run except if ...
when: never
- when: on_success

####
# Load required modules
.with_cuda:
before_script:
- module load cmake/3.18.0
- module load cuda/11.1.1

####
# Template
.build_on_lassen:
stage: l_build
extends: [.build_blueos_3_ppc64le_ib_p9_script, .on_lassen]
needs: []

####
# Build jobs
clang_upstream_link_with_nvcc (lassen):
variables:
HOST_CONFIG: "clang@upstream_link_with_nvcc.cmake"
extends: [.build_on_lassen, .with_cuda]

clang_upstream_nvcc_c++17 (lassen):
variables:
HOST_CONFIG: "clang@upstream_nvcc_c++17.cmake"
extends: [.build_on_lassen, .with_cuda]

clang_upstream_nvcc_c++17_no_separable (lassen):
variables:
HOST_CONFIG: "clang@upstream_nvcc_c++17_no_separable.cmake"
extends: [.build_on_lassen, .with_cuda]

clang_upstream_nvcc_xlf (lassen):
variables:
HOST_CONFIG: "clang@upstream_nvcc_xlf.cmake"
extends: [.build_on_lassen, .with_cuda]

pgi_20.4_nvcc (lassen):
variables:
HOST_CONFIG: "pgi@20.4_nvcc.cmake"
extends: [.build_on_lassen, .with_cuda]
63 changes: 63 additions & 0 deletions .gitlab/build_quartz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
####
# This is the share configuration of jobs for quartz
.on_quartz:
tags:
- shell
- quartz
rules:
- if: '$CI_COMMIT_BRANCH =~ /_qnone/ || $ON_QUARTZ == "OFF"' #run except if ...
when: never
- if: '$CI_JOB_NAME =~ /release_resources/'
when: always
- when: on_success

####
# In pre-build phase, allocate a node for builds
allocate_resources_build_quartz:
variables:
GIT_STRATEGY: none
extends: [.on_quartz]
stage: q_allocate_resources
script:
- salloc -p pdebug -N 1 -c 36 -t 30 --no-shell --job-name=${PROJECT_ALLOC_NAME} --mpibind=off
needs: []

####
# In post-build phase, deallocate resources
# Note : make sure this is run even on build phase failure
release_resources_build_quartz:
variables:
GIT_STRATEGY: none
extends: [.on_quartz]
stage: q_release_resources
script:
- export JOBID=$(squeue -h --name=${PROJECT_ALLOC_NAME} --format=%A)
- if [[ -n "${JOBID}" ]]; then scancel ${JOBID}; fi

####
# Template
.build_on_quartz:
stage: q_build
extends: [.srun_build_script, .on_quartz]

####
# Build jobs
clang_4_0_0_libcxx (quartz):
variables:
HOST_CONFIG: "clang@4.0.0-libcxx.cmake"
extends: [.build_on_quartz]

clang_6_0_0_static_analysis (quartz):
variables:
HOST_CONFIG: "clang@6.0.0-static-analysis.cmake"
extends: [.build_on_quartz]

gcc_8_3_1 (quartz):
variables:
HOST_CONFIG: "gcc@8.3.1.cmake"
extends: [.build_on_quartz]

pgi_20_1 (quartz):
variables:
HOST_CONFIG: "pgi@20.1.cmake"
extends: [.build_on_quartz]
34 changes: 24 additions & 10 deletions .mailmap
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
George Zagaris <zagaris2@llnl.gov> George Zagaris <george.zagaris@gmail.com>
Kenneth Weiss <kweiss@llnl.gov> Kenneth Weiss <weiss27@llnl.gov>
Kenneth Weiss <kweiss@llnl.gov> Kenny Weiss <kenny@kennyweiss.com>
Kenneth Weiss <kweiss@llnl.gov> Kenny Weiss <kennyweiss@users.noreply.github.com>
Peter B. Robinson <robinson96@llnl.gov> robinson96 <robinson96@llnl.gov>
Peter B. Robinson <robinson96@llnl.gov> robinspb <manbearkitty@gmail.com>
Randolph R. Settgast <settgast1@llnl.gov> Randolph R. Settgast <rrsettgast@gmail.com>
Randolph R. Settgast <settgast1@llnl.gov> Randolph Settgast <rrsettgast@gmail.com>
Randolph R. Settgast <settgast1@llnl.gov> Randolph Settgast <settgast1@llnl.gov>

Alfredo Metere <metal@berkeley.edu> Alfredo Metere <metere1@llnl.gov>
Alfredo Metere <metal@berkeley.edu> metere1llnl <51676123+metere1llnl@users.noreply.github.com>
Benjamin Curtice Corbett <corbett5@llnl.gov> Ben Corbett <32752943+corbett5@users.noreply.github.com>
Burl M. Hall <hall53@llnl.gov> BurlMHall <47543546+BurlMHall@users.noreply.github.com>
Daniel Taller <taller1@llnl.gov> Danny Taller <66029857+dtaller@users.noreply.github.com>
Geoffrey Oxberry <oxberry1@llnl.gov> Geoffrey M Oxberry <goxberry@gmail.com>
Geoffrey Oxberry <oxberry1@llnl.gov> Geoffrey M. Oxberry <oxberry1@llnl.gov>
George Zagaris <zagaris2@llnl.gov> George Zagaris <george.zagaris@gmail.com>
Jason Burmark <burmark1@llnl.gov> Jason Burmark <mr.burmark@gmail.com>
Josh Essman <essman1@llnl.gov> Josh Essman <68349992+joshessman-llnl@users.noreply.github.com>
Keith Healy <healy22@llnl.gov> keithhealy <50376825+keithhealy@users.noreply.github.com>
Kenneth Weiss <kweiss@llnl.gov> Kenny Weiss <kennyweiss@users.noreply.github.com>
Kenneth Weiss <kweiss@llnl.gov> Kenny Weiss <kenny@kennyweiss.com>
Kenneth Weiss <kweiss@llnl.gov> Kenneth Weiss <weiss27@llnl.gov>
Kristi Belcher <belcher6@llnl.gov> Kristi Belcher <belcher6@corona211.llnl.gov>
Kristi Belcher <belcher6@llnl.gov> Kristi Belcher <belcher6@lassen709.coral.llnl.gov>
Kristi Belcher <belcher6@llnl.gov> Kristi <belcher6@llnl.gov>
Marty McFadden <mcfadden8@llnl.gov> Marty McFadden <mcfadden8@users.noreply.github.com>
Peter B. Robinson <robinson96@llnl.gov> robinson96 <robinson96@llnl.gov>
Peter B. Robinson <robinson96@llnl.gov> robinspb <manbearkitty@gmail.com>
Randolph R. Settgast <settgast1@llnl.gov> Randolph Settgast <rrsettgast@gmail.com>
Randolph R. Settgast <settgast1@llnl.gov> Randolph R. Settgast <rrsettgast@gmail.com>
Randolph R. Settgast <settgast1@llnl.gov> Randolph Settgast <settgast1@llnl.gov>
Johann Dahm <johann.dahm@gmail.com> Johann Dahm <johann.dahm@ibm.com>
18 changes: 4 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
We welcome contributions to BLT. To do so please submit a pull request through our
BLT github page at https://github.com/LLNL/blt.

Before submitting a pull request, update `RELEASE-NOTES.md` accordingly.

All contributions to BLT must be made under the BSD License.

Any questions can be sent to blt-dev@llnl.gov.
Expand All @@ -13,18 +15,6 @@ The BLT project uses git's commit history to track contributions from individual

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.

# Contributors (In Alphabetical Order)

* Izaak Beekman
* Robert Blake, LLNL
* Jason Burmark, LLNL
* Ben Corbett, LLNL
* Johann Dahm
* Chip Freitag, AMD, Inc.
* Elsa Gonsiorowski, LLNL
* Burl Hall, LLNL
* Matt Larsen, LLNL
* Martin McFadden, LLNL
* Mark Miller, LLNL
* David Poliakoff, Sandia National Laboratories
# Contributors

Thanks to all of BLT's [contributors](https://github.com/LLNL/blt/graphs/contributors).
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2017-2019, Lawrence Livermore National Security, LLC.
Copyright (c) 2017-2021, Lawrence Livermore National Security, LLC.
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
74 changes: 42 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,25 @@
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)
[![Documentation Status](https://readthedocs.org/projects/llnl-blt/badge/?version=develop)](https://llnl-blt.readthedocs.io/en/develop/?badge=develop)

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

BLT makes it easy to get up and running on a wide range of HPC compilers,
BLT makes it easy to get up and running on a wide range of HPC compilers,
operating systems and technologies:
* Compiler families:
[gcc](https://gcc.gnu.org),
[clang](https://clang.llvm.org),
[Intel](https://software.intel.com/en-us/compilers),
[XL](https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family),
[gcc](https://gcc.gnu.org),
[clang](https://clang.llvm.org),
[Intel](https://software.intel.com/en-us/compilers),
[XL](https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family),
[Visual Studio](https://visualstudio.microsoft.com/vs/features/cplusplus)
* Operating systems:
Linux,
Mac OS,
* Operating systems:
Linux,
Mac OS,
Windows
* HPC programming models:
[MPI](https://www.mpi-forum.org/),
[OpenMP](https://www.openmp.org/),
[CUDA](https://developer.nvidia.com/cuda-zone),
[MPI](https://www.mpi-forum.org/),
[OpenMP](https://www.openmp.org/),
[CUDA](https://developer.nvidia.com/cuda-zone),
[HIP](https://gpuopen.com/compute-product/hip-convert-cuda-to-portable-c-code)
* Unit testing and benchmarking (built-in):
[Google Test (gtest and gmock)](https://github.com/google/googletest),
Expand All @@ -34,11 +34,14 @@ operating systems and technologies:
* Code style:
[AStyle](http://astyle.sourceforge.net),
[ClangFormat](https://clang.llvm.org/docs/ClangFormat.html),
[Uncrustify](http://uncrustify.sourceforge.net)
[cmake-format](https://github.com/cheshirekow/cmake_format),
[Uncrustify](http://uncrustify.sourceforge.net),
[YAPF (Yet Another Python Formatter)](https://github.com/google/yapf)
* Code quality
[clang-query](http://clang.llvm.org/docs/LibASTMatchers.html),
[clang-tidy](https://clang.llvm.org/extra/clang-tidy),
[Cppcheck](http://cppcheck.sourceforge.net)


Getting started
---------------
Expand All @@ -54,39 +57,44 @@ For more information, please check our [user documentation and tutorial](https:/
Questions
---------

Any questions can be sent to blt-dev@llnl.gov.
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.

Authors
-------
Contributions
-------------

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

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

* Chris White, LLNL
* Kenneth Weiss, LLNL
* Cyrus Harrison, LLNL
* George Zagaris, LLNL
* Lee Taylor, LLNL
* Aaron Black, LLNL
* David A. Beckingsale, LLNL
* Richard Hornung, LLNL
* Randolph Settgast, LLNL
For more information, see the [contributing guide](https://github.com/LLNL/blt/blob/develop/CONTRIBUTING.md).

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

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

Open-Source Projects using BLT
------------------------------

* [Adiak](https://github.com/LLNL/Adiak): Library for collecting metadata from HPC application runs
* [Ascent](https://github.com/Alpine-DAV/ascent): A flyweight in-situ visualization and analysis runtime for multi-physics HPC simulations
* [Axom](https://github.com/LLNL/axom): Software infrastructure for the development of multi-physics applications and computational tools
* [CARE](https://github.com/LLNL/CARE): CHAI and RAJA extensions
* [CHAI](https://github.com/LLNL/CHAI): Copy-hiding array abstraction to automatically migrate data between memory spaces
* [Conduit](https://github.com/LLNL/conduit): Simplified data exchange for HPC simulations
* [Comb](https://github.com/LLNL/Comb): Communication performance benchmarking tool
* [ExaCMech](https://github.com/LLNL/ExaCMech): GPU-friendly library of constitutive models
* [Kripke](https://github.com/LLNL/Kripke): Simple, scalable, 3D Sn deterministic particle transport code
* [RAJA](https://github.com/LLNL/raja): Performance portability layer for HPC
* [SAMRAI](https://github.com/LLNL/SAMRAI): Structured Adaptive Mesh Refinement Application Infrastructure
* [Serac](https://github.com/LLNL/serac): 3D implicit nonlinear thermal-structural simulation code
* [Spheral](https://github.com/LLNL/spheral): Steerable parallel environment for performing coupled hydrodynamical & gravitational numerical simulations
* [Umpire](https://github.com/LLNL/Umpire): Application-focused API for memory management on NUMA and GPU architectures
* [VTK-h](https://github.com/Alpine-DAV/vtk-h): Scientific visualization algorithms for emerging processor architectures
* [WCS](https://github.com/LLNL/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](mailto:blt-dev@llnl.gov)
or by submitting an [issue](https://github.com/LLNL/blt/issues) or [pull-request](https://github.com/LLNL/blt/pulls).
Expand All @@ -101,7 +109,7 @@ Copyrights and patents in the BLT project are retained by contributors.
No copyright assignment is required to contribute to BLT.

See [LICENSE](./LICENSE) for details.

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

Expand All @@ -123,6 +131,8 @@ 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.

[//]: # (Note: The spaces at the end of each line below add line breaks)

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

0 comments on commit 7ec2cb8

Please sign in to comment.