Re: compiler avec ICC
Revolver Onslaught wrote:
Bonjour à tous,
J'ai découvert ICC, le compilateur C++ d'Intel. D'après Google, il
semble plus performant que GCC.
Les choses bougent beaucoup de part et d'autre dans les performances des
compilateurs et des processeurs. Attention à bien comparer des versions
récentes (GCC progresse pas mal, notamment avec GCC 4.3)
Sur de grosses applications qui ne sont pas extremement concentrées sur
quelques routines critiques (càd la majorité des applications pour
lesquelles plus des 3/4 du temps sont passés dans moins d'un 1/4 du
code, mais qui n'ont pas 1% du code où passe 95% du temps) :
* les choix algorithmiques sont déterminants.
* le choix des options d'optimisation (il y a autre chose que -O1 -O2 ou
-O3, tous les -f... de gcc par exemple) est peut-être plus important que
le choix du compilateur
* il faut comparer les compilateurs, mais généralement (il y a
évidemment des exceptions) les performances varieront peu (moins de 10%,
et souvent moins de 3%) d'un compilateur à un autre
* le noyau n'est pas déterminant, tout simplement parce que la plupart
des applications passent plus de 90% du temps en dehors du noyau, donc
meme en l'accélérant infiniment (c'est évidemment impossible) on
gagnerait tout au plus 10%
Il y a bien sûr des exceptions, et notamment:
* les gros codes de calcul scientifique, notamment par éléments finis ou
matriciels (mais c'est moins vrai pour des codes probabilistes, style
Monte Carlo)
* certains traitements audio/video ou photo
A mon avis, recompiler le noyau avec icc (ou même recompiler le noyau
juste par souci de performances) n'est pas très utile: la plupart des
applications passent leur temps hors du noyau.
Quelles est donc ton système, tes applications, tes besoins qui te font
vouloir recompiler le noyau et des applications par souci de
performance? A priori je suis en pratique sceptique (la recompilation
finement optimisée te prendra ton temps, et tu risques de gagner moins
de 4% en performance).
N'oublies pas que régler finement les paramètres d'optimisation (je
repète, il y a bien autre chose que -O3!) est en pratique délicat. Voir
http://unidapt.org/publications.html
http://www.fursin.net/research_publ.html http://www.milepost.eu/
Et à mon avis, ca ne sert pas à grand chose de choisir des optimisations fines dans le noyau (c'est difficile, et certaines optimisations peuvent y introduire des bogues) et surtout, puisque ton système passe la plus grande partie de son temps dans du code applicatif, ça ne sert pas à grand chose.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
membre de l'APRIL "promouvoir et défendre le logiciel libre"
Rejoignez maitenant pplus de 3500 adhérents http://www.april.org
Reply to: