Numerical Analysis and GPU Computing
A quick scroll through my papers would show a number of articles I wrote on special functions, classifying pricing models for European or path-dependent options which can be solved in analytically closed form. What I learned from this research is that special functions are useful because they are eigenfunctions of Markov generators. I also learned that it is useful to manipulate Markov generators into operators without a direct probabilistic interpretation. After this phase I have been building pricing models whereby the Markov generator could be diagonalized numerically. However, I soon realized that the existence of pseudo-spectrum was an obstacle in many situations. It is only when I started using fast exponentiation that I was able to build 3-factor models combining stochastic drift and stochastic volatility. Fast exponentiation is a very robust algorithm that makes use of only matrix-matrix multiplications to exponentiate, so it accelerates very well on GPU architectures. To exponentiate very large matrices deriving from path-dependent options, I developed a special method of block-diagonalization for Abelian path dependents, a family which contains most of the traded path-dependent options and is based on the notion of Abelian process, a generalization of the notion of stochastic integral. A somewhat less efficient but still quite usable block-factorization method applies to the non-Abelian cases such as snowballs, Parisian barriers and swing options.I also developed a framework to model multi-factor correlations by means of dynamic conditioning and applied the method to a model for bespoke CDOs.
Smoothness is also at the root of another surprising property of fast exponentiation algorithms, namely their stability in single precision floating point arithmetics. Since GPUs are optimized for single precision arithmetics and they represent just about the only area of High Performance Computing where fast progress is taking place, it would seem there is a strong case to understand better this class of BLAS level-3 algorithms.
I named this site "Level 3 Finance" because operator methods lead to algorithms where the numerical bottleneck is captured by calls to BLAS Level 3 routines to multiply real and complex matrices. Interestingly enough, this algorithms lend themselves naturally to GPU acceleration. Nowadays, I run all my models on graphic cards. As one moves from CPU to GPU programming, one is confronted with a number of new and intriguing mathematical challenges. I am interested in understanding and using smoothing properties of diffusion equations, building algorithms that perform robustly in single precisition, computing sensitivities in a stable and efficient manner.
|