Multilevel Monte Carlo software

This page provides software being developed in a MLMC software project for MLMC computations in a variety of languages.

This software differs from my previous MLMC software in separating the computations from the plotting of the results. Each application code has two parts, a high-level part which calls "mlmc_test" to perform the MLMC tests, using the routine "mlmc", and a low-level part which is called by both "mlmc_test" and "mlmc" to compute the MLMC differences for one particular level of correction.

The application codes produce one or more output text files. The MATLAB routine "mlmc_plot" can then be used to generate the standard set of figures which I use in most of my papers.


Languages


MATLAB

Common routines used by all applications:
opre -- financial options based on scalar geometric Brownian motion and Heston models, similar to my original 2008 Operations Research paper, using an Euler-Maruyama discretisation
mcqmc06 -- financial options based on scalar geometric Brownian motion, similar to my MCQMC06 paper, using a Milstein discretisation
basket -- basket options based on 5 underlying assets, similar to my 2009 Winter Simulation Conference paper, using a Milstein discretisation
reflected -- 1D reflected diffusions, giving results for a conference presentation at SciCADE 2015


C/C++

Common routines used by all applications:
mcqmc06 -- financial options based on scalar geometric Brownian motion, similar to MCQMC06 paper, using a Milstein discretisation and the default C++11 random number generator
mcqmc06_omp -- OpenMP version of mcqmc06 application using Intel's MKL random number generators

Python

Please follow this link.


R

Please follow this link.


Licensing and acknowledgements

This software is freely available to all under a GPL license -- anyone requiring a more permissive license for commercial purposes should contact me.

The software is based on the research reported in the papers listed here. If you find it helpful in your research, the papers there can be cited in any publications. I would also be interested to hear about it, particularly if it is used for novel applications.

The underlying research has been supported by