FinanceBench is aimed at those who work with financial code to see how certain code paths can be targeted for accelerators. We utilized the original QuantLib software framework and samples to port four existing applications for quantitative finance.



Black-Sholes-Merton Process with Analytic European Option engine


QMC (Sobol) Monte-Carlo method (Equity Option Example)


Fixed-rate bond with flat forward curve


Securities repurchase agreement

  • C
  • CUDA
  • OpenCL
  • HMPP
  • OpenACC
  • OpenMP

Code Modifications

The original QuantLib samples were written in C++. QuantLib is a C++ library. Unfortunately, languages like OpenCL, CUDA, and OpenACC cannot directly operate on C++ data structures, and virtual function calls are not possible. Because of this problem, all of the existing code had to be "flattened" to C code. We used a debugger is used to step through the code paths of each application and see what lines of QuantLib code are executed for each application, and manually flattened all of the QuantLib code.



Related Research

Any work that uses these codes should cite the following paper:

Grauer-Gray S, Killian W, Searles R, Cavazos J, "Accelerating Financial Applications on the GPU" in Proceedings of the 6th Workshop on General Purpose Processor Using Graphics Processing Units, GPGPU-6, (New York, NY, USA), pp. 127–136, ACM, 2013.



This work was funded in part by JPMorgan Chase as part of the Global Enterprise Technology (GET) Collaboration.

© 2012-2014 University of Delaware