Hi Peter, thank your for your review. On 09/26/2012 01:11 PM, BildPeter wrote:
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-Septemb... Sent from the Boost - Users mailing list archive at Nabble.com. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users