Financial Instrument Pricing: Libor Swaption Portfolio (Monte-Carlo)

Select Processor

Benchmark Description

This application prices a portfolio of LIBOR swaptions on a LIBOR Market Model using a Monte-Carlo simulation. It simultaneously calculates first order sensitivities to the initial forward rates (the delta Greeks) using path-wise Adjoint Algorithmic Differentiation (AD).

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:


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). The performance is measured with varying numbers of Monte-Carlo paths (from 256K to 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
  • Sensitivities: first order (delta)
  • Number of Sensitivities: 80
  • Monte-Carlo Paths: 256K-2,048K
SystemOperating SystemImplementationMemory (RAM)CompilerECCPrecision ModeOther
IBM Power8Ubuntu 14.10 (64bit)C++256GBIBM Compiler 13.1ondouble8x SMT
The application is executed 100 times and the average wall-clock time is reported. The first cold run is dropped. 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
Dual IBM Power8 ISeries 8286-42A CPU2 x 122 x 96 (SMT8)3.52 GHz2 x 3381 TB2 x 384 GB/s

Speedup vs. Sequential*

Start accelerating your code today

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

Ask A Question