Numerically solving ordinary differential equations (ODEs) is a naturally serial process and as a result the vast majority of ODE solver software are serial. In this manuscript we developed a set of parallelized ODE solvers using extrapolation methods which exploit "parallelism within the method" so that arbitrary user ODEs can be parallelized. We describe the specific choices made in the implementation of the explicit and implicit extrapolation methods which allow for generating low overhead static schedules to then exploit with optimized multi-threaded implementations. We demonstrate that while the multi-threading gives a noticeable acceleration on both explicit and implicit problems, the explicit parallel extrapolation methods gave no significant improvement over state-of-the-art even with a multi-threading advantage against current optimized high order Runge-Kutta tableaus. However, we demonstrate that the implicit parallel extrapolation methods are able to achieve state-of-the-art performance (2x-4x) on standard multicore x86 CPUs for systems of $<200$ stiff ODEs solved at low tolerance, a typical setup for a vast majority of users of high level language equation solver suites. The resulting method is distributed as the first widely available open source software for within-method parallel acceleration targeting typical modest compute architectures.
翻译:数字解决普通差异方程式(ODEs)是一个自然的序列过程,因此,绝大多数 ODE 求解软件都是序列的。在本手稿中,我们开发了一套平行的 ODE 解答器,使用“方法中的平行”的外推法开发出一套平行的 ODE 解答器,这样可以使任意的用户代码解析器平行化。我们描述了在实施明确和隐含的外推法方法方面所作的具体选择,这些外推法可以产生低间接费用静态表,然后以优化的多轨执行方式加以利用。我们证明,虽然多轨多轨读法明显加快了明确和隐含的问题,但明确的平行外推法方法并没有显著改进,即使对当前优化的高顺序Runge- Kutta 平面图提供了多轨法的多轨制解解解解解法。我们证明,在低容忍度下解决了$<200美元硬度的系统,但明确的平行外推法则没有显著的改进,即使对当前最先进的高水平的正态软件系统来说,也是一种典型的可广泛分布式的普通的正态解法。