A short story of being luckyIn the mid-1990ies time was ripe for developing PC- based software for quantitative finance, and, being lucky, we were asked to develop some convertible bond tools for a London based trading desk. From that point we built the UnRiskVerse. Act 1. Set up and update the foundation: advanced numerical schemes - Pricing and calibration engines are optimized in C++. Critical parts are re-implemented on NVIDIA Tesla GPUs. Act 2. Integration into a mathamatical-programming environment - Derivatives, portfolios, scenarios can be described in functional language. We integrated our C++ kernels into Mathematica. Act 3. Set a distributed computing environment to work - Facing the multi-core revolution we multiplied performance by applying coarse grain symbolic parallelisation techniques. A few lines of code transformed UnRisk into gridUnRisk. Act 3a. Drive CUDA over the Grid Act 4. Set up application data base management - UnRisk’s I/O relations, and control objects are represented in MS SQL Server. To access the database programmatically Java was the natural choice. Act 5. Build a web connection layer - The UnRisk interaction patterns, implemented as a set of Java Server Pages, are part of a Java implementation wrapped up as a Servelet web application. Act 6. Tie everything together - Web browser + UnRisk Servelet + database - UnRisk Adapter + UnRisk Service + gridUnRisk + numerical engines interact, using a mix of communication protocols. Act 7. Make it scalable - Scalability is outsourced to license management and business modelling.
|