Quel meilleur compilateur pour RedHat 9 ?

philippe -  
 Philipe -
Bonjour

Suis sous RedHat9
et ai des applis scientifiques nécessitant de la haute perf au niveau exécution.

Quel est le meilleur compilateur (f77 et cc) payant ou non ?

On m'a dit que g77 c'était pas terrible
On m'a parlé de xlf9, ifort, pgf90 et vous ?

Merci
A voir également:

1 réponse

kmf
 
Salut Philippe,

je ne connais pas xlf9, pgf90, ifort mais je peux te recommander les compilateurs d'Intel (la boite qui produit les processeurs, ils font aussi de compilateurs). Selon mon experience il est tres fort par rapport a gcc a condition d'avoir un vrai procesesseur Intel (Pentium ... ou Itanium). Pour AMD 32 bits il marche aussi mais seulement en mode compatible 686 ce qui baisse deja un peu la performence. Pour un usage non-commerciale sous Linux le compilateur d'intel est meme gratuit mais ce n'est pas un logiciel libre. On peut telecharger un rpm pour le compilateur C,C++ chez intel ici:
http://www.intel.com/software/products/compilers/clin/index.htm
et un autre pour le compilateur Fortan 77 et aussi Fortan 90 (!!!) ici:
http://www.intel.com/software/products/compilers/flin/index.htm
Pour les deux il faut demander sur une interface page web une licence qui est gratuite (pour une utilisation non-commerciale) mais ca necessite de remplire queques trucs comme adresse etc.
Apres on recevra un petit fichier cle necessaire pour faire tourner le compilateur. Pour la version Fortran on a besoin une autre cle, donc deux demandes si on veut C++ et Fortran.
Il y a aussi de bibliotheques (MATH Kernel Library) fortement optimise:
http://www.intel.com/software/products/index.htm?iid=Corporate+Header_prod_softwr&
mais ce truc est vraiement payant.

Je ne peux pas comparer intel avec les autres que tu mentionnes mais je suppose ca doit etre comparable ou meme mieux pour intel. En theorie l'intel est 30 % plus rapide que gcc mais a condition que le code C++ ou Fortran est deja fortement optimise aux niveau de la source. Si on n'optimise pas le code soi meme avant la compilation j'ai fait l'experience qu'on peut avoir de facteurs 4 voire plus entre intel et gcc (en faveur d'intel bien-sur). Bref intel est mieux capable d'optimiser tout seul pendant la compilation que gcc. Pour gcc il faut soi meme tres bien retravailler le code et seulement dans ce cas le gcc est "seulement" 30 % moins rapide que intel. Si on ne retravaille pas le code c'est plutot de facteurs ~ 2-4.
Pour bien optimiser il faut utiliser les options (pour "compilation" et "link").
-O3 (comme en gcc)
-ipo (inlining entre different fichiers, c.-a-d. le compilateurs remplace tout seul des appelles vers de fonctions par de bout de code)
-xW ou encore mieux -xN (pour pentium 4, dans cas le programe ne tourne par sur pentium 3 ou inferieures)

C'est sourtout l'option "-ipo" qui rapporte, celle pour le pentium 4 rapporte encore 10-15 %. Je crois ca utilise le multithreading du processeur (si possible) meme si le noyau Linux ne tourne pas en multi-processeurs. Pendant la compilation il affiche qu'il vectorise de boucles.
0
Philipe
 
Merci pour tes infos très précieuses et détaillées et ta remarque sur Intel. C'est clair qu'il vaut mieux du natif que du générique

Je vais essayer de trouver des infos sur les aurtes compil sur le net

Je les ajouterai à ce post
0