Compiling python modules to native parallel modules using Pythran and OpenMP annotations - Archive ouverte HAL
Communication Dans Un Congrès Année : 2013

Compiling python modules to native parallel modules using Pythran and OpenMP annotations

Résumé

Abstract-High Performance Computing users traditionally rely on low-level, compiled language such as C or FORTRAN to perform compute-intensive tasks. As a consequence, it is a common situation to have High Performance Computing application written in a high-level language such as Python, calling native routines for compute-intensive tasks. To improve development speed and reduce maintenance costs, using a higher-level language like Python seems attractive. While it is usually associated with low performance, several solutions such as Cython, Numba, Parakeet or Pythran offer to automatically or semi-automatically turn Python functions into native ones. One of the key points required to match the performance of native applications is the ability to write parallel applications. This paper studies the addition of OpenMP directives, a popular model to describe parallelism in C/C++/FORTRAN applications, to Pythran, an automatic compiler from a subset of Python to C++. It shows that scientific Python applications annotated with OpenMP directives can be turned by an automatic compiler into native applications that run within the same order of magnitude than manually-written ones.

Mots clés

Fichier non déposé

Dates et versions

hal-00981526 , version 1 (22-04-2014)

Identifiants

  • HAL Id : hal-00981526 , version 1

Citer

Serge Guelton, Pierrick Brunet, Mehdi Amini. Compiling python modules to native parallel modules using Pythran and OpenMP annotations. PyHPC 20123 - Workshop on Python for High Performance and Scientific Computing, Nov 2013, Denver, United States. ⟨hal-00981526⟩
263 Consultations
0 Téléchargements

Partager

More