Add GPU acceleration to OpEngine.jl using CUDA.jl. Priority feature — the main motivation for the Julia port over Python.
Motivation
TRIDENT-scale simulations (300 trait bins × 100 depth levels × 1000s of timesteps) are compute-bound on the reaction term evaluation and diffusion matrix solves. GPU parallelism maps naturally onto:
- Trait-axis parallelism: each trait bin's reaction term is independent
- Spatial-axis parallelism: each depth level's reaction term is independent
- Batch parallelism: ensemble runs over parameter sweeps (model-criticism Pareto studies)
Tasks
Dependencies
Cross-references
- trident: primary consumer — GPU enables full resolution sweeps for the convergence studies
- model-criticism / ModelCriticism.jl: Pareto front computation over solver settings benefits from batch GPU execution
Boundary
This is solver acceleration — no changes to OpSystem.jl or the model specification layer.
Add GPU acceleration to OpEngine.jl using CUDA.jl. Priority feature — the main motivation for the Julia port over Python.
Motivation
TRIDENT-scale simulations (300 trait bins × 100 depth levels × 1000s of timesteps) are compute-bound on the reaction term evaluation and diffusion matrix solves. GPU parallelism maps naturally onto:
Tasks
AbstractArraythroughout soCuArraydrops inOpEngineCUDAExt)Dependencies
Cross-references
Boundary
This is solver acceleration — no changes to OpSystem.jl or the model specification layer.