New Features
- Updated Kokkos dependency to version 3.1
- CUDA and HIP support and testing in continuous integration
- Mirror view capability for AoSoA
- New performance benchmarks for sorting, communication, and neighbor lists
- Improving AoSoA memory managment with empty() and shrinkToFit()
- Second level neighbor parallel for and reduce algorithms for triplet operations
- Unmanaged AoSoA for wrapping user memory
Bug Fixes and Improvements
- Using new CMake target for linking Kokkos
- Removed numerous instances of default allocation of Kokkos Views
- Eliminated use of user-defined MPI tags in communication algorithms
- Cleaned usage of deprecated Kokkos code
- Update for compilation with C++14
- Significant performance enhancements to communication code
Experimental Features (subject to change in future releases)
- Tree-based neighbor lists using ArborX
New Features
- An optional MPI dependency has been added. Note that when CUDA is enabled the MPI implementation is expected to be CUDA-aware. #45
- Particle redistribution via MPI. Implemented in the
Cabana::Distributor
#43 - Particle halo exchange via MPI. Implemented in the
Cabana::Halo
#43 - Parallel for concept for 2D indexing in AoSoA loops. Implemented via
Cabana::simd_parallel_for
. Includes a new execution space conceptCabana::SimdPolicy
. #49 - Parallel for concept for traversing neighbor lists. Implemented via
Cabana::neighbor_parallel_for
#49 - Continuous integration for pull requests via GitHub #9
- Support the ECP continuous integration infrastructure #66
- New example using scafacos for long-range solvers #46
- Additional tutorials documentation on the Wiki
Bug Fixes and Improvements
- Fixed a bug in the construction of slices on uninitialized
AoSoA
containers #80 - Construct Verlet lists over the specified range of indices #70
- Removed aliases of Kokkos macros and classes #58
New Features
- Core portable data structures:
Tuple
,SoA
,AoSoA
, andSlice
DeepCopy
: deep copy of data betweenAoSoA
data structures- Sorting and binning
AoSoA
data structures LinkedCellList
: linked cell list implementation- Portable neighbor list interface
VerletList
- linked cell accelerated Verlet list implementation- Basic tutorial
Experimental Features (subject to change in future releases)
parallel_for
- portable parallel loops over supported execution spacesneighbor_parallel_for
- portable parallel loops over neighbor lists in supported execution spacesRangePolicy
- defines an index range for parallel loops