11-B
High-Performance Reserve Calculations for Life Insurance Portfolios
life insurance and pension products, described using a flexible and
precise notation that is both machine-readable and human-readable; in
effect, a domain-specific language for actuaries. Mathematically,
this notation is based on multistate models.
First, from a collection of such product descriptions and from
assumptions about transition intensities (eg. survival, disability)
and yield curves, the software can generate eg. the Thiele
differential equations that characterize the reserve or other
quantities of interest.
Secondly, these differential equations can be solved efficiently in a
range of different ways. Since we use numerical solvers, we can
handle reserve calculations for advanced pension products, for which
the Thiele equations do not have closed-form solutions. The
computationally most advanced solvers generate product-specific CUDA C
code for graphics processors. Experience shows that this can speed up
the solution by a factor of around 100 over standard desktop hardware,
while retaining the same accuracy.
Future work includes the generation of product-specific C and C# code
for standard multicore (desktop and server) hardware, which is likely
to be somewhat slower than the graphics processor hardware, but more
readily available and better suited to adaptive-step differential
equation solvers such as Runge-Kutta-Fehlberg. Taking this path
requires no change in the actuarial product descriptions.
The bottom line is that we can develop and describe advanced and
non-standard pension and life insurance products, yet still
efficiently compute reserves and other quantities of interest. Core
to this is the use of modern programming language technology,
including domain-specific languages and code generation for a range of
hardware platforms.
Possible audience involvement: A demo to show how reserves can be
interactively computed for various insurance products.