2015
DOI: 10.1088/1749-4680/8/1/014001
|View full text |Cite
|
Sign up to set email alerts
|

Pythran: enabling static optimization of scientific Python programs

Abstract: Pythran is a young open source static compiler that turns modules written in a subset of Python into native ones. Based on the fact that scientific modules do not rely much on the dynamic features of the language, it trades them in favor of powerful, eventually inter procedural, optimizations. These include detection of pure functions, temporary allocation removal, constant folding, Numpy ufunc fusion and parallelization, explicit thread-level parallelism through OpenMP annotations, false variable polymorphism… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
16
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
5
2
1
1

Relationship

2
7

Authors

Journals

citations
Cited by 28 publications
(16 citation statements)
references
References 2 publications
0
16
0
Order By: Relevance
“…To reduce the number of dependencies and overall run time, we re-implemented GaussDCA as a Python package using Pythran (Guelton et al, 2015) resulting in a speedup of a factor of three. Optimization details are in section 2 of the supplementary information.…”
Section: Methodsmentioning
confidence: 99%
“…To reduce the number of dependencies and overall run time, we re-implemented GaussDCA as a Python package using Pythran (Guelton et al, 2015) resulting in a speedup of a factor of three. Optimization details are in section 2 of the supplementary information.…”
Section: Methodsmentioning
confidence: 99%
“…openmp.org/). Pythran not only relies on static typing of variables but also performs various compiler optimizations to produce C++ code which is then compiled into native code (Guelton et al, 2015;Guelton, 2018). Although there are major technical differences between Numba and Pythran, from the point of view of the user, their implementation is quite similar (except for the fact that Pythran requires a separate compilation step).…”
Section: Library Specificationsmentioning
confidence: 99%
“…This is then compiled and linked against the standard Python interpreter, which is also referred to as CPython (as it is mainly written in C) in order to avoid confusion with the Python language itself. Another project with a similar purpose is the Pythran library (https://pythran.readthedocs.io/), which is a compiler to the C++ language (Guelton et al, 2015;Guelton, 2018). The latest contender in this 'high-performance Python' game is the Numba project (Lam et al, 2015).…”
Section: Introductionmentioning
confidence: 99%
“…Pythran [5,6] is also an AOT compiler, but it holds the unique property of turning Python modules into C++11 meta-programs. It does not need any type annotations during translation and keeps the polymorphism of original functions, respecting Python's duck typing.…”
Section: The Pythran Compilermentioning
confidence: 99%