Performance and Productivity of Parallel Python Programming: A study with a CFD Test Case

Achim Basermann, Melven Rohrig-Zollner, Joachim Illmer
German Aerospace Center (DLR), Simulation and Software Technology, Linder Hohe, Cologne, Germany
5th Workshop on Python for High-Performance and Scientific Computing (PyHPC ’15), 2015


   title={Performance and productivity of parallel python programming: a study with a CFD test case},

   author={Basermann, Achim and R{"o}hrig-Z{"o}llner, Melven and Illmer, Joachim},

   booktitle={Proceedings of the 5th Workshop on Python for High-Performance and Scientific Computing},





Download Download (PDF)   View View   Source Source   



The programming language Python is widely used to create rapidly compact software. However, compared to low-level programming languages like C or Fortran low performance is preventing its use for HPC applications. Efficient parallel programming of multi-core systems and graphic cards is generally a complex task. Python with add-ons might provide a simple approach to program those systems. This paper evaluates the performance of Python implementations with different libraries and compares it to implementations in C or Fortran. As a test case from the field of computational fluid dynamics (CFD) a part of a rotor simulation code was selected. Fortran versions of this code were available for use on single-core, multi-core and graphic-card systems. For all these computer systems, multiple compact versions of the code were implemented in Python with different libraries. For performance analysis of the rotor simulation kernel, a performance model was developed. This model was then employed to assess the performance reached with the different implementations. Performance tests showed that an implementation with Python syntax is six times slower than Fortran on single-core systems. The performance on multi-core systems and graphic cards is about a tenth of the Fortran implementations. A higher performance was achieved by a hybrid implementation in C and Python using Cython. The latter reached about half of the performance of the Fortran implementation.
Rating: 0.5/5. From 1 vote.
Please wait...

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: