The aim of this project is to further develop the worlds fastest Monte-Carlo simulator for polymer kinetics (i.e., the formation of polymers from monomers). The simulator, itself written in Haskell, uses a generative approach by compiling a high-level description of a chemical model into highly optimised low-level C code.
This work address the tension between software generality and performance in the domain of simulations based on Monte-Carlo methods. It simultaneously achieve generality and high performance by a novel development methodology and software architecture centred around the concept of a specialising simulator generator. The approach combines and extends methods from functional programming, generative programming, partial evaluation, and runtime code generation. We also generate parallelised simulators.
The simulator so far is for advanced forms of polymerisation kinetics. It achieves unprecedented performance, making Monte-Carlo methods practically useful in an area that was previously dominated by deterministic PDE solvers. This is of high practical relevance, as Monte-Carlo simulations can provide detailed microscopic information that cannot be obtained with deterministic solvers. |