| When tackling engineering problems that involve modeling and simulation,it’s common to need to describe measurable quantities such as position,temperature,density,concentration,and current as functions of time.This typically involves solving initial value problems(IVPs)for large systems of ordinary differential equations(ODEs).ODEs are differential equations that involve one or more functions of an independent variable and their derivatives.Numerical simulations of ODEs are crucial for advancements in science and technology.However,the commonly used methods for solving ODEs typically rely on MATLAB,which can present restrictions and barriers from foreign software.As a result,it’s essential to design and propose a proprietary model for solving differential equations.This article presents two ODE solving models based on C++ and CUDA languages.The current traditional parallel methods for solving ODEs face several issues:firstly,existing ODE solving methods are usually executed sequentially,which is inefficient;secondly,while parallel simulation hardware devices and parallel computing technology have developed rapidly,the multi-core utilization of CPUs and GPUs is still inefficient;thirdly,parallel simulations are limited by the computational mode and do not match existing underlying parallel support.This is especially problematic when solving ODEs since input-output dependencies between models determine the order of the solving process.Therefore,the current parallel simulation performance mainly depends on parallelism,and the algorithm software has not been parallel optimized or provided with parallel design interfaces,leading to low CPU and GPU utilization.Traditional parallel ODE solving methods are mainly divided into task-oriented and method-oriented parallel solving.However,both of these solving algorithms are only for CPUs or homogeneous sets of ODEs and have serious drawbacks.As a result,this article proposes two optimized ODE solving models.The first model is based on the RIDC(Revisionist Integral Deferred Correction)algorithm,which proposes a hybrid solver that assigns tasks to both CPUs and GPUs and implements a pipeline-based computation.This model achieves significant parallelism between single and multiple differential equations and consists of four parts: task generator,scheduler,synchronizer,and memory pool,which enable efficient solving of ODEs.This framework can fully utilize the multi-core advantages of GPUs and is conducive to load balancing within the computing node.The second model is based on the fact that when using C/C++ libraries to solve ODEs,it’s difficult to achieve dynamic task balancing and on-demand interaction between CPUs and GPUs due to the need for compiling ODEs first when using static binding techniques.To solve this problem,a text-based ODE solving framework is designed,which combines just-in-time compilation and coupled CPU-GPU computing methods to improve solving efficiency.Comparative experiments demonstrate that the proposed ODE solving models have high accuracy and significantly improve solving efficiency. |