pith. sign in

arxiv: 1412.0544 · v1 · pith:WK4O32BMnew · submitted 2014-12-01 · ⚛️ physics.comp-ph · cs.PF· nlin.CD

Optimizing Large-Scale ODE Simulations

classification ⚛️ physics.comp-ph cs.PFnlin.CD
keywords performancebandwidthboostsimdboundcacheidentifyincrease
0
0 comments X
read the original abstract

We present a strategy to speed up Runge-Kutta-based ODE simulations of large systems with nearest-neighbor coupling. We identify the cache/memory bandwidth as the crucial performance bottleneck. To reduce the required bandwidth, we introduce a granularity in the simulation and identify the optimal cluster size in a performance study. This leads to a considerable performance increase and transforms the algorithm from bandwidth bound to CPU bound. By additionally employing SIMD instructions we are able to boost the efficiency even further. In the end, a total performance increase of up to a factor three is observed when using cache optimization and SIMD instructions compared to a standard implementation. All simulation codes are written in C++ and made publicly available. By using the modern C++ libraries Boost.odeint and Boost.SIMD, these optimizations can be implemented with minimal programming effort.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.