URL: https://linuxfr.org/users/serge_ss_paille/journaux/pythran-0-8-5-de-l-interet-des-compilateurs Title: Pythran 0.8.5 - de l'intérêt des compilateurs Authors: serge_sans_paille Date: 2018年04月24日T07:50:51+02:00 License: CC By-SA Tags: python et pythran Score: 35 Demat' Nal [Pythran](https://github.com/serge-sans-paille/pythran), compilateur pour un sous ensemble du langage Python dédié au calcul scientifique, en est à sa version *0.8.5*. En guise d'exemple, il permet de transformer un code source comme celui là : ```python #pythran export weights(uint8[:,:]) #runas import numpy as np; x = np.arange(10, dtype=np.uint8).reshape(5,2); weights(x) import numpy as np def weights(input_data, threshold=0.3): n_seq, length = input_data.shape weights = np.zeros(n_seq, dtype=np.float32) for i in range(n_seq): vector = input_data[i, None, :] count_matches = np.sum(vector == input_data, axis=1) over_threshold = count_matches> (threshold * length) total = np.sum(over_threshold) weights[i] = 1 / total return weights ``` En un module natif, qui ne fait plus d'appel au Runtime Python si ce n'est aux frontières (allez, [petit placement de produit à ce sujet](https://www.computer.org/csdl/mags/cs/2018/02/mcs2018020083.pdf) ) Je ne vais pas étaler ici la liste des changements, ce serait redondant avec le [Changelog](http://pythran.readthedocs.io/en/latest/Changelog.html). Il n'est pas encore disponible dans les bonnes librairies (mais pas chez les mauvaises non plus !), mais à défaut vous pouvez vous rabattre sur : - PyPI : https://pypi.org/project/pythran/ - GitHub : https://github.com/serge-sans-paille/pythran/tree/0.8.5 - Anaconda : https://anaconda.org/serge-sans-paille/pythran Après ce petit volet publicitaire, un peu de contenu plus intéressant. Déjà c'est la première version où je reçois autant de contribution extérieures. Un gros Merci à Jean Laroche, Pierre Augier et Yann Diorcet pour leurs contributions ! Pas mal de retours de bugs aussi, ce qui prouve l'existence d'utilisateurs :-) Et pour se raccrocher au titre, sans aucun effort pour l'utilisateur, un code complexe comme [grayscott](https://github.com/serge-sans-paille/numpy-benchmarks/blob/master/benchmarks/grayscott.py) s'exécute maintenant 15% plus rapidement que quand il était compilé avec la version 0.8.4 de Pythran. Ça me permet de conclure ce journal sur une notre très enthousiasmante pour les utilisateurs : parfois, il suffit d'exprimer son code sans penser aux optimisations, et avec le temps le compilateur le rendra meilleur. Pythran, un compilateur de garde!

AltStyle によって変換されたページ (->オリジナル) /