[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: