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.

Benchmarks

Black-Sholes

Black-Sholes-Merton Process with Analytic European Option engine

Monte-Carlo

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

Bonds

Fixed-rate bond with flat forward curve

Repo

Securities repurchase agreement

Languages
  • 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.

Download

Contributors

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.

Individuals

Acknowledgements

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

© 2012-2014 University of Delaware