We present a software implementation integrating the time-integration library Odeint from Boost with the OpenFPM framework for scalable scientific computing. This enables compact and scalable codes for multi-stage, multi-step, and adaptive explicit time integration on distributed-memory parallel computers and on Graphics Processing Units (GPUs). The present implementation is based on extending OpenFPM's metaprogramming system to Odeint data types. This makes the time-integration methods from Odeint available in a concise template-expression language for numerical simulations distributed and parallelized using OpenFPM. We benchmark the present software for exponential and sigmoidal dynamics and present application examples to the 3D Gray-Scott reaction-diffusion problem and the "dam break" problem from fluid mechanics. We find a strong-scaling efficiency of 80% on up to 512 CPU cores and a five-fold speedup on a single GPU.
翻译:本文提出了一种软件实现方案,将Boost库中的时间积分库Odeint与面向可扩展科学计算的OpenFPM框架相集成。该方案能够为分布式内存并行计算机及图形处理器(GPU)上的多级、多步及自适应显式时间积分提供紧凑且可扩展的代码实现。本实现基于将OpenFPM的元编程系统扩展至Odeint数据类型,使得Odeint中的时间积分方法可通过简洁的模板表达式语言,应用于基于OpenFPM进行分布式并行化的数值模拟。本文通过指数与S型动力学模型对当前软件进行基准测试,并以三维Gray-Scott反应扩散问题及流体力学中的“溃坝”问题作为应用示例。实验结果表明,在多达512个CPU核心上实现了80%的强扩展效率,并在单GPU上获得了五倍的加速比。