Hi vihan, On Monday, September 28, 2015 11:02:21 AM Vihan Pandey wrote:
Dear all,
I am trying to integrate a simple 2 variable ODE system. I wanted to know which of the solvers listed here :
http://www.boost.org/doc/libs/1_56_0/libs/numeric/odeint/doc/html/boost_nume ric_odeint/getting_started/overview.html
are parallelised for multicore CPU’s and GPU’s? Perhaps using Thrust for the Nvidia/CUDA GPU end of things?
odeint provides parallelization backends for explicit steppers (RK methods) based on CUDA (via thrust) [1], OpenCL [2] and OpenMP/MPI [3].
I am principally interested if someone has managed to make/port a library for parallelised RK45 methods. Please note in later work I plan on having more ODE's - probably systems of 12-15 parameters though they will be all be first order equations.
In my experience, parallelization only makes sense if you have at least ~100 variables for CPUs, and at least ~100000 for GPUs. For smaller problems you might be able to get some performance improvements by using SIMD [4,5]. Best, Mario [1] http://www.boost.org/doc/libs/1_56_0/libs/numeric/odeint/doc/html/boost_nume... [2] http://www.boost.org/doc/libs/1_56_0/libs/numeric/odeint/doc/html/boost_nume... [3] http://www.boost.org/doc/libs/1_56_0/libs/numeric/odeint/doc/html/boost_nume... [4] http://www.codeproject.com/Articles/841136/Boosting-ODE-simulations-with-Boo... [5] http://www.italiancpp.org/dettagli-meetup-firenze-2015/#cpu-power
Thanks and Cheers!
- vihan