GPGPU calculating life and pension insurance

This project was a thesis submitted in fulfillment of the requirements for the degree of Bachelor of Science at the ITU.

Programming language: F#

Insurance companies face greater regulations to make sure the companies can better survive financial crisis. One area of regulation is in regard to the amount of capital there must be held to fulfill their future obligations. This will force insurance companies to report their ability to fulfill these obligations. This is a challenge for insurance companies because the calculations needed are very time consuming. Therefore this project focuses on general purpose processing on graphics processing units(GPGPU) to help speed up these calculations.

The goals of this project was to implement a CPU and a GPU solver for a one life contract, then implement two GPU versions for solving collective contracts: a per thread and a per block version. Finally to implement a multistate collective contract.

The two first goals were fulfilled and showed the performance upgrade that can be gained by using the GPU for these calculations. Furthermore it is shown using a per block implementation approach provides the best performance for calculating collective contracts for larger widow ranges. The per thread implementation ends up giving better performance for small widow ranges.

Due to time constraints and implementation difficulties an implementation of multistate contract is not implemented. Instead an overview of how to implement this and what possible challenges this could bring is provided. Additionally possible solutions for these challenges are given. These include decreasing the widow range, skipping years in widow states and precomputation of Gompertz–Makeham law of mortality, rates and reserves for widow states.

maj 29, 2017