2013
DOI: 10.25080/majora-8b375195-008
|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...
2
1

Citation Types

0
8
0

Year Published

2014
2014
2021
2021

Publication Types

Select...
5
2

Relationship

2
5

Authors

Journals

citations
Cited by 9 publications
(8 citation statements)
references
References 0 publications
0
8
0
Order By: Relevance
“…Libraries in the scientific Python ecosystem provide fast implementations of most important algorithms. Where extreme optimization is warranted, compiled languages can be used, such as Cython 43 , Numba 44 and Pythran 45 ; these languages extend Python and transparently accelerate bottlenecks. Owing to NumPy's simple memory model, it is easy to write low-level, hand-optimized code, usually in C or Fortran, to manipulate NumPy arrays and pass them back to Python.…”
Section: Discussionmentioning
confidence: 99%
“…Libraries in the scientific Python ecosystem provide fast implementations of most important algorithms. Where extreme optimization is warranted, compiled languages can be used, such as Cython 43 , Numba 44 and Pythran 45 ; these languages extend Python and transparently accelerate bottlenecks. Owing to NumPy's simple memory model, it is easy to write low-level, hand-optimized code, usually in C or Fortran, to manipulate NumPy arrays and pass them back to Python.…”
Section: Discussionmentioning
confidence: 99%
“…Instead of define static types explicitly, Shed [9] uses type inference techniques to determine the implicit types used in a Python program and translate typed Python programs into optimized C++. Pythran [10] further enables static optimization of scientific Python programs by using explicit thread-level parallelism through OpenMP annotations, false variable polymorphism pruning, and automatic vector instruction generation such as AVX or SSE. With developing of deep learning, supervised [11] and unsupervised [12] methods are also proposed to translate programming languages.…”
Section: Introductionmentioning
confidence: 99%
“…Following its success, many other projects accelerate Python, either through bindings to existing C libraries such as CuPy [4], PyOpenCL [5], and PyKokkos [6] or by compiling a subset of Python to native code. Examples of the latter approach are Numba [7], Pythran [8], or Data-Centric Python [9].…”
Section: Introductionmentioning
confidence: 99%