Recent Releases of Cabana
Cabana - Version 0.7
New Features
- Support for neighbor iteration without stored neighbors (LinkedCellList binning used within neighbor_parallel_for)
- Global particle communication based on the grid: Grid::GlobalParticleComm
- Added particle removal (without MPI): remove
- Added neighbor list histograms
- Added interfaces for total and maximum neighbors
Bug Fixes and Improvements
- Added support for Kokkos::View in neighbor lists and spatial binning
- Performance benchmark and benchmark plotting improvements
- Fixed memory leaks in HYPRE solver interfaces
- Updated ArborX neighbor interface for compatibility with newest versions
- Added subfiling support for HDF5 particle output
Minimum dependency version updates - Kokkos minimum 4.1 (previously 3.7)
Scientific Software - Peer-reviewed
- C++
Published by streeve over 1 year ago
Cabana - Version 0.6.1
Bug fixes
- Sets accurate CMake project version
- Allows compatibility with
SameMajorVersionfor downstream CMake projects - Guard against including HDF5 directories if HDF5 is not enabled
- Include
<iostream>where it's used - Improve warnings for previous
cabanacoreandCajitatargets and simplify newCoreandGridtargets - Fix for heFFTe integer overflow with large system sizes
- Fix use of deprecated code in Cajita deprecation wrappers
Scientific Software - Peer-reviewed
- C++
Published by streeve over 2 years ago
Cabana - Version 0.6.0
New Features
- C++17 required
- Gather/Scatter for persistent particle communication buffers added
- Grid-based particle generation, in addition to generalization of random particle generation
- ParticleList with field type tags and thread-level particle interfaces added
- Semi-structured hypre interface for multi-variate systems
- New interface to modify an existing Verlet neighbor list
- New benchmarks for grid halo and particle-grid interpolation
Bug Fixes and Improvements
- Breaking change: replace Slice::{R->r}ank and Slice::{rank->viewRank}()
- Fixed boundary index space bug for Node, Face, and Edge entities causing out of bounds indexing
- Added SYCL support for heFFTe
- Removed use of Kokkos deprecated features: View::Rank and parallel_reduce() on raw pointers
- Run benchmarks and examples with default or default host backends
- Added Kokkos profiling regions
- Added python utilities to plot benchmark results
Deprecated features
- Deprecated Cajita in favor of Cabana::Grid
- Deprecated Kokkos DeviceType class templates in favor of Kokkos MemorySpace
- Deprecated Grid Halo and Partitioner compatibility wrappers
Minimum dependency version updates - Kokkos minimum 3.7 (previously 3.2) - Optional dependency heFFTe minimum 2.3 (previously 2.1) - Optional dependency googletest minimum 1.10 (previous internal download removed)
Experimental Features (subject to change in future releases) - Distributed particle output with HDF5 library interface - Expanded sparse grid capabilities: index spaces, local grid, array, and halo
Scientific Software - Peer-reviewed
- C++
Published by streeve over 2 years ago
Cabana - Version 0.5.0
New Features
- Particle migration using Cajita grid added
- Random particle generation added
- Complete Cajita tutorial examples added
- Cajita performance benchmarks added
Bug Fixes and Improvements
- Remove all uses of
Kokkos::Impl - Redesign
SimdPolicyto not modify the underlyingKokkos::TeamPolicy - Rename
Cabana_REQUIRE_{PTHREAD->THREADS} - Rename clang-format build rule
format->cabana-format - Improved Doxygen coverage
- Improved wiki documentation
Minimum dependency version updates
- CMake minimum 3.16 required (previously 3.9)
- Optional dependency heFFTe minimum 2.1 (previously 2.0)
- Optional dependency HYPRE minimum 2.22.1 (previously 2.22.0)
Experimental Features (subject to change in future releases)
- Distributed particle output with SILO library interface
- Cajita load balancing added through ALL library interface
Scientific Software - Peer-reviewed
- C++
Published by streeve about 4 years ago
Cabana - Version 0.4.0
New Features
* C++14 required
* AMD HIP support and continuous integration testing
* Intel SYCL support and continuous integration testing
* Hybrid particle-grid capability through the Cajita interfaces. Features include:
- 2D/3D structured grid data structures
- particle-grid interpolation
- particle-grid communication
- multidimensional distributed FFTs via heFFTe
- linear solvers and preconditions via HYPRE
Bug Fixes and Improvements
* Removed deprecated portability macros in favor of Kokkos macros (e.g. KOKKOS_INLINE_FUNCTION)
* General performance improvements including neighbor list and particle communication updates
* Improved Doxygen coverage, wiki documentation, and tutorials
Experimental Features (subject to change in future releases)
* Sparse grids support in Cajita
* Structured grid data I/O in Cajita
Scientific Software - Peer-reviewed
- C++
Published by sslattery almost 5 years ago
Cabana - Version 0.3.0
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
Scientific Software - Peer-reviewed
- C++
Published by sslattery about 6 years ago
Cabana - Version 0.2.0
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
AoSoAcontainers (#80) - Construct Verlet lists over the specified range of indices (#70)
- Removed aliases of Kokkos macros and classes (#58)
Scientific Software - Peer-reviewed
- C++
Published by sslattery over 7 years ago
Cabana - Version 0.1.0
New Features
- Core portable data structures:
Tuple,SoA,AoSoA, andSlice DeepCopy: deep copy of data betweenAoSoAdata structures- Sorting and binning
AoSoAdata 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
Scientific Software - Peer-reviewed
- C++
Published by junghans over 7 years ago