Parthenon: A Performance Portable Block-Structured Adaptive Mesh Refinement Framework
Parthenon is a performance portable block-structured adaptive mesh refinement framework.
Key Features
Device first/device resident approach (work data only in device memory to prevent expensive transfers between host and device)
Transparent packing of data across blocks (to reduce/hide kernel launch latency)
Direct device-to-device communication via asynchronous, one-sided MPI communication
Intermediate abstraction layer to hide complexity of device kernel launches
Flexible, plug-in package system
Abstract variables controlled via metadata flags
Support for particles
Multi-stage drivers/integrators with support for task-based parallelism
Community
- Overview
- Adaptive Mesh Refinement
- Boundary communication-in-one concepts
- Sparse boundary communication
- Boundary Conditions
- Building Parthenon
- C++11 Style Concepts Implementation
- Parthenon Built-in Physical Constants
- Coordinates
- Parthenon developer guide
- Application Drivers
- Input Parameters
- Integrators
- Load Balancing
- Nested Parallelism
- Outputs
- Parthenon Set-Dimensional Arrays
- Parthenon Arbitrary-Dimensional Arrays
- Particles
- Task-based reductions
- Solvers
- How to Use Sphinx for Writing Docs
- Tasks
- How to add tests to Parthenon
- Running a Weak Scaling Test in Parthenon
- Boundary related classes
- Containers
- Metadata
- Prolongation and Restriction Operations
- Sparse implementation
- State Management
- Domain
- Mesh