Boost logo

Boost Users :

Subject: Re: [Boost-users] [Review] ODEInt review starts today, September 19, ends September 28
From: BildPeter (Peter.Kolski_at_[hidden])
Date: 2012-09-26 07:11:33


Hello!

First of all, I suggest that ODEint should be accepted into the Boost
library.

*1.) What is your evaluation of the design? *
I am impressed of the design.
To say the big things first, I am impressed by the possibility to use CUDA
and OpenCL for parallel computation of various ODE types in a simple manner.
The simple and straight forward interface allowed an immediate usage of the
library.
This library is also made for a versatile usage due to the many algorithms
(steppers) implemented. I can e.g. try different numerical approaches und
compare the outcome or the performance.
The performance during simulation is optimal, and outperforms most standard
libraries (e.g. GSL).
I also appreciate the modern C++ style (STL), in comparison to GSL which is
more C oriented.

*2.) What is your evaluation of the implementation? *
ODEint uses Meta Template Programming to ensure the the highest optimization
in numerical speed due to the compiler optimization during runtime. This is
a advanced and modern approach. Although the backbone is advanced, the
interface hides the complexity and ensures an easy usage.

*3.) What is your evaluation of the documentation? *
Good tutorial-like documentation which is end user oriented. Includes is
quick intro and each level of usage.
Didn't look at the developer documentation.

*4.) What is your evaluation of the potential usefulness of the library? *
I state this library to be very useful.
ODEs have wide usage in physics, chemistry, engineering, economy etc. to
model real world problems. Most of them don't have simple (analytic)
solutions, that's where the computer has to crunch the numbers. These
simulations are performed by ODE integration.

Different real world problems need different numerical approaches (e.g.
symplectic routines), which are also covered in ODEint.

My special interest lies in GPGPU. And as far as I know, this is the first
library which includes all those numerical algorithms to be send via
CUDA/OpenCL onto GPUs. It allows parallel computing on devices which do this
kind of work much better than CPUs (e.g. GPUs). Having the right problem and
the right hardware, you can speed up computation to the factor of 100!
This is unique and of high relevance!

*5.) Did you try to use the library?  With what compiler?  Did you have any
problems? *
Yes, extensively. The following compilers were used: LLVM 4.0 and GCC 4.2.
No problems occurred.

*6.) How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
*I used the library a lot.
Thomas Gorochowski used ODEint in combination with the LEMON graph library
to develop a library called NetEvo (netevo.org). This combines network
algorithms and handling with solving ODEs in each node/arc of the network.
Due to the modern design of ODEint, the outcome is a modern and fast
library. I also was involved it minor improvements.

I used the modern C++ visualization library "Cinder" to perform real time
visualization of ODE integration.

*7.) Are you knowledgeable about the problem domain? *
Yes. I am theoretical physicist. My research is based on numerical
integration of ODEs which model the real world.

Best regards

Peter

--
View this message in context: http://boost.2283326.n4.nabble.com/Review-ODEInt-review-starts-today-September-19-ends-September-28-tp4636023p4636244.html
Sent from the Boost - Users mailing list archive at Nabble.com.

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net