The following example demonstrates an Open Computing Language (OpenCLTM) implementation of an Asian option pricing algorithm. An Asian option is a financial instruction whose price is path dependent. The payoff of such an option is dependent on the average price over a number of sampled points from the start time to the time of maturity. This example specifically considers the pricing of arithmetic Asian options.
Through the use of multiple kernels and Intel's channels vendor extension, this example shows how to efficiently implement a Monte Carlo simulation to price Asian options. At the core of the computation is a kernel implementing the Black-Scholes model. Two other kernels implement a Mersenne Twister random number generator, which is used to supply random numbers to the Black-Scholes kernel using channels as the communication mechanism. Finally, the output from the Black-Scholes kernel is aggregated by another kernel to produce the total payoff value. A detailed explanation can be found in the source code in the design example package.
This example also supports simultaneous execution on multiple OpenCL devices. Each device is dedicated to pricing an Asian option with a different set of parameters, demonstrating scalable parallel offload of many option price calculations.
Performance Scaling with Multiple OpenCL Devices