On lazy evaluation as a tool to optimize the efficiency of large scale numerical simulations in Python

Gross, L., Amirbekyan, A., Fenwick, J., Gao, L., Mohajeri, A. and Muhlhaus, H. (2010). On lazy evaluation as a tool to optimize the efficiency of large scale numerical simulations in Python. In: Michael Blackman, ICCS 2010: Proceedings of the International Conference on Computational Science. 10th International Conference on Computational Science, ICCS 2010, Amsterdam, Netherlands, (2145-2153). 31 May-2 June 2010. doi:10.1016/j.procs.2010.04.240


 
Related Publications and Datasets
 
Author Gross, L.
Amirbekyan, A.
Fenwick, J.
Gao, L.
Mohajeri, A.
Muhlhaus, H.
Title of paper On lazy evaluation as a tool to optimize the efficiency of large scale numerical simulations in Python
Conference name 10th International Conference on Computational Science, ICCS 2010
Conference location Amsterdam, Netherlands
Conference dates 31 May-2 June 2010
Proceedings title ICCS 2010: Proceedings of the International Conference on Computational Science   Check publisher's open access policy
Journal name Procedia Computer Science   Check publisher's open access policy
Place of Publication Amsterdam, Netherlands
Publisher Elsevier
Publication Year 2010
Sub-type Fully published paper
DOI 10.1016/j.procs.2010.04.240
ISBN *****************
ISSN 1877-0509
Editor Michael Blackman
Volume 1
Issue 1
Start page 2145
End page 2153
Total pages 9
Language eng
Formatted Abstract/Summary
Scientists working on mathematical models want to concentrate on the design of models. They pay little attention to numerical methods such as the finite element method (FEM), their implementation and parallelization. The escript module in python provides an environment in which scientists can define new models using a language of partial differential equation (PDE) and spatial functions which is natural for the formulation of continuous models. This approach defines a high level of abstraction from the underlying data structures and frees modelers from issues of optimized implementation and parallelization. In its current implementation escript evaluates expressions which define PDE coefficients immediately for all nodes or elements of an FEM mesh. In the paper we will demonstrate that for complex rheologies such as the Drucker–Prager plasticity model, the memory requirements for this strategy are the limiting factor for scaling up the mesh size. The python module is backed by an escript C++ library where the processing is performed. We will discuss an new extension to the PDE coefficient handling provided by this C++ library which uses a lazy evaluation technique and will demonstrate the efficiency of this new extension in terms of compute time and memory usage for a practical engineering application, namely the simulation of elastic-plastic, saturated porous media.
Subjects E1
780101 Mathematical sciences
780104 Earth sciences
970104 Expanding Knowledge in the Earth Sciences
080308 Programming Languages
080205 Numerical Computation
080204 Mathematical Software
040499 Geophysics not elsewhere classified
Keyword Python programming language
Partial Differential Equations (PDEs)
Finite Element Methods (fems)
Q-Index Code E1
Q-Index Status Confirmed Code
Institutional Status UQ
Additional Notes Published May 2010.

 
Versions
Version Filter Type
Citation counts: TR Web of Science Citation Count  Cited 0 times in Thomson Reuters Web of Science Article
Scopus Citation Count Cited 0 times in Scopus Article
Google Scholar Search Google Scholar
Created: Sat, 06 Mar 2010, 01:28:25 EST by Lutz Gross on behalf of Earth Systems Science Computational Centre