PyConFr 2014

Lyon, October 25-28

PyConFR 2014

samedi 16:40:00–17:00:00

[E/R] Quelques idées d'optimisation d'un code numérique écrit en Python

Loic Gouarin

Audience level:
Experienced

Description

NumPy est le module incontournable lorsque l'on veut faire un code numérique en utilisant Python. Néanmoins, pour avoir des codes performants, il est souvent nécessaire de repasser à des langages bas niveau. Nous présenterons ici différents outils Python qui le font à notre place et nous permettent d'avoir des gains significatifs sur les temps de calcul.

Abstract

Le langage Python est maintenant largement utilisé au sein de la communauté du calcul numérique en s'appuyant fortement sur le module NumPy qui permet de gérer les tableaux. Bien que ce module soit optimisé pour les opérations élémentaires (addition de deux vecteurs, multiplication de matrices, ...), il est souvent nécessaire d'optimiser certaines parties du code avec d'autres outils pour obtenir des performances proches d'un langage bas niveau (C ou Fortran). Une large palette est offerte aux développeurs pour optimiser leur code: Cython, Numba, PyPy, Pythran, Parakeet, ... La plupart de ces outils utilise de la compilation "just in time" permettant de générer du code optimisé à l'exécution du programme. Leur syntaxe est très simple et ils peuvent être utilisés sans connaissances particulières. Lors de cette présentation, nous aborderons quelques uns de ces outils ainsi que leurs utilisations sur des cas simples. Nous ferons des comparaisons de performances entre ces outils et un code écrit en langage bas niveau.

Voir le support de présentation

Sponsors