Pricing and risk calculation for complex financial products is one of today's most common, commercial high performance computing (HPC) applications, with banks typically employing thousands of CPU cores for overnight calculations.
Perceived wisdom is to use low level languages such as C or CUDA to encode HPC calculations, allowing fine tuning of algorithms and optimisation to specific machine architecture. The FPF team at Barclays have taken a very different route, defining payoffs in a high-level DSL, enabling the generation of pricing instructions for multiple platforms and performing a variety of analysis.
Talk objectives: In this talk, the speakers will argue that the key to success in this approach is to restrict the power of the DSL. They will introduce the problem domain; present examples of payoffs in the DSL, FPF Lucid; explain what power in languages means; describe how Lucid is restricted; and quantify some of the benefits achieved from the project.
Target audience: An experience report Software developers
Peter has been developing software for over 30 years. As an active member of the OO community, he was a regular speaker at the OT and SPA conferences. In 1999, he co-founded Connextra, pioneering many of today's main-stream Agile practices. For ten years, Peter's primary interest has been functional programming, and he now leads the FPF team at Barclays, developing languages for modelling Structured Products, and tools for pricing and managing trades, in Haskell.