High-Load Research Application

This project was initially undertaken for the benefit of the finance research teams at the Goethe University of Frankfurt and INSEAD, and is based on the paper "Hedging Options in the Presence of Microstructural Noise " by Horn, Schneider, and Vilkov (2007). The objective is to calibrate the Heston (1993) stochastic volatility model with 5 free parameters under the risk-neutral probability measure.

The setup for this project is as follows:

The models are calibrated daily to the BID/ASK/MID prices using all available call options with maturities ranging from 14 to 180 days and with moneyness (strike/stock price) in the range [80,120]. On average, each model is calibrated on 64 options of various strikes and maturities.

For each option in the series there is a matching (in terms of quote time) spot rate of an underlying, risk-free rate (the interpolated T-Bill rate) and a continuous dividend yield.

The calculations involved are quite intensive. The Heston stochastic volatility model is a continuous time model with the following formulation under the risk-neutral probability measure:

Heston Formulation

The option price is calculated using the Fourier transform technique and involves some numerical integration.

The calibration procedure uses an optimization routine that minimizes a 5-dimensional objective function (one dimension for each free parameter in the Heston model formulation as above). The objective function is calculated as the mean squared pricing error between the observed price and the calculated price for each combination of parameters. Thus, on each iteration, the calibration routine uses numerical integration to calculate 64 option prices on average. The number of iterations is capped at 1000, and if the procedure does not converge, we consider the model calibration to have failed.

The differences among the calibration models' convergence properties contribute to significant fluctuations in the calculations' execution times, making the models heterogeneous.

Performance and results

The authors of the aforementioned paper needed to wait for more than a week to get the results of the calibration when using a standard serial-computation setup. Of course, errors in the setup easily led to repeated runs of the entire computation, and, thus, in practice, this whole process took a month of the authors' time.

The Zircon software test setup runs a zEnabled version of the program on a standard Linux machine with dual quad-core CPUs as well as one PC. As explained above, the optimal number of zEngines is eight in such a setup, matching the number of truly parallel processing units available. For this test, statistics are gathered for the non-parallelized configuration and the 8-zEngine configuration only.

The effects of using Zircon software in this application were:

1. Zircon software dramatically improved the overall performance of the calculations for the research application

2. The performance gain was almost linear in the number of zEngines (cores) used

3. Zircon software particularly distinguishes itself when working with heterogeneous models

The calculations completed on 8 zEngines in less than 20 hours, and, in total, 2667 models were calibrated. The average execution time per request came to 26.9 seconds.

We also performed the same calibrations on 10 zEngines, where we added two (slightly) slower Xeon CPUs to the two initial quad-core Xeon 2.66 CPUs. The calculations occupied 17.5 hours. Compared to the previous test run, more outliers are present (mainly due to the presence of the slower processors), but the overall mean calculation rate was tangibly higher.

On a single processor, each model took about 4.5 minutes to compute, and this again confirms the nearly linear relationship between the number of parallel processing units available when using Zircon software and the overall throughput of the system. The serial version of the entire calculation took more than a week to complete.