Altivec, meilleur atout du G5 pour les calculs partagés

Mobilité

Pour Peter Hauschildt, de l’Observatoire de Hambourg, le G5 et l’Opteron sont les puces offrant le meilleur rapport performances/prix dans le domaine des calculs partagés.

Les scientifiques qui utilisent Phoenix (voir édition du13 avril 2004) – un programme de calcul parmi les plus complexes à faire tourner, qui nécessite peu de mémoire à l’exécution mais beaucoup d’entrées/sorties – sont catégoriques : grâce à Altivec, le G5 tient le haut du pavé parmi les processeurs comparés (Athlon 64, G4, Power4, Power3, Pentium 4 et Itanium2). Peter Hauschildt, astrophysicien à l’Université de Hambourg en Allemagne, a voulu évaluer les performances de son code spécifique en comparant non pas les seuls processeurs, mais plutôt l’ensemble processeur, coprocesseur, mémoire, accès disques, système d’exploitation et compilateur. Des résultats surprenants.

Vnunet : Dans quel but avez-vous réalisé ces comparaisons ?

Peter Hauschildt : Ces benchmarks faisaient partie du processus d’acquisition d’un cluster pour l’Observatoire de l’Université. Nous voulions réaliser la meilleure acquisition possible pour le budget dont nous disposions. Le code Phoenix est extrêmement complexe et les comparatifs standardisés ne reflètent pas toutes les réactions de performances de notre code.

Vnunet : Avez-vous optimisé votre code en fonction des processeurs ?

P. H. : Nous l’avons fait pour le G5 afin d’identifier les parties les plus consommatrices de puissance de notre code. Les calculs exponentiels, par exemple, ont été modifiés pour utiliser les capacités de vectorisation du processeur.

Vnunet : Qu’est-ce qui fait la différence entre les différents processeurs dans votre cas ?

P. H. : Les compilateurs. La puissance brute d’un processeur n’apporte rien. Sur le G5 par exemple, les compilateurs xl d’IBM [xlf95 et VAC, Ndlr] pour Mac OS X produisent du code 60 % plus rapidement que tout autre compilateur pour Mac OS X que j’aie pu essayer. De plus, ils produisent du code « correct ». Sur Itanium2, les performances sont décevantes. Sur les Alpha de DEC, le CPU est rapide mais le compilateur navrant…

Vnunet : Quels ont été les résultats de vos tests ?

P. H. : L’Athlon 64 et le G5 sont les machines les plus rapides. Dans beaucoup de cas, le G5 arrive même en tête grâce à l’utilisation d’AltiVec. Celui-ci peut offrir de nettes améliorations de performances avec seulement un tout petit peu de code. Les Athlon 64 et les puces Intel sont plus rapides sur les fonctions exponentielles. Les Power3 et Power4 viennent loin derrière, bien qu’ils soient cinq fois plus rapides sur les entrées/sorties. Quant aux performances de l’Itanium2, elles relèvent pour moi du pur mystère. Les tests sont extrêmement bons, mais quand il s’agit de faire tourner le code Phoenix, les performances s’écroulent. Certains tests ont tout bonnement fait planter le processeur. En ce qui concerne le G5, il semble que les bibliothèques soient encore loin de leur performance maximale pour notre code, en raison du code AltiVec généré automatiquement qui semble parfois trop brut. Nos Opteron, en revanche, produisent généralement de très bonnes performances en utilisant seulement les optimisations du compilateur.

Vnunet : Avez-vous des voeux à exprimer pour les prochaines générations de puces d’IBM ?

P. H. : Nous espérons des processeurs avec plus de bande passante pour la mémoire, des unités de calculs Altivec améliorées (à double précision) et le support de la fonction exponentielle exp().