Last updated: 3 August 2017

Select Processor

Select Application

Quantitative Finance


Prices a portfolio of LIBOR swaptions on a LIBOR Market Model using a Monte-Carlo simulation and computes Greeks.

Prices a portfolio of American call options using a Binomial lattice (Cox, Ross and Rubenstein method).

Prices a portfolio of European options using the Black-Scholes-Merton formula.

Prices a portfolio of up-and-in barrier options using a Monte-Carlo simulation.

(All applications have been implemented natively in C++, using vendor-provided libraries where appropriate.)

Benchmark Description

This application prices a portfolio of LIBOR swaptions on a LIBOR Market Model using a Monte-Carlo simulation. It also computes Greeks.

In each Monte-Carlo path, the LIBOR forward rates are generated randomly at all required maturities following the LIBOR Market Model, starting from the initial LIBOR rates. The swaption portfolio payoff is then computed and discounted to the pricing date. Averaging the per-path prices gives the final net present value of the portfolio.

The full algorithm is illustrated in the processing graph below:

LiborGreeksGraph

More details can be found in Prof. Mike Giles’ notes [1].

This benchmark uses a portfolio of 15 swaptions with maturities between 4 and 40 years and 80 forward rates (and hence 80 delta Greeks). To study the performance, the number of Monte-Carlo paths is varied between 128K-2,048K.

[1] M. Giles, “Monte Carlo evaluation of sensitivities in computational finance,” HERCMA Conference, Athens, Sep. 2007.

  • Application Class: Pricer
  • Model: Libor Market Model
  • Instrument Type: Swaption Portfolio
  • Numerical Method: Monte-Carlo
  • Portfolio Size: 15 swaptions
  • Maturities: 4 to 40 years
  • Number of Forward Rates: 80
  • Number of Sensitivities: 80
  • Monte-Carlo Paths:128K–1,024K

This benchmark application prices a portfolio of American call options using a Binomial lattice (Cox, Ross and Rubenstein method).

For a given size N of the binomial tree, the option payoff at the N leaf nodes is computed first (the value at maturity for different stock prices, using the Black-Scholes model). Then, the pricer works towards the root node backwards in time, multiplying the 2 child nodes by the pre-computed pseudo-probabilities that the price goes up or down, including discounting at the risk-free rate, and adding the results. After repeating this process for all time steps, the root node holds the present value.

The algorithm is illustrated in the graph below:

Binomial tree illustration

This binomial pricing method is applied for every option in the portfolio.

For this benchmark, we use 1,024 steps (the depth of the tree). We vary the number of options in the portfolio to study the performance.

  • Application Class: Batch Pricer
  • Model: Black-Scholes
  • Instrument Type: American Option
  • Numerical Method: Binomial Lattice
  • Portfolio Size: 128K–2,048K
  • Maturities: 1–5 years
  • Depth of Lattice: 1,024

This benchmark application prices a portfolio of European options using the Black-Scholes-Merton formula.

The pricer calculates both the call and put price for a batch of options, defined by their current stock price, strike price, and maturities. It applies the Black-Scholes-Merton forumla for each option in the portfolio.

For this benchmark, we repeat the application of the formula 100 times to increase the overall runtime for the performance measurements. The number of options in the portfolio is varied to study the performance.

  • Application Class: Batch Pricer
  • Model: Black-Scholes
  • Instrument Type: European Option
  • Numerical Method: Closed-form Formula
  • Portfolio Size: 32M-256M
  • Maturities: 1–5 years

This benchmark application prices a portfolio of up-and-in barrier options with European exercise, using a Monte-Carlo simulation.

The Black-Scholes model is used to generate the paths. That is, in every Monte-Carlo path, the stock value at a fixed grid of time steps is computed using a geometric Brownian motion with constant volatility and the risk-free rate. If the stock value crosses the barrier anywhere along the path, the option becomes valid and its payoff is the positive value of the difference between the stock at maturity and the option’s strike. Otherwise, the option’s payoff is zero.

Then the payoff of each option is discounted to the valuation date using the risk-free rate and averaged across the paths. This yields the net present values of all options.

The full algorithm is illustrated in the processing graph below:

MC Barrier Option Pricer Graph

This benchmark uses 50,000 Monte-Carlo paths and 50 time-steps. The number of options in the portfolio is varied to study the performance.

  • Application Class: Batch Pricer
  • Model: Black-Scholes
  • Instrument Type: Barrier Option
  • Numerical Method: Monte-Carlo
  • Paths: 50,000
  • Time Steps: 50
  • Number of Options: 2,000–32,000
  • Maturities: 1-5 years

SystemOperating SystemImplementationMemory (RAM)CompilerECCPrecision ModeOther
Nvidia KeplerRedHat EL 7.2 (64bit)128GB (host)GCC 4.8ondoublemax. clock boost, CUDA 7.5
SystemOperating SystemMemory (RAM)CompilerECCPrecision ModeOther
Nvidia KeplerRedHat EL 7.2 (64bit)128GB (host)GCC 4.8ondoublemax. clock boost, CUDA 8.0
SystemOperating SystemMemory (RAM)CompilerECCPrecision ModeOther
Nvidia KeplerRedHat EL 7.2 (64bit)128GB (host)GCC 4.8ondoublemax. clock boost, CUDA 8.0
SystemOperating SystemMemory (RAM)CompilerECCPrecision ModeOther
Nvidia KeplerRedHat EL 7.2 (64bit)128GB (host)GCC 4.8ondoublemax. clock boost, CUDA 8.0

The application is executed repeatedly, recording the wall-clock time for each run, until the estimated timing error is below a specified value. The full algorithm execution time from inputs to outputs is measured. This includes setup of accelerators and data transfers if applicable. The speedup vs. a sequential implementation on a single core is reported.

Hardware Specification

ProcessorCoresLogical CoresFrequencyGFLOPs (double)Max. MemoryMax. Memory B/W
NVIDIA Tesla K40 GPU (Kepler)15 (SMX)2,880 (CUDA cores)745 MHz1,43012 GB288 GB/s
NVIDIA Tesla K80 GPU (Kepler)2 x 13 (SMX)2 x 2,496 (CUDA cores)562 MHz2 x 1,4552 x 12 GB2 x 240 GB/s
ProcessorCoresLogical CoresFrequencyGFLOPs (double)Max. MemoryMax. Memory B/W
NVIDIA Tesla K40 GPU (Kepler)15 (SMX)2,880 (CUDA cores)745 MHz1,43012 GB288 GB/s
NVIDIA Tesla K80 GPU (Kepler)2 x 13 (SMX)2 x 2,496 (CUDA cores)562 MHz2 x 1,4552 x 12 GB2 x 240 GB/s
ProcessorCoresLogical CoresFrequencyGFLOPs (double)Max. MemoryMax. Memory B/W
NVIDIA Tesla K40 GPU (Kepler)15 (SMX)2,880 (CUDA cores)745 MHz1,43012 GB288 GB/s
NVIDIA Tesla K80 GPU (Kepler)2 x 13 (SMX)2 x 2,496 (CUDA cores)562 MHz2 x 1,4552 x 12 GB2 x 240 GB/s
ProcessorCoresLogical CoresFrequencyGFLOPs (double)Max. MemoryMax. Memory B/W
NVIDIA Tesla K40 GPU (Kepler)15 (SMX)2,880 (CUDA cores)745 MHz1,43012 GB288 GB/s
NVIDIA Tesla K80 GPU (Kepler)2 x 13 (SMX)2 x 2,496 (CUDA cores)562 MHz2 x 1,4552 x 12 GB2 x 240 GB/s

Speedup vs. Sequential*

(higher is better)


*the sequential version runs on a single core of an Intel Xeon E5-2698 v3 CPU


*the sequential version runs on a single core of an Intel Xeon E5-2698 v3 CPU


*the sequential version runs on a single core of an Intel Xeon E5-2698 v3 CPU


*the sequential version runs on a single core of an Intel Xeon E5-2698 v3 CPU

Whitepaper: A Guide to Choosing HPC Processors

While benchmarking a given application provides a comparative measure of hardware performance, the ease of developing and tuning the software is equally important. This white paper gives an overview of available processors and their suitability for various algorithms classes. In addition, it assesses the required development effort and expertise when tuning a given application for these processors.

  • HPC processors landscape: CPU, GPU, Intel Xeon Phi, IBM Power
  • Suitability for algorithms classes and applications
  • Typical implementation workflow
  • Cost-benefit tradeoff
  • Guidelines for choosing a processor

top
Ask A Question