Intel just released its new IvyBridge server processor line (Xeon E5 v2 series), promising significant performance gains over previousgeneration SandyBridge processors. In this post, we will compare the two generations for a financial application – a MonteCarlo LIBOR Swaption Porfolio pricer.
Intel IvyBridge Processor Generation
From a hardware perspective, the main change between the two processor generations is the shrinked manufacturing process, i.e., SandyBridge is produced in a 32nm process and IvyBridge 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 SandyBridge and IvyBridge processors that are used further below for the benchmark:
SandyBridge (Xeon E52670) 
IvyBridge (Xeon E52697 v2) 

Cores  8  12 
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: MonteCarlo LIBOR Swaption Portfolio Pricing
Details of this algorithm have been previously described. For convenience, we briefly summarise it below:
A MonteCarlo simulation is used to price a portfolio of LIBOR swaptions. Thousands of possible future development paths for the LIBOR interest rate are simulated using normallydistributed random numbers. For each of these MonteCarlo 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 an adjoint method. 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 perpath values. The algorithm is illustrated in the following processing graph:
Benchmark Setup
We ran the same application, on both the Intel SandyBridge and IvyBridge 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, SandyBridge (Xeon E52670) or IvyBridge (Xeon E52697 v2)
 HT: Hyperthreading enabled
 OS: RedHat Enterprise Linux 6.4 (64bit)
 RAM: 64GB
 Compiler: GCC 4.4
 Xcelerit SDK: version 2.2.2
Performance
We measured the computation times of an optimized parallel version [1] of the MonteCarlo 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 IvyBridge processor vs. the SandyBridge processor:
Paths  Speedup IvyBridge vs. SandyBridge 
64K  1.15x 
128K  1.25x 
256K  1.34x 
512K  1.4x 
1,024K  1.48x 
As can be seen, the IvyBridge processor gains significantly compared to the SandyBridge, 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 IvyBridge for financial MonteCarlo applications can be clearly seen here.
[1] The implementation uses the Xcelerit SDK, a software toolkit to boost the performance of computeintensive applications while preserving programmers productivity. The resulting executable is crossplatform and can be executed on a combination of CPUs and GPUs.
Xcelerit
Latest posts by Xcelerit (see all)
 Coding for Xeon Phi the Easy Way  December 8, 2014
 Xcelerit SDK 2.6 released  September 12, 2014
 Xcelerit SDK version 2.5 Released  January 20, 2014