Tu veux dire que les trois liens Wikipedia n'aident pas ?
Si je te dis que numpy crée un tableau temporaire par opération, tu imagines le surcoût en:
allocation mémoire / parcours de tableau (prix des accès mémoires)
coût de contrôle (prix de l'itération)
en plus la vectorisation (i.e. faire 4 sommes en une opération vectorielle) n'aide pas car on se paie 1 chargement mémoire, 1 opération, 1 déchargement mémoire.
Pythran fusionne les boucles, ce qui augmente l'intensité de calcul (on charge une fois les opérandes, on calcule beaucoup dessus, on décharge le résultat) et permet d'avoir un gros bénéfice lié à la vectorisation.
La parallélisation de la boucle englobante vient ajouter au tout.
Pas de comparaison tu dis ? Et la comparaison avec numexpr, hein ? Pour comparer au C++, forcément si le dev connait et applique les techniques sus-citées, il ira au moins aussi vite. Mais ça lui prendra pas trois lignes de code… Par contre une comparaison à numpypy et numba s'impose en effet :-)
[^] # Re: Toujours intéressant
Posté par serge_sans_paille (site web personnel) . En réponse au journal avec Pythran, Numpy file comme le vent. Évalué à 6.
Tu veux dire que les trois liens Wikipedia n'aident pas ?
Si je te dis que numpy crée un tableau temporaire par opération, tu imagines le surcoût en:
en plus la vectorisation (i.e. faire 4 sommes en une opération vectorielle) n'aide pas car on se paie 1 chargement mémoire, 1 opération, 1 déchargement mémoire.
Pythran fusionne les boucles, ce qui augmente l'intensité de calcul (on charge une fois les opérandes, on calcule beaucoup dessus, on décharge le résultat) et permet d'avoir un gros bénéfice lié à la vectorisation.
La parallélisation de la boucle englobante vient ajouter au tout.
Pas de comparaison tu dis ? Et la comparaison avec numexpr, hein ? Pour comparer au C++, forcément si le dev connait et applique les techniques sus-citées, il ira au moins aussi vite. Mais ça lui prendra pas trois lignes de code… Par contre une comparaison à numpypy et numba s'impose en effet :-)
voili voilou, j'espère avoir mieux argumenté là !