In today’s complex financial markets and with the 2008 financial crisis ongoing, the market actors feel the need of high performance computing tools for a fast evaluation of financial products. Often in order to get quick evaluations of financial products, simplified models are used. The use of simplified models most of the time produces inaccurate results. In order to efficiently evaluate financial products with state-of-the-art models we have developed Option Engine, a grid-enabled software package to evaluate financial options (http://www.ceri.uniroma1.it/ceri/zirilli/w5). Option Engine uses accurate financial models and exploits the power of grid computing. We begin answering three questions about Option Engine: What is its purpose? Why it is a high performance computing tool? Toward whom it is directed?
What is its purpose?
The purpose of the Option Engine software package is pricing rapidly and efficiently financial options. A financial option is a contract between two parties (a buyer and a seller) that gives today the buyer the right and not the obligation to buy or to sell a given quantity of a particular underlying good (asset, basket of assets, market index, commodity and so on) at a later day at a price agreed today. In return for granting this right (i.e.: the option), the seller collects a payment (the premium) from the buyer. The formulae used to price options (for example the Black Scholes formula) establish the fair value of the premium and are derived under some hypotheses using mathematical models (such as the Black Scholes model) that describe the dynamics of the price of the underlying asset of the option through differential or difference stochastic equations. A simple model usually implies that the option price can be evaluated rapidly, however the use of too simple models can lead to inaccurate option prices, that is to option prices useless in real situations. The extreme volatility of financial markets in the last couple of years has made imperative the use of sophisticated stochastic models to describe the dynamics of the underlying asset prices and the fast evaluation of the resulting (non trivial) option pricing formulae is becoming a need to be competitive in the market. The Option Engine package is an attempt to satisfy this need.
Why it is a high performance computing tool?
The Option Engine package is a high performance computing tool because it integrates successfully a part of QuantLib, an efficient open source software library for quantitative finance, and a Platform Computing grid product: Symphony Enterprise Soft Grid package. The realization of the Option Engine package has been made possible thank to the effort of CERI, a research center of Università di Roma “La Sapienza” (Roma, Italy) with the assistance of Platform Computing and of QuantLib. Option Engine shows how Symphony can be used to perform scientific computations. In fact in Option Engine Symphony is used to run QuantLib library routines. The Option Engine software package makes available in the Symphony environment (that is grid enables) twenty seven QuantLib modules. Once assigned a work load (i.e.: the computation of the prices of a set of options through the use of the QuantLib modules contained in Option Engine). Symphony allows to optimize the use of the available computing resources in the grid. The smart allocation of the tasks contained in the work load between the available computing resources made by Symphony makes the Option Engine package able to exploit the computing power of the grid, that is makes the Option Engine package an high performance computing tool.
Toward whom it is directed?
The potential users of the Option Engine package are practitioners and researchers working in financial and in academic institutions interested in evaluating financial options using a computing grid. The Option Engine package can be downloaded from the Web site: http://www.ceri.uniroma1.it/ceri/zirilli/w5.
Option Engine makes possible the use of the QuantLib grid-enabled routines and shows how to integrate the QuantLib library modules and the Symphony Developer Edition (DE) grid computing middleware. Let us begin describing briefly Symphony and QuantLib.
Symphony is a grid computing middleware that is used to build and deploy rapidly distributed services through a single, high-level paradigm for multicore and multi-node environments. Platform Symphony is widely deployed by financial institutions to process computer and time-sensitive applications, such as trading, pricing, risk analysis, profit and loss reporting and trade settlement applications, in real time across an Enterprise Grid computing infrastructure. Recently available as a free trial download, Platform Symphony DE provides developers with a powerful HPC tool to build and deploy service-oriented applications. The demo of Symphony DE can be downloaded here. With comprehensive and easy-to-follow coding examples, following the suggestions contained in the Symphony demo, developers can create and test high-performance application services in the language of their choice in record time.
The Symphony environment allows one to simultaneously run a number of tasks, even thousands of tasks, (i.e., financial option evaluations) on a computing grid. Generally multiple and simultaneous runs are possible on a multiprocessor (parallel) machine; however, these machines are expensive and not every financial or academic institution can have dedicated supercomputing centers with parallel machines.
Platform Symphony software allows the user to implement a computing grid using the underutilized computing resources already available in the institution to provide additional processing power. Moreover, the Platform grid solution can enhance the capacity and performance of scientific applications, while reducing computing costs and real estate requirements. The computing grid is also being used to build a utility computing service that offers to some business or research units access to on-demand computing and to allow an efficient allocation of the work load on the free resources of the computing grid.
In trading financial options, to be profitable and to outpace the competitors, a financial institution must be able to take the best decisions in the shortest time. Computers play a big role in achieving this goal, and several institutions use a lot of computer processing power to evaluate financial products. Platform Symphony is able to create a grid from a set of computers and is able to allocate tasks on demand on this grid, taking into account the features of the grid that has been created and the load that is allocated on it.
QuantLib is a C++ Open Source library for financial quantitative analysis that contains source codes of several kinds such as, for example, codes that perform mathematical operations, such as constrained and unconstrained optimization and/or interpolation, codes that generate random numbers sampled from a given probability distribution, and codes that compute the price of derivative contracts (options) with assigned parameters. The library boost must be installed to be able to use QuantLib.
Symphony plus the part of QuantLib that is specified below have been combined to produce the Option Engine package that consists of twenty-seven grid-enabled modules with self-explanatory titles to evaluate the price of some of the main financial options. Symphony-enabled QuantLib routines can exploit the computing power of the grid created by Symphony and the high quality mathematical software implementing the solution of state-of-the-art financial models contained in the QuantLib routines becoming an interesting high performance computing tool.
The 27 QuantLib modules grid enabled through Symphony contained in Option Engine are:
- Black-Scholes
- Barone-Adesi/Whaley
- Bierksund/Stensland
- Integral
- Finite Differences
- Binomial Jarrow-Rudd
- Binomial Cox-Ross-Rubistein
- Binomial equiprobabilities
- Binomial Trigeorgis
- Binomial Tian
- Binomial Leisen-Reimer
- Binomial Joshi
- MC (crude)
- QMC (Sobol)
- MC (Longstaff Schwartz)
- Digital payoff
- Discrete dividends
- Bates
- Ju
- FD for dividend options
- Heston
- Black-Scholes with Hull-White
- Heston with Hull-White
- MC (crude) Heston
- QMC (Sobol) Heston
- Heston Variance Option
- Perturbative Barrier Option
The titles of these modules are self-explanatory. The 26th and 27th modules are derived from the research work of the authors and of one of their coworkers. More specifically, the 26th module considers the problem of pricing variance options (for further details see http://www.econ.univpm.it/recchioni/finance/w4) and the 27th module considers the problem of pricing barrier options in the Black Scholes framework with time-dependent coefficients (for further details see http://www.econ.univpm.it/recchioni/finance/w3).
The performance on a grid of the Option Engine package has been analyzed through some numerical experiments comparing the performance of Symphony with that of its direct competitor, the LSF job array instruction. LSF stands for Load Sharing Facility and is a Platform product to create and manage a computing grid. The LSF job array is an LSF instruction able to submit simultaneously up to 1,000 copies of the same code with different input data. This instruction allocates the jobs on the free processors (of the grid) following a sequential order, that is when one of the processors of the grid is free a job is allocated on it. The LSF job array instruction does not exploit completely the knowledge of the grid and of the computing load served by the grid at the time when the jobs are submitted. On the contrary, Symphony is able to make these considerations, which results in a better allocation of the jobs.
On the Web site, http://www.ceri.uniroma1.it/ceri/zirilli/w5, the execution times observed in a numerical experiment needed to compute six or twelve barrier options using the 27th module, either using the Option Engine in the Symphony environment or using the LSF job array instruction, are shown. These execution times have been observed in a very limited experimentation and we believe that it is more realistic to derive from them indications instead of conclusions. Note that in this study the Symphony jobs and the LSF jobs are submitted at the same time. The analysis of the execution times shows that, in general, the use of Symphony made through Option Engine provides a wallclock time reduction in the execution of the workload when compared to the wallclock time used by the corresponding LSF job array. The size of this reduction depends on the grid and on the workload present on the grid at the time of the execution. In our experience, we have observed that Option Engine uses immediately at least 50 percent of the free resources. This last feature is not shared by the LSF job-array that runs the jobs one after the other and, when the load of the grid is heavy, puts in standby some tasks to wait for a smaller load of the grid.
A general reference to the work of the authors and of some of their co-authors in mathematical finance can be found at http://www.econ.univpm.it/recchioni/finance.
About the Authors
Francesca Mariani, Maria Cristina Recchioni, Francesco Zirilli