Intel just released its new Ivy-Bridge server processor line (Xeon E5 v2 series), promising significant performance gains over previous-generation Sandy-Bridge processors. In this post, we will compare the two generations for a financial application – a Monte-Carlo LIBOR Swaption Porfolio pricer.
Intel Ivy-Bridge Processor Generation
From a hardware perspective, the main change between the two processor generations is the shrinked manufacturing process, i.e., Sandy-Bridge is produced in a 32nm process and Ivy-Bridge in a 22nm process. This allows to fit many more transistors on the chip and allows higher clock rates. Otherwise the microarchitecture is almost the same. The table below shows a comparison of the hardware specs of the Sandy-Bridge and Ivy-Bridge processors that are used further below for the benchmark:
(Xeon E5-2697 v2)
|Logical Cores||16 (HT)||24 (HT)|
|Frequency||2.60 GHz||2.70 GHz|
|Cache||20 MB||30 MB|
|Max TDP||115 W||130 W|
|Max Memory Bandwidth||51.2 GB/s||59.7 GB/s|
Test Application: Monte-Carlo LIBOR Swaption Portfolio Pricing
Details of this algorithm have been previously described. For convenience, we briefly summarise it below:
A Monte-Carlo simulation is used to price a portfolio of LIBOR swaptions. Thousands of possible future development paths for the LIBOR interest rate are simulated using normally-distributed random numbers. For each of these Monte-Carlo paths, the value of the swaption portfolio is computed by applying a portfolio payoff function. The equations for computing the LIBOR rates and payoff are given in Prof. Mike Giles’ notes. Furthermore, the sensitivity of the portfolio value with respect to changes in the underlying interest rate is computed using Adjoint Algorithmic Differentiation (AD). This sensitivity is a Greek, called λ, and its computation is detailed in the paper Monte Carlo evaluation of sensitivities in computational finance. Both the final portfolio value and the λ value are obtained by computing the mean of all per-path values. The algorithm is illustrated in the following processing graph:
We ran the same application, on both the Intel Sandy-Bridge and Ivy-Bridge server CPUs and compare their performance. The test systems have 2 CPUs each, using the Xeons specified in the overview above. The following configuration was used:
- CPU: 2 sockets, Sandy-Bridge (Xeon E5-2670) or Ivy-Bridge (Xeon E5-2697 v2)
- HT: Hyper-threading enabled
- OS: RedHat Enterprise Linux 6.4 (64bit)
- RAM: 64GB
- Compiler: GCC 4.4
- Xcelerit SDK: version 2.2.2
We measured the computation times of an optimized parallel version  of the Monte-Carlo LIBOR swaption portfolio pricer. It is executed on both processor configurations, and the application performance is compared. Note that the execution time of the full application is measured, including data transfers, random number generation, and reduction.
The table below shows the speedups for different numbers of paths, comparing the Ivy-Bridge processor vs. the Sandy-Bridge processor:
|Paths||Speedup Ivy-Bridge vs. Sandy-Bridge|
As can be seen, the Ivy-Bridge processor gains significantly compared to the Sandy-Bridge, reaching 1.5x speedup for high numbers of paths. This is in line with the increase in the number of cores from 8 to 12 per chip. The benefits of the new Ivy-Bridge for financial Monte-Carlo applications can be clearly seen here.
 The implementation uses the Xcelerit SDK, a software toolkit to boost the performance of compute-intensive applications while preserving programmers productivity. The resulting executable is cross-platform and can be executed on a combination of CPUs and GPUs.