Abstract
We address the tension between software generality and performance in the domain of simulations based on Monte-Carlo methods. We simultaneously achieve generality and high performance by a novel development methodology and software architecture centred around the concept of a specialising simulator generator. Our approach combines and extends methods from functional programming, generative programming, partial evaluation, and runtime code generation. We also show how to generate parallelised simulators.
We evaluated our approach by implementing a simulator for advanced forms of polymerisation kinetics. We achieved 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.
This work was funded by the UNSW FRGP High Performance Parallel Computing for Complex Polymer Architecture Design.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice Hall International, Englewood Cliffs (1993)
Czarnecki, K., Eisenecker, U.W.: Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley (2000)
Veldhuizen, T.L., Gannon, D.: Active libraries: Rethinking the roles of compilers and libraries. In: Proc. of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing (OO 1998) (1998)
Frigo, M., Johnson, S.G.: The design and implementation of FFTW3. Proceedings of the IEEE 93(2), 216–231 (2005)
Veldhuizen, T.L., Gannon, D.: Active libraries: Rethinking the roles of compilers and libraries. In: Proc. of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing (OO 1998), SIAM Press (1998)
Drache, M., Schmidt-Naake, G., Buback, M., Vana, P.: Modeling RAFT polymerization kinetics via Monte Carlo methods: cumyl dithiobenzoate mediated methyl acrylate polymerization. Polymer (2004)
Tobita, H., Yanase, F.: Monte Carlo simulation of controlled/living radical polymerization in emulsified systems. Macromolecular Theory and Simulation (2007)
Chaffey-Millar, H., Stewart, D.B., Chakravarty, M., Keller, G., Barner-Kowollik, C.: A parallelised high performance Monte Carlo simulation approach for complex polimerization kinetics. Macromolecular Theory and Simulations 16(6), 575–592 (2007)
Robert, C., Casella, G.: Monte Carlo Statistical Methods. Springer, Heidelberg (2004)
Chaffey-Millar, H., Busch, M., Davis, T.P., Stenzel, M.H., Barner-Kowollik, C.: Advanced computational strategies for modelling the evolution of full molecular weight distributions formed during multiarmed (star) polymerisations 14 (2005)
Pang, A., Stewart, D., Seefried, S., Chakravarty, M.M.T.: Plugging Haskell in. In: Proc. of the ACM SIGPLAN Workshop on Haskell, pp. 10–21. ACM Press, New York (2004)
Wulkow, M.: Predici (2007), http://www.cit-wulkow.de/tbapred.htm
Wulkow, M.: The simulation of molecular weight distributions in polyreaction kinetics by discrete galerkin methods. Macromolecular Theory Simulation 5 (1996)
Whaley, R.C., Petitet, A., Dongarra, J.J.: Automated empirical optimization of software and the ATLAS project. Parallel Computing 27(1–2), 3–35 (2001)
Glenstrup, A.J., H.M., Secher, J.P.: C-Mix – specialization of C programs. In: Partial Evaluation: Practice and Theory (1999)
Consel, C., Hornof, L., Lawall, J.L., Marlet, R., Muller, G., Noy, J., Thibault, S., Volanschi, E.N.: Tempo: Specializing systems applications and beyond. ACM Computing Surveys 30(3) (September 1998)
Veldhuizen, T.L.: C++ templates as partial evaluation. Partial Evaluation and Semantic-Based Program Manipulation, 13–18 (1999)
Lu, J., Zhang, H., Yang, Y.: Monte carlo simulation of kinetics and chain-length distribution in radical polymerization. Macromolecular Theory and Simulation 2, 747–760 (1993)
He, J., Zhang, H., Yang, Y.: Monte carlo simulation of chain length distribution in radical polymerization with transfer reaction. Macromolecular Theory and Simulation 4, 811–819 (1995)
Prescott, S.W.: Chain-length dependence in living/controlled free-radical polymerizations: Physical manifestation and Monte Carlo simulation of reversible transfer agents. Macromolecules 36, 9608–9621 (2003)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Keller, G., Chaffey-Millar, H., Chakravarty, M.M.T., Stewart, D., Barner-Kowollik, C. (2007). Specialising Simulator Generators for High-Performance Monte-Carlo Methods. In: Hudak, P., Warren, D.S. (eds) Practical Aspects of Declarative Languages. PADL 2008. Lecture Notes in Computer Science, vol 4902. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77442-6_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-77442-6_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77441-9
Online ISBN: 978-3-540-77442-6
eBook Packages: Computer ScienceComputer Science (R0)