Writing a Custom RPython-based DSL Interpreter to Solve PDEs: Experience and Performance

08/01/2013 - 4:15am to 4:35am
ML - Main Seminar Room
Sean Fisk


A common way to solve partial differential equations is through the finite difference method, which is often based on an arrangement of points called a stencil. This project presents an interpreter for a simple domain-specific programming language for solving partial differential equations using stencils. The interpreter is implemented in RPython, a restricted subset of Python specifically designed for writing interpreters for dynamic languages. A performance comparison of the interpreter to other finite difference implementations is explored, including serial implementations in CPython, PyPy, C++, and Fortran, and a parallel message-passing implementation in Python. The process of writing an interpreter using good software development practices such as test-driven development is also discussed.