Simplifying Parallelization of Scientific Codes by a Function-Centric Approach in Python
Jon K. Nilsen, Xing Cai, Bjorn Hoyland, Hans Petter Langtangen

TL;DR
This paper presents a function-centric approach to parallelizing scientific codes in Python, enabling easy reuse of existing serial codes with minimal effort and clear, compact parallel scripts.
Contribution
It introduces a flexible, template-based method for parallelizing scientific software using Python as a thin communication layer, simplifying the process significantly.
Findings
Applicable to various scientific applications in natural and social sciences
Reduces programming effort for parallelization
Produces clean, compact parallel scripts
Abstract
The purpose of this paper is to show how existing scientific software can be parallelized using a separate thin layer of Python code where all parallel communication is implemented. We provide specific examples on such layers of code, and these examples may act as templates for parallelizing a wide set of serial scientific codes. The use of Python for parallelization is motivated by the fact that the language is well suited for reusing existing serial codes programmed in other languages. The extreme flexibility of Python with regard to handling functions makes it very easy to wrap up decomposed computational tasks of a serial scientific application as Python functions. Many parallelization-specific components can be implemented as generic Python functions, which may take as input those functions that perform concrete computational tasks. The overall programming effort needed by this…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
