Credit Suisse

Monte Carlo Frameworks in C++

This is a project that I am working on with Dr. Kienitz. One of the conclusions that we must draw is that C++ is the only language that is flexible enough for the problems we are working on. Some of the reasons are:

- support for OO and generic programming (in particular C++ templates are extremely flexible ... someone mentioned Turing complete)

- direct discovery of patterns that allow developers to plug in their own models, payoffs etc.

- Performance

- The abiliy to migrate the framework to MPI and OpenMP environments, thus allowing us to run parts of the application concurrently (for example, calculating option price and sensitivities)

- We now have some maintainable libraries that can be used

C# is a good language but it is more suitable for desk top environments. The combination of C++/CLI and C# in .NET seems like a good idea; one language for I/O, GUI and so on, and the other one for distributed number crunching. C++/CLI is like C++ but has a number of extensions that take some geting use to.

Edit: had some feedback on this blog; for the record let me say that I know C# well so my personal conclusions are not based on a one-sided analysis or ignorance of C#.