Le résultat va-t-il vous faire changer de langage ?
Une équipe universitaire a sorti une étude comparant différents langages pour le calcul intensif. L'étude se base sur un modèle économique mais peut être appliqué à d'autres domaines.
Ils ont comparé
- C++11
- Fortran 2008
- Java
- Julia
- Python
- MATLAB
- Mathematica
- R
Afin de na pas biaiser les résultats, ils n'ont en général pas cherché à tirer profit des particularités de chaque langage. L'étude ne commente pas la difficulté à porter l'algorithme dans un langage donné.
Les résultats principaux sont :
- Le C++ et Fortran tiennent toujours les meilleures performances
- L'avantage du C++ sur le Fortran n'est que de 5-7%
- Julia avec son compilateur JIT donne un exécutable qui tourne en moyenne 2.7 fois plus lentement que le meilleur programme C++
- L’implémentation Pypy donne un programme 44 fois plus lent que celui en C++. Quant a l’Interpréteur CPython, la facteur oscille entre 155 et 269
- Utiliser Numba (un compilateur JIT Python) , demande de revoir un peu le code mais donne des performances très proches du C++ (1.6 plus lent en moyenne)
- MATLAB est entre 9 et 11 fois plus lent que le C++. Mais combiné avec des fichiers Mex, la différence tombe entre 1.24 et 1.64
- R est entre 500 et 700 fois plus lent que le C++. Compiler le code augmente par deux la performance
- Mathematica donne de bonnes performances (4 fois lent que le C++) mais au prix d'un grand effort de ré-écriture de code pour tirer parti des optimisations du langage,
Les résultats détaillés sont ici et le code est accessible sur Github
Cette étude va-t-elle vous faire changer de langage pour vos applications lourdes en calcul ?