MCSL Monte Carlo simulation language Diego Garcia Eita Shuto Yunling Wang Chong Zhai
Outline of Presentation Introduction of language Language tutorial and examples Architectural design and implementation Summary and lessons learned
Monte Carlo methods a class of computational algorithms that rely on repeated random sampling to compute their results. Why interested with it? widely used good performance possibly the only efficient approach
Applications Physics – high energy particle physics, quantum many-body problem, transportation theory Mathematics – Integration, Optimization, Inverse problems, Computational mathematics Computer science – Las Vegas algorithm, LURCH, Computer Go, General Game Playing Finance – Option, instrument, portfolio or investment
Algorithm of MCSL Generation particular distributed psedu- random numbers (or low discrepancy sequence) Evaluate the function by sampling with these numbers Aggregate results! (weight might be counted, variational method or conditional acceptance might be considered)
Advantages Fast Random number algorithm (with good performance also) Other than iteration, consider all samples as a single vector Built-in Function to simplify aggregate process with different conditioning.
Example One Calculation of “π” = …
Sample code for Calculate Pi
Example 2-Pollard's rho algorithm
Sample code for Factorization
Language Implementation
Architectural Design and Implementation
Testing Cases
Summary and lessons learned We have a language specification and a compiler of Monte Carlo Simulation! It has… Random type and type conversion Useful builtin libraries, such as an iteration function… Teamwork and effective project management SVN (Subversion) on Googlecode Incremental Development Approach Functional Language, Ocaml Tiring work, supporting many data types
Thank You! MCSL Team Columbia University Dec 19th, 2008