-
Programming CUDA and OpenCL: A Case Study Using Modern C++ Libraries
Abstract: We present a comparison of several modern C++ libraries providing high-level interfaces for programming multi- and many-core architectures on top of CUDA or OpenCL. The comparison focuses on the solution of ordinary differential equations and is based on odeint, a framework for the solution of systems of ordinary differential equations. Odeint is designed in a very flexible way and may be easily a… ▽ More
Submitted 26 April, 2013; v1 submitted 27 December, 2012; originally announced December 2012.
Comments: 21 pages, 4 figures, submitted to SIAM Journal of Scientific Computing and accepted
-
Odeint - Solving ordinary differential equations in C++
Abstract: Many physical, biological or chemical systems are modeled by ordinary differential equations (ODEs) and finding their solution is an every-day-task for many scientists. Here, we introduce a new C++ library dedicated to find numerical solutions of initial value problems of ODEs: odeint (www.odeint.com). odeint is implemented in a highly generic way and provides extensive interoperability at top per… ▽ More
Submitted 15 October, 2011; originally announced October 2011.
Comments: 4 pages, 1 figure
Journal ref: IP Conf. Proc. - September 14, 2011 - Volume 1389, pp. 1586-1589
-
Metaprogramming Applied to Numerical Problems
Abstract: From the discovery that the template system of C++ forms a Turing complete language in 1994, a programming technique called Template Metaprogramming has emerged that allows for the creation of faster, more generic and better code. Here, we apply Template Metaprogramming to implement a generic Runge-Kutta scheme that can be used to numerically solve ordinary differential equations. We show that usi… ▽ More
Submitted 14 October, 2011; originally announced October 2011.
Comments: 4 pages,2 figures,3 listings
Journal ref: AIP Conf. Proc. 1389, pp. 1582-1585 (2011)