ANALYSE 
Sommaire Infrastructure 
Processeurs multicœur : comment les éditeurs de logiciel vont-ils s'adapter ?
Développements, tests, optimisations, licences, compétences : autant de données que les nouveaux processeurs d'AMD et d'Intel viennent chambouler - sans pour autant tout remettre en cause.   (15/09/2005)
  En savoir plus
 Intel / AMD : l'ère du dual core a commencé
Dossier Exploitation informatique
Présentés à l'occasion du deuxième trimestre 2005 successivement par Intel puis AMD, les processeurs à double cœur ou dual core, s'installent petit à petit dans le monde des serveurs d'entreprise.

Avec pour objectif de faciliter le traitement des processus en parallèle (lire l'article du 07/09/2005), ces nouvelles puces impliquent des adaptations plus ou moins profondes chez les éditeurs.

Premier impact chez les clients : la configuration nécessaire pour un logiciel donné reste encore floue. "Nous commençons à recevoir des petits éléments en matière de retour d'expérience sur la configuration nécessaire, notamment du point de vue de la mémoire partagée des processeurs qui varie d'un modèle à l'autre et peut avoir un impact sur les performances des applications. Il est arrivé pour des clients d'avoir quelques surprises", indique Yves Lhérault, directeur technique chez BEA France.

Pour les éditeurs, l'évolution des configurations nécessite alors une batterie de tests supplémentaires pour constituer une grille de référence en matière de matériel bicoeur. De plus, l'augmentation des performances n'est pas systématiquement au rendez-vous, tout dépend des traitements courants réalisés par le logiciel.

Les applications tirant le plus facilement profit de ces nouvelles puces sont celles requérant de nombreux accès aux données tandis qu'une application multipliant les entrées / sorties se montrera plus limitée avec un processeur bi-cœur qu'avec deux processeurs distincts monocoeur.

D'autres applications, non conçues pour traiter différents processus (threads) en parallèle ne tireront aucun gain de cette nouvelle architecture et pourrait même en être légèrement pénalisée.

Le cloisonnement des développements facilite la migration du code
"De notre côté, il n'y a eu que peu d'adaptation à faire entre multiprocesseurs et multicœurs. De plus, nos logiciels se basent sur des composants communs ce qui nous a permis de gagner du temps sur la phase d'optimisation des développements. Enfin, nous supportons le multicœur depuis qu'il existe sur les processeurs RISC d'IBM, ce qui remonte à plus de deux ans", commente Michel Granger, directeur des ventes Lotus Partenaires pour IBM Software.

Lorsque l'exploitation des ressources matérielles a bien été séparée du reste du programme, le logiciel n'est généralement pas influencé par les conséquences d'un processeur à deux cœurs, même s'il convient de s'assurer de son bon fonctionnement.

La tâche la plus problématique incombe cependant aux éditeurs qui travaillent en couche basse, éditeurs de systèmes d'exploitations, de logiciels embarqués ou de compilateurs par exemple.

"L'arrivée des dual core a nécessité une modification de l'ordonnanceur des tâches pour le noyau Linux. Il doit répondre au challenge suivant : équilibrer la charge en fonction des caractéristiques du CPU qu'ils soient hyper-threadés, multi-CPU ou multicœur. Pour compliquer les choses, il existe des plate-formes NUMA où certains CPU ont accès plus rapidement à la mémoire que d'autres", explique Frédéric Lepied, Directeur recherche et développement chez Mandriva.

La diversité des systèmes complexifie l'optimisation
Selon les différents systèmes, l'accès à la mémoire, le cache et le CPU peuvent être ou non partagés, nécessitant une répartition différente des tâches pour une meilleure optimisation.

Sachant qu'un même serveur peut combiner hyperthreading, multi-CPU et bientôt multicœur, le casse tête n'est pas loin. Heureusement, le travail d'optimisation des architectures multi-processeurs a été largement étudié depuis de nombreuses années et fait partie des domaines bien maîtrisés.

Les constructeurs de micro-processeurs ont également participé activement à l'adaptation des différents systèmes. "Nous travaillons en relation étroite avec AMD et Intel. Pour le matériel AMD, nous avons commencé le travail mi-2004 pour sortir notre premier produit compatible Opteron dual core début 2005. Avec Intel, nous y réfléchissons depuis le printemps 2005 et le premier produit compatible avec leurs serveurs dual core est prévu pour le mois d'octobre", ajoute Frédéric Lepied.

Mais le système Linux bénéficie d'un traitement de faveur. Son cœur, optimisé pour les traitements multitâches s'adapte parfaitement aux notions de parallélisme proposées par ces nouvelles architectures. De plus, l'ensemble de la communauté contribue à l'évolution du noyau, mutualisant les ressources des différents éditeurs.

Pour les éditeurs détachés du matériel, la gestion de threads par le système d'exploitation d'une part, et par le compilateur d'autre part, détermineront l'efficacité du programme à être subdivisé en sous-ensembles exécutés en parallèle.

Une part de ce découpage s'effectue aussi de manière transparente par le processeur lui-même de manière à optimiser les performances même pour un serveur exécutant des vieilles versions de logiciels.

Les licences finalement harmonisées vers le bas
Aussi, l'impact du multicœur sur le temps de développement ou les compétences des programmeurs devrait être faible, voire nul. "Les gens qui ont le plus à optimiser leurs codes sont ceux qui connaissent déjà bien le matériel et les systèmes d'exploitation. Cela ne changera pas fondamentalement leurs profils : ceux qui font du Java seront tranquilles en se reposant sur la JVM [NDLR : machine virtuelle java / interpréteur], ceux qui font du C se reposent sur le système d'exploitation", analyse le directeur technique de BEA France.

Les licences logicielles, principal sujet de discorde il y a un an (lire l'article du 20/10/2004), semble aujourd'hui avoir trouvé une réponse unique de la part de l'industrie du logiciel. "Sur des machines Intel, nous n'avons pas des ratios x2 en performances, il ne serait donc pas normal de faire payer x2 au client. Quant aux évolutions futures vers le quadri processeur, je n'ai pas de réponse. La vraie question est de savoir quel sera le mode de facturation le plus adapté à l'entreprise", indique ainsi Michel Granger d'IBM.

  En savoir plus
 Intel / AMD : l'ère du dual core a commencé
Dossier Exploitation informatique
A l'origine, Oracle et IBM étaient favorables à une tarification par cœur présents et non plus au processeur, tandis que BEA prônait une hausse du prix des licences indexée sur l'augmentation des performances, 25% à l'époque.

Depuis, tous excepté Oracle, se sont rangés aux côtés de Microsoft, Novell et Sun en ne facturant qu'un seul processeur pour une puce à deux cœurs, la considérant comme la nouvelle unité de base de l'informatique.

L'avis d'Alexis Moussine Pouchkine (Architecte Java, Sun France)
"Les premières réflexions dans la JVM de codes spécifiques aux multicœurs ont abouti avec Java 5, qui lui-même date d'environ un an, septembre 2004 pour être précis. Ceci dit, c'était seulement des premières traces de code multicœur car les mises à jours trimestrielles de la JVM améliorent régulièrement les performances par une meilleure utilisation des ressources selon le processeur.

Notre position de constructeur informatique fait que nous nous intéressons de très près au matériel. Nous disposons de nombreuses compétences en interne, le travail d'adaptation a donc été réalisé exclusivement chez Sun, sur la base d'informations fournies par Intel et AMD bien entendu. Nos propres processeurs Sparc fonctionnent avec plusieurs cœurs et il a donc fallu adapter la JVM au même moment.

Notre objectif a surtout été que le développeur ait la même expérience entre multiprocesseur et multicœur. C'est de la responsabilité de la JVM d'être une assurance du développeur face au temps qui passe en tirant partie des nouveautés. Avec ce type d'architecture, on voit rapidement la différence entre du bon code et du code peu optimisé car basé sur une approche assez monothreadé.

Avec Java 5.0 apparaît une nouvelle bibliothèque de code multithreadée qui s'adresse aux développeurs et doit leur permettre de respecter plus facilement les bonnes pratiques de développement en multithread. La JVM s'occupe de son coté d'optimiser l'utilisation de la mémoire, de déclencher le garbage collector au moment opportun et de passer en code natif ce qui doit l'être."
L'avis d'Eric Nataf (Responsable marketing serveur, Microsoft France)
"La grande majorité des produits serveurs Microsoft supporte le multicœur, les prochaines versions doivent tous gérer le multicœur, ils font partie des critères d'engagements communs ou CEC que prend Microsoft vis-à-vis de ses clients. Parmi ces critères, on trouve notamment l'environnement 64 bits, des critères relatifs à la sécurité…

Nous n'envisageons aucun changement au niveau de la tarification de nos logiciels. La position de Microsoft a été communiquée en 2004 : elle consiste à mettre à disposition de nos clients la puissance maximum. Cela signifie que le modèle reste basé sur le processeur, quel que soit le nombre de cœurs présents ou à venir sur les processeurs. L'apparition de cette technologie s'inscrit dans la continuité de la loi de Moore.

Le découpage du prix s'effectue donc en fonction du type de processeur, et non des cœurs. Sur les tests actuels, les gains utilisateurs engendrés par cette technologie sont plus significatifs pour les logiciels d'entreprise que ne l'était la montée en fréquence. Toutefois, nous ne constatons pas un gain proportionnel au nombre de cœurs présents sur la puce, mais c'est un levier important pour l'avenir."
Yves DROTHIER, JDN Solutions Sommaire Infrastructure
 
Accueil | Haut de page
 
 

  Nouvelles offres d'emploi   sur Emploi Center
Auralog - Tellmemore | Publicis Modem | L'Internaute / Journal du Net / Copainsdavant | Isobar | MEDIASTAY

Voir un exemple

Voir un exemple

Voir un exemple

Voir un exemple

Voir un exemple

Toutes nos newsletters