A short story of being lucky

In 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.

unrisk factory cloud2