-
Notifications
You must be signed in to change notification settings - Fork 27
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #351 from LLNL/v0.4.0-rc
v0.4.0 Release
- Loading branch information
Showing
749 changed files
with
90,529 additions
and
53,737 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,19 @@ | ||
Aaron Black <[email protected]> Aaron C. Black <[email protected]> | ||
Adam J. Kunen <[email protected]> Adam J. Kunen <[email protected]> | ||
Aesha Parekh <[email protected]> Aesha Parekh <[email protected]> | ||
Arlie Capps <[email protected]> Arlie Capps <[email protected]> | ||
Arlie Capps <[email protected]> Arlie Capps <[email protected]> | ||
Arlie Capps <[email protected]> Arlie Capps <[email protected]> | ||
Arlie Capps <[email protected]> Arlie Capps <[email protected]> | ||
Austin Stromme <[email protected]> Austin James Stromme <[email protected]> | ||
Austin Stromme <[email protected]> Austin James Stromme <[email protected]> | ||
Austin Stromme <[email protected]> Austin James Stromme <[email protected]> | ||
Benjamin Curtice Corbett <[email protected]> Benjamin Curtice Corbett <[email protected]> | ||
Benjamin Curtice Corbett <[email protected]> Ben Corbett <[email protected]> | ||
Benjamin Curtice Corbett <[email protected]> Benjamin Corbett <[email protected]> | ||
Benjamin Curtice Corbett <[email protected]> Ben Corbett <[email protected]> | ||
Brian Manh Hien Han <[email protected]> Brian Han <[email protected]> | ||
Brian Manh Hien Han <[email protected]> Brian Manh Hien Han <[email protected]> | ||
Chris White <[email protected]> Christopher A. White <[email protected]> | ||
Cyrus D. Harrison <[email protected]> Cyrus Harrison <[email protected]> | ||
Cyrus D. Harrison <[email protected]> Cyrus Harrison <[email protected]> | ||
|
@@ -18,11 +22,15 @@ Evan Taylor Desantola <[email protected]> Evan Taylor DeSantola <desantola | |
George Zagaris <[email protected]> George Zagaris <[email protected]> | ||
Kenneth Weiss <[email protected]> Kenneth Weiss <[email protected]> | ||
Kenneth Weiss <[email protected]> Kenny Weiss <[email protected]> | ||
Kenneth Weiss <[email protected]> Kenny Weiss <[email protected]> | ||
Keith Edward Healy <[email protected]> keithhealy <[email protected]> | ||
Keith Edward Healy <[email protected]> Keith Edward Healy <[email protected]> | ||
Lee A. Taylor <[email protected]> Lee A. Taylor <[email protected]> | ||
Lee A. Taylor <[email protected]> Lee A. Taylor <[email protected]> | ||
Lee A. Taylor <[email protected]> Lee Taylor <[email protected]> | ||
Lee A. Taylor <[email protected]> Lee Taylor <[email protected]> | ||
Matt Larsen <[email protected]> mclarsen <[email protected]> | ||
Lee A. Taylor <[email protected]> Lee Taylor <[email protected]> | ||
Matt Larsen <[email protected]> mclarsen <[email protected]> | ||
Noah S. Elliott <[email protected]> Noah Elliott <[email protected]> | ||
Punita P. Sinha <[email protected]> Punita P. Sinha <[email protected]> | ||
Punita P. Sinha <[email protected]> Punita P. Sinha <[email protected]> | ||
|
@@ -44,5 +52,6 @@ Axom Shared User <[email protected]> Aaron Black <[email protected] | |
Axom Shared User <[email protected]> Richard D. Hornung <[email protected]> | ||
Axom Shared User <[email protected]> Richard D. Hornung <[email protected]> | ||
|
||
uncrustify-robot <[email protected]> uncrustify-robot <[email protected]> | ||
format-robot <[email protected]> uncrustify-robot <[email protected]> | ||
format-robot <[email protected]> uncrustify-robot <[email protected]> | ||
shroud-robot <[email protected]> shroud-robot <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,6 +7,133 @@ The format of this file is based on [Keep a Changelog](http://keepachangelog.com | |
|
||
The Axom project release numbers follow [Semantic Versioning](http://semver.org/spec/v2.0.0.html). | ||
|
||
## [Version 0.4.0] - Release date 2020-09-22 | ||
|
||
### Added | ||
- Exposed the tolerance parameter `EPS` that is used to determine intersections between | ||
triangles in `primal:intersect()` as an optional final parameter. | ||
- Added BVH spatial index option to the `mesh_tester` utility for calculating | ||
triangle-triangle intersection. | ||
- Added `axom::execution_space< ExecSpace >::onDevice()` to check if execution | ||
space is on device. | ||
- Added Axom macro `AXOM_SUPPRESS_HD_WARN` to silence host device compiler | ||
warnings. | ||
- Added option to quest's `SignedDistance` class and C API to toggle whether | ||
the distance query computes the sign. | ||
- Added a `batched` option to quest's signed distance query example application. | ||
This computes all distance queries on an array of points using a single call to `computeDistance`. | ||
The query uses OpenMP threading, when available. | ||
- Added new component, Inlet, to assist in retrieving and storing data from | ||
an input deck. | ||
- Added the ability to specify an [Umpire] allocator ID to use with the | ||
BVH. This allows the application to use a device allocator for the BVH and | ||
avoid use of Unified Memory (UM) on the GPU, which can hinder perfomrmance, | ||
or use a pool allocator to mitigate the latencies associated with allocation/deallocation. | ||
The allocator ID is specified as an optional argument to the BVH constructor. | ||
- Added new CMake option, `AXOM_ENABLE_ANNOTATIONS`, to enable/disable code | ||
annotations in Axom. Default is OFF. | ||
- Added Axom annotation macros. The macros can be used to annotate functions, | ||
using the `AXOM_PERF_MARK_FUNCTION` macro, or at a more fine grain level, | ||
different sections of code can be annotated by wrapping them within an | ||
`AXOM_PERF_MARK_SECTION` block. As a first cut, this works with NVTX tools. | ||
However, the hooks are in place to add support for Caliper in the future. | ||
- Added a simple interface to NVTX that allows an application to set the color | ||
and category for NVTX ranges corresponding to annotated code in Axom. The | ||
application can now call `axom::nvtx:set_color()` and | ||
`axom::nvtx::set_category()` to set the corresponding parameters respectively. | ||
This facilitates in the performance evaluation by allowing developers to easily | ||
filter out calls by category or visually by setting a different color to use | ||
in GUI tools, such as, NVVP and NSight. | ||
- Added a portable floating_point_limits traits class, to return min(), max(), lowest() | ||
and epsilon() of a `float` or `double` type. The functionality is equivalent to that provided by | ||
std::numeric_limits, but, the code is host/device decorated accordingly such that it | ||
can also be called on the device. | ||
- Added initial support for ray queries using the BVH. The caller may now supply a set of rays to | ||
a BVH and the BVH will return a set of candidate BVH bins that intersect each ray. | ||
- Added initial support for bounding box queries using the BVH. The caller may | ||
now supply a set of bounding boxes to a BVH and the BVH will return a set of | ||
candidate BVH bins that intersect each bounding box. | ||
- Added an `axom-config.cmake` file to axom's installation to streamline incorporating axom | ||
into user applications. See `<axom-install>/examples/axom` for example usages. | ||
- Added [Sol] as a built-in TPL for fast and simple `C++` and `Lua` binding. | ||
Sol is automatically enabled when `LUA_DIR` is found. | ||
The version of Sol used in this release is `v2.20.6`, which requires `C++14`. | ||
|
||
### Removed | ||
- Removed the `AXOM_ENABLE_CUB` option, since `CUB` is no lonher used directly in | ||
Axom code. Instead, we use `RAJA::stable_sort` with RAJA-v0.12.1 and fallback | ||
to `std::stable_sort` with older versions of RAJA and when the code is built | ||
without RAJA. | ||
|
||
### Deprecated | ||
|
||
### Changed | ||
- Updated Axom to support RAJA-v0.12.1 and Umpire-v4.01, but the code remains | ||
backwards compatible with previous versions of RAJA and Umpire. | ||
- Transitioned Axom's code formatting tool from `Uncrustify` to [clang-format]. | ||
Axom's clang-format rules depend on clang 10. | ||
- Modified the command line interface for `mesh_tester` utility. Interface | ||
now uses a *-m, --method* option to select the spatial index, and *-p, policy* | ||
option now accepts a string or integer value. | ||
- Renamed the `AXOM_USE_MPI3`option to `AXOM_ENABLE_MPI3` for consistency. | ||
- Modified the API for the BVH to accomodate different query types. The queries are now | ||
more explicitly called `BVH::findPoints()` and `BVH::findRays()`. | ||
- Modified the API of Axom's memory management routines to not leak usage of Umpire. Instead of | ||
passing an `umpire::Allocator` object to specify an allocator, we now use the corresponding | ||
integer ID associated with the allocator. | ||
- All names in the C API now preserve the case of the C++ function. | ||
ex. `SIDRE_datastore_new` is now `SIDRE_DataStore_new`. | ||
- Fortran API in slic module. `axom::slic::message` Level enums are changed | ||
from *enum-name_enumerator* to *namespace_enumerator*. | ||
ex. `level_error` is now `message_error`. | ||
- Fortran derived-type constructors are now generic functions named afer the derived type. | ||
`datastore_new` is now `SidreDataStore` | ||
`iomanager_new` is now `IOManager` | ||
|
||
### Fixed | ||
- Fixed a bug in `primal::intersect(Segment, BoundingBox)` and added regression tests. | ||
- Spin's octrees can now be used with 64-bit indexes. This allows octrees | ||
with up to 64 levels of resolution when using a 64-bit index type. | ||
- Resolved issue with `AXOM_USE_64BIT_INDEXTYPE` configurations. Axom can once again | ||
be configured with 64-bit index types. | ||
- Fixed a triangle-triangle intersection case in primal that produced inconsistent results | ||
depending on the order of the triangle's vertices. | ||
- Fixed issue in the parallel construction of the BVH on GPUs, due to incoherent | ||
L1 cache that could result in some data corruption in the BVH. The code now | ||
calls ``__threadfence_system()`` after the parent is computed and stored back | ||
to global memory to ensure that the *write* is visible to all threads. | ||
- Fixed issue in Mint that would cause the [email protected] compiler to segfault. The | ||
`mint_cell_types.cpp` test was causing a segfault in the compiler. The main | ||
issue triggering this compiler bug was the use of `constexpr` when defining the | ||
static `cell_info` array of structs. The code has been modified to use `const` | ||
instead. | ||
- Fixed issue in Quest's Signed Distance query that would prevent consecutive | ||
calls to Quest when MPI-3 shared memory is enabled due to not properly | ||
nullifying internal pointers when finalize is called. | ||
- Fixed issue where the BVH would dispatch to the CPU sort() routine when the | ||
specified execution policy was CUDA_EXEC async. Now, when the execution policy | ||
is CUDA_EXEC the code would correctly dispatch to the GPU sort, using CUB | ||
(when CUB is enabled), regardless of whether it's synchronous or asynchronous. | ||
- Fixed issue with missing the bvh_traverse.hpp from the install prefix, which was preventing | ||
applications from using the BVH when pointing to an Axom install prefix. | ||
- Fixed usage of cuda kernel policies in Mint. Raja v0.11.0 changed the way max threads | ||
launch bounds is calculated. Consequently, a large number of threads was being launched | ||
leading to max registry count violation when linking. We are now using fixed kernel size | ||
of 256 threads (16x16 in 2D and 8x8x4 in 3D). | ||
- Third-party libraries can now build on the Windows platform through uberenv using vcpkg | ||
("zero-to-axom support on Windows") | ||
|
||
### Known Bugs | ||
- Encountered a compiler bug on IBM LC platforms when using the IBM XL C/C++ | ||
compiler. The issue is manifested in the `generate_aabbs_and_centroids` method | ||
in the `spin_bvh.cpp` unit test. It seems that the compiler does not handle | ||
the lambda capture of the arrays correctly which leads to a segfault. A | ||
workaround for the IBM XL compiler is provided. | ||
- There is a known bug in MVAPICH that prevents consecutive creation/deletion | ||
of MPI windows. This was encountered on LC platforms when enabling shared | ||
memory in the Signed Distance Query. See the corresponding | ||
[Github Issue](https://github.com/LLNL/axom/issues/257) for details. | ||
|
||
## [Version 0.3.3] - Release date 2020-01-31 | ||
|
||
### Added | ||
|
@@ -18,7 +145,7 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/ | |
- Added [CLI11](https://github.com/CLIUtils/CLI11) command line parser as a built-in third party library. | ||
|
||
### Removed | ||
|
||
### Deprecated | ||
|
||
### Changed | ||
|
@@ -282,7 +409,8 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/ | |
### Known Bugs | ||
- | ||
|
||
[Unreleased]: https://github.com/LLNL/axom/compare/v0.3.3...develop | ||
[Unreleased]: https://github.com/LLNL/axom/compare/v0.4.0...develop | ||
[Version 0.4.0]: https://github.com/LLNL/axom/compare/v0.3.3...v0.4.0 | ||
[Version 0.3.3]: https://github.com/LLNL/axom/compare/v0.3.2...v0.3.3 | ||
[Version 0.3.2]: https://github.com/LLNL/axom/compare/v0.3.1...v0.3.2 | ||
[Version 0.3.1]: https://github.com/LLNL/axom/compare/v0.3.0...v0.3.1 | ||
|
@@ -291,4 +419,6 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/ | |
|
||
[Scalable Checkpoint Restart (SCR)]: https://computation.llnl.gov/projects/scalable-checkpoint-restart-for-mpi | ||
[SU2 Mesh file format]: https://su2code.github.io/docs/Mesh-File/ | ||
|
||
[Umpire]: https://github.com/LLNL/Umpire | ||
[clang-format]: https://releases.llvm.org/10.0.0/tools/clang/docs/ClangFormatStyleOptions.html | ||
[Sol]: https://github.com/ThePhD/sol2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,56 +8,80 @@ | |
variables: | ||
DO_BUILD: 'yes' | ||
DO_TEST: 'yes' | ||
DO_CLEAN: 'no' | ||
|
||
strategy: | ||
matrix: | ||
linux_gcc6: | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/compilers:gcc-6' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
COMPILER: 'g++' | ||
TEST_TARGET: 'linux_gcc6' | ||
# Temporarily disabled due to running out of space | ||
# linux_gcc6: | ||
# VM_ImageName: 'ubuntu-16.04' | ||
# Compiler_ImageName: 'axom/tpls:gcc-6' | ||
# CMAKE_EXTRA_FLAGS: '' | ||
# COMPILER: 'g++' | ||
# TEST_TARGET: 'linux_gcc6' | ||
# HOST_CONFIG: '[email protected]' | ||
linux_gcc7: | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/compilers:gcc-7' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
Compiler_ImageName: 'axom/tpls:gcc-7' | ||
CMAKE_EXTRA_FLAGS: '' | ||
COMPILER: 'g++' | ||
TEST_TARGET: 'linux_gcc7' | ||
HOST_CONFIG: '[email protected]' | ||
linux_gcc8: | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/compilers:gcc-8' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
Compiler_ImageName: 'axom/tpls:gcc-8' | ||
CMAKE_EXTRA_FLAGS: '' | ||
COMPILER: 'g++' | ||
TEST_TARGET: 'linux_gcc8' | ||
linux_clang4: | ||
HOST_CONFIG: '[email protected]' | ||
linux_gcc8_64bit: | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/compilers:clang-4' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
COMPILER: 'clang++' | ||
TEST_TARGET: 'linux_clang4' | ||
Compiler_ImageName: 'axom/tpls:gcc-8' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_USE_64BIT_INDEXTYPE:BOOL=ON' | ||
COMPILER: 'g++' | ||
TEST_TARGET: 'linux_gcc8_64bit' | ||
HOST_CONFIG: '[email protected]' | ||
linux_clang4: | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/tpls:clang-4' | ||
CMAKE_EXTRA_FLAGS: '' | ||
COMPILER: 'clang++' | ||
TEST_TARGET: 'linux_clang4' | ||
HOST_CONFIG: '[email protected]' | ||
linux_clang6: | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/compilers:clang-6' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
COMPILER: 'clang++' | ||
TEST_TARGET: 'linux_clang6' | ||
VM_ImageName: 'ubuntu-16.04' | ||
Compiler_ImageName: 'axom/tpls:clang-6' | ||
CMAKE_EXTRA_FLAGS: '' | ||
COMPILER: 'clang++' | ||
TEST_TARGET: 'linux_clang6' | ||
HOST_CONFIG: '[email protected]' | ||
osx_gcc: | ||
VM_ImageName: 'macos-10.13' | ||
VM_ImageName: 'macos-10.14' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
TEST_TARGET: 'osx_gcc' | ||
windows: | ||
VM_ImageName: 'windows-2019' | ||
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE=Off' | ||
TEST_TARGET: 'win_vs' | ||
|
||
pool: | ||
vmImage: $(VM_ImageName) | ||
|
||
steps: | ||
- checkout: self | ||
clean: boolean | ||
clean: true | ||
submodules: recursive | ||
- task: CMake@1 | ||
inputs: | ||
workingDir: 'build' | ||
cmakeArgs: '$(CMAKE_EXTRA_FLAGS) ../src' | ||
condition: eq( variables['Agent.OS'], 'Darwin') | ||
condition: or( eq( variables['Agent.OS'], 'Windows_NT'), eq( variables['Agent.OS'], 'Darwin')) | ||
- task: VSBuild@1 | ||
inputs: | ||
solution: 'build/*.sln' | ||
vsVersion: 'latest' | ||
condition: eq( variables['Agent.OS'], 'Windows_NT') | ||
displayName: 'Visual Studio Build' | ||
- script: | | ||
cd build | ||
make | ||
|
@@ -69,12 +93,15 @@ steps: | |
displayName: '$(TEST_TARGET) Test' | ||
condition: eq( variables['Agent.OS'], 'Darwin') | ||
- script: | | ||
docker run --rm --user='root' -v `pwd`:/home/axom $(Compiler_ImageName) chown -R axom /home/axom | ||
docker run --rm -v `pwd`:/home/axom -e TEST_TARGET -e COMPILER -e DO_BUILD -e DO_TEST -e CMAKE_EXTRA_FLAGS $(Compiler_ImageName) ./scripts/azure-pipelines/linux-build_and_test.sh | ||
echo " -e $TEST_TARGET -e $COMPILER -e $DO_BUILD -e $DO_TEST -e $CMAKE_EXTRA_FLAGS $(Compiler_ImageName) ./scripts/azure-pipelines/linux-build_and_test.sh" | ||
docker run --rm --user='root' -v `pwd`:/home/axom/axom $(Compiler_ImageName) chown -R axom /home/axom | ||
docker run --rm -v `pwd`:/home/axom/axom -e TEST_TARGET -e COMPILER -e DO_BUILD -e DO_TEST -e DO_CLEAN -e HOST_CONFIG -e CMAKE_EXTRA_FLAGS $(Compiler_ImageName) ./axom/scripts/azure-pipelines/linux-build_and_test.sh | ||
condition: eq( variables['Agent.OS'], 'Linux') | ||
displayName: '$(TEST_TARGET) Build & Test' | ||
- task: PublishTestResults@2 | ||
inputs: | ||
testResultsFormat: 'cTest' | ||
testResultsFiles: '**/Test.xml' | ||
testRunTitle: '$(TEST_TARGET) Tests' | ||
failTaskOnFailedTests: true |
Oops, something went wrong.