Skip to content

GPU-accelerated boundary value problem solvers #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
ErikQQY opened this issue May 29, 2025 · 1 comment
Open

GPU-accelerated boundary value problem solvers #13

ErikQQY opened this issue May 29, 2025 · 1 comment

Comments

@ErikQQY
Copy link

ErikQQY commented May 29, 2025

Project

SciML

Summary

The project will implement GPU acceleration for the boundary value problem solvers within the SciML differential equation solvers ecosystem. These improvements focus on improving the parallel computation capability of the current boundary value problem solvers, significantly improving their performance on large-scale and computationally intensive problems.

submitter

Qingyu Qu

project lead

@ChrisRackauckas

Community benefit

Benefit for the project: SciML provides a powerful ecosystem with efficient and robust differential equations solvers for ODE, BVP, DAE, SDE, etc. While there is GPU support for ODE and SDE solving, there is no GPU support for solving boundary value problems within the SciML ecosystem, which affects the broad usability of BVP solvers in SciML and fails to provide massive parallel BVP solving capability for large-scale problems. By leveraging the power of modern GPU architectures, this project seeks to reduce computation time and increase the efficiency of BVP solvers within the SciML differential equations ecosystem. Ultimately, these developments will contribute to the completion of a robust, high-performance solver framework for massive parallel BVP solving that integrates seamlessly into the broader SciML infrastructure and further improve the real-world boundary value problems simulations.

Benefit for the broader application: The versatility of BVP solvers has elevated them to a pivotal role within the broader dynamic optimization ecosystem. This generality has enabled the library to serve as a foundational component in advanced applications such as optimal control, where precise, stable, and flexible BVP solvers are essential. As a result, heterogeneous GPU support in BoundaryValueDiffEq.jl has the potential to generate significant downstream benefits across multiple domains. Enhancing its performance, robustness, and GPU capabilities would directly empower communities from OpenModelica, the TASOPT toolkit, and various research teams at NASA, accelerating simulation workflows and high-fidelity modeling. This proposal constitutes a high-impact and realistic target for the near-term development roadmap of the organization.

Amount requested

8400

Execution plan

The detailed timeline of deliverables:
Month 1:

  • Implement a minimal working version of the targeting GPU-accelerated collocation methods kernels for the two-point boundary value problems, and demonstrate the viability.
  • Identify and fix related GPU incompatible issues in underlying packages.
  • Begin designing the GPU-accelerated collocation methods for multi-point boundary value problem solvers.

Month 2:

  • Generalize the two-point BVP solvers and finalize the GPU-accelerated two-point BVP solvers.
  • Finish the GPU-accelerated collocation methods for the multi-point boundary value problem, and provide a minimal working example of the GPU-accelerated collocation solver for the multi-point boundary value problem.

Month 3:

  • Continue to polish and test the implemented GPU-accelerated BVP solvers and fix potential issues with the implemented solvers.
  • Refactor the implementation of the solver base for better maintainability and integration with the SciML ecosystem.

Month 4:

  • Expand test coverage, including edge cases, convergence tests, and large-scale benchmarks.
  • Ensure broad compatibility across various GPU backends via KernelAbstractions.jl (e.g., AMD ROCm, Metal, etc.) by testing and validating kernel execution and applying backend-specific adjustments as needed.

Month 5:

  • Fully benchmark implemented GPU-accelerated BVP solvers against solvers from the scientific computing community (e.g., FORTRAN solvers, MATLAB bvp4c/bvp5c, etc).
  • Test and enable symbolic-numeric transformation codegen of implemented GPU-accelerated solvers with ModelingToolkit.jl.
  • Identify and fix remaining limitations, including solver precision, GPU memory limits, or convergence instability, etc.

Month 6:

  • Complete user-facing documentation and tutorials for using GPU-accelerated collocation methods across diverse GPU backends, including setup instructions, API usage, and best practices.
  • Collect feedback from the community and improve the related solvers’ codebase.

Budget Justification:
The proposed project requires an open-source developer for six months. The developer needs to have experienced knowledge of the background of boundary value problem solvers and scientific software experience. Tasks in this project include finalizing solver kernels, integrating with the current solvers ecosystem, and standardizing tutorials and documentation.

@ChrisRackauckas
Copy link
Member

This is a great proposal. I think it under-justifies how much of an impact this will have on the community. While the BoundaryValueDiffEq.jl solvers are nominally the methods for solving boundary value problems, their generality has actually turned them into a central tool for the dynamic optimization ecosystem, making it a fundamental tool that other applications such as optimal control are using as a core tooling. Because of this, other communities such as those from OpenModelica, the TASOPT aerospace engineering, certain groups in NASA, etc. will all benefit from this improvement. This is a great goal for the near future of the organization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants