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

Re: compiler avec ICC



2008/12/10 Basile STARYNKEVITCH <basile@starynkevitch.net>:
> 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

L'utilisation de -O3 est à proscrire depuis GCC-4.3 (j'avais trouvé par Google
 à l'époque où j'étais sur Gentoo. Je n'ai plus le lien)

>
> * 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

DAns mon cas, même 3% est toujours intéressant à prendre. ;o)

>
> * 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).

Mon système est un serveur postfix amélioré. Plus clairement, nous disposons
de plusieurs dizaines de serveurs. Nous avons gagné plus de 30 points CPU sur
 un ClamAV compilé avec ICC par rapport à la version compilée avec GCC.
Bien que ClamAV ne soit pas appellé la major partie du temps, ces quelques
points de CPU gagnés ici et là nous amènent à économiser des machines.

>
> 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/

Voir mon opinion sur -O3 plus haut. Je suis d'accord sur les options
de compilations determinantes.

>
> 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.

C'est noté mais je m'attendais à un gain, même lèger.

Merci pour tes réponses.

>
>
> --
> 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: