High Performance Numerical Pricing Methods

Hans Moritsch
Department of Business Studies, University of Vienna
Hans.Moritsch@univie.ac.at

Sigi Benkner
Institute for Software Science, University of Vienna
sigi@par.univie.ac.at

Within the project "Hgih Performance Computing in Finance", as a part of the Special Research Program AURORA (Advanced Models, Applications and Software Systems for High Performance Computing) a decision support system is developed to find optimal strategies for portfolio planning and asset-liability management. It incorporates stochastic multidimensional scenario processes and multistage decisions. Based on a set of financial contracts, an investor chooses an investment strategy over a given planning horizon. Stochastic optimization techniques are utilized to derive optimal financial allocation decisions. Realistic models, taking into account many risk factors and transaction costs result in a computational complexity which requires high performance computing.

The system takes as an input models of the development of the economic environment, e.g. stock prices and interest rates. These models, formulated as stochastic processes, can be represented as binomial or trinomial lattices. Analytical pricing formulas exist in special cases only, however, based on these lattice structures, numerical pricing algorithms can compute future prices of financial instruments. Monte Carlo simulation techniques are the most powerful ones; they allow to price also path dependent derivative instruments. These instruments pay cashflows which depend on the past development of underlying variables. Because they are computationally very intensive, a parallel implementation in High Performance Fortran has been developed, which gains an almost linear speedup. Instruments not containing any path dependences can be priced with backward induction algorithms with a complexity linear in the number of lattice nodes. Due to the inherent property of combining information about several future scenarios into one single node, they require a substantial amount of communication in a parallel version.

The Monte Carlo simulation algorithm selects paths in a lattice starting from the root node, and computes prices along each path. The core step in the standard backward induction is the computation of the present value at a node through values at the direct successor nodes. It can be applied only, when the future values are fully determined by the state represented by the node, i.e. there is no path dependence. For a subclass of path dependent instruments a more efficient pricing algorithm has been developed which evaluates much shorter paths than the standard Monte Carlo Simulation. In the case of a limited path dependence, where the cash flow depends on values reaching back in history no longer than a certain period, we use a combination of the Monte Carlo and backward induction techniques. Small simulations are performed backwards at each node of the lattice to compute partial present values, which are then completed. Parallelism can be exploited by performing several simulations in parallel, but also within individual simulations.

We present experiments with different parallel versions of a pricing kernel using both HPF and OpenMP. In addition, part of the code has been vectorized. We also discuss a hybrid-parallel version, which combines distributed- and shared-memory parallelism, developed with the Vienna Fortran (VFC) compiler from the University of Vienna. It utilizes HPF extensions for specifying a hierarchical mapping of data onto a cluster of SMPs. Performance experiments on a Linux SMP cluster and on the NEC SX-5 vector supercomputer will be presented.