Pension reserve computations on GPUs

New regulations from the European Union, called Solvency II, require that life insurance and pension providers perform more complicated calculations to demonstrate their solvency. At the same time, exploiting alternative computational paradigms such as GPGPU requires a high degree of expertise about the hardware and ties the computational infrastructure to one particular platform. In an industry where contracts literally last a lifetime, this is far from optimal. We demonstrate the feasibility of an alternative approach in which life insurance and pension products are represented in a high-level, declarative, domain-specific language from which platform-specific high-performance code can be generated. Specifically, we generate CUDA C code after applying both domain- and platform-specific optimizations. This code significantly outperforms equivalent code running on conventional CPUs.

[1]  David Raymond Christiansen,et al.  Software Development for the Working Actuary , 2013, IS-EUD.

[2]  S. Ross,et al.  AN INTERTEMPORAL GENERAL EQUILIBRIUM MODEL OF ASSET PRICES , 1985 .

[3]  P. Sestoft,et al.  An Actuarial Programming Language for Life Insurance and Pensions , 2013 .

[4]  P. Sestoft,et al.  High-Performance Reserve Calculations for Life Insurance Portfolios , 2013 .

[5]  A. van Deursen,et al.  Algebraic specification of a language for describing financial products , 1995 .

[6]  Christian Hofer,et al.  Polymorphic embedding of dsls , 2008, GPCE '08.

[7]  Franz Franchetti,et al.  SPIRAL: Code Generation for DSP Transforms , 2005, Proceedings of the IEEE.

[8]  Jacques Carette,et al.  Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages , 2007, Journal of Functional Programming.

[9]  Simon L. Peyton Jones,et al.  Composing contracts: an adventure in financial engineering (functional pearl) , 2000, ICFP '00.

[10]  William H. Press,et al.  Numerical recipes in C , 2002 .

[11]  Hans U. Gerber Life Insurance Mathematics , 1990 .

[12]  Jakob Grue Simonsen,et al.  Compositional specification of commercial contracts , 2006, International Journal on Software Tools for Technology Transfer.

[13]  Diomidis Spinellis,et al.  Commercial uses: Going functional on exotic trades , 2009, Journal of Functional Programming.

[14]  Lawrence M. Murray,et al.  GPU Acceleration of Runge-Kutta Integrators , 2012, IEEE Transactions on Parallel and Distributed Systems.

[15]  An embedded DSL for stochastic processes: research article , 2012, FHPC '12.

[16]  Mario Mulansky,et al.  Odeint - Solving ordinary differential equations in C++ , 2011, ArXiv.