Apple tire le jus des processeurs

Arnaud de la Grandière |
Les processeurs modernes qui équipent l'ordinateur de Monsieur Tout-le-monde sont de véritables monstres de puissance. Ainsi, un Core 2 Duo atteint-il environ 25 milliards d'opérations par seconde, soit 25 gigaflops. Certes, une paille en regard du dernier supercalculateur d'IBM, le Roadrunner (alias Bip-bip), qui vient de franchir la barre du petaflop (un million de milliards d'opérations par seconde, , soit la moitié de la capacité théorique d'un cerveau humain, ça laisse rêveur…), malgré tout le vulgum pécé est 25 fois plus rapide qu'un supercalculateur Cray 2 de 1985. Vu comme ça, on réalise subitement la marche du progrès. Pourtant, dans les grandes lignes, les ordinateurs ne font rien de radicalement différent dans le traitement automatique des données… où est donc passée toute cette grisante puissance?

Il faut dire que dans les débuts de ce qu'on appelait alors la micro-informatique, les développeurs devaient déployer des trésors d'ingéniosité pour que tout fonctionne. Imaginez-vous que les premiers Macs faisaient tenir un système et un logiciel dans 128 Ko de RAM, le tout chargé à partir d'une disquette de 400 Ko, de quoi faire rire la moindre clé USB… Il fallait donc optimiser à tout crin, écrire le code en assembleur pour gagner en vitesse, en compacité, et en efficacité, et racler tous les fonds de tiroir, pour réaliser l'impossible. C'était éreintant, et restreint à une élite. La montée en puissance des processeurs a permis de réaliser les mêmes choses, mais en se compliquant beaucoup moins la vie, ce qui a également mis la programmation à la portée de beaucoup plus de monde. Moralité, les logiciels modernes n'exploitent pas les processeurs modernes dans leurs moindres retranchements.

Qui plus est, la progression des logiciels souffre de beaucoup plus d'inertie que le matériel : ainsi au fil de leurs versions, les logiciels doivent-ils subir le poids de leur propre héritage, pour finir en véritables "bloatwares" (inflatuiciels). Certes, du côté d'Apple, les lourdes remises en question constituées par le passage du processeur 68000 au PowerPC, puis de MacOS 9 à MacOS X, et enfin au processeurs Intel, ont permis d'épurer quelque peu la ligne des applications et de moins reposer sur les acquis que dans le clan Windows, mais le constat demeure néanmoins.

Avec l'arrivée des processeurs gravés à 45 nanomètres (tout juste de quoi faire tenir 450 atomes…), on touche aux limites physiques de la course à l'augmentation pure et simple de la fréquence d'horloge des processeurs. Pour ne pas faire mentir la fameuse loi de Moore, les fabricants se sont repliés sur l'augmentation du nombre de processeurs, et de cœurs dans ces derniers. L'inconvénient, c'est que l'utilisation de cette augmentation transversale de la puissance ne peut plus se faire à l'aveugle, et qu'il faut désormais créer du code capable d'exploiter cette nouvelle donne dans l'architecture informatique : vous aurez beau augmenter le nombre de processeurs, vous n'en sentirez pas le moindre effet si les logiciels continuent à n'en exploiter qu'un seul. Apple l'a pris en compte dans ses plans avec Snow Leopard, qui intégrera des technologies comme OpenCL pour tirer parti des processeurs graphiques en tant qu'unités de calcul pures, et surtout Grand Central. Ce nom de gare n'est pas anodin, puisqu'il s'agit d'une véritable gare de triage pour les opérations "multithread" : au lieu d'une liste de courses que le processeur effectue une à une, on envoie des requêtes simultanées, et on cherche à effectuer le chemin le plus court pour chacune d'entre elle : gare à l'embouteillage!

En passant au processeur Intel, Apple vient se battre sur le même terrain que Windows, et ne peut plus guère compter sur une différence matérielle pour marquer la distance de puissance entre un Mac et un PC. Pour y remédier, il faut donc tirer le meilleur parti possible de la même architecture, ce qui est autrement plus accessible à Apple, qui a plus de maniabilité que l'ogre de Redmond. D'autant que Windows doit continuer à fonctionner sur des architectures matérielles fort hétéroclites. On mesure d'ailleurs le poids de ce handicap avec les soucis auxquels Microsoft doit actuellement faire face pour imposer Vista.

Pour mettre toutes les chances de son côté, Apple travaille également à l'efficacité structurelle de tous les logiciels créés pour le Mac, en investissant dans l'élaboration et le déploiement d'un nouveau compilateur. Comme on l'a évoqué plus haut, il est devenu quasi impossible à l'esprit humain d'écrire en langage machine, d'autant que chaque famille de processeurs dispose du sien propre. Pour y remédier, on a créé des langages intermédiaires, dits de haut-niveau, tel qu'Objective-C par exemple. Cependant il faut en passer par un compilateur pour transformer ce code en fichier binaire exécutable. Le compilateur va donc traduire le code C++ ou autres en assembleur, avec plus ou moins d'efficacité. C'est à ce niveau là qu'Apple s'investit, en aidant à la création d'un nouveau compilateur, répondant au doux nom de LLVM (pour Low-Level Virtual Machine, autrement dit machine virtuelle de bas niveau). Après SproutCore, AppleInsider s'arrête à nouveau sur une des sessions de la WWDC pour faire la lumière sur un autre projet open-source soutenu par la firme de Cupertino, et dévoiler sa stratégie.

Jusqu'ici le compilateur qui avait la bénédiction de la pomme, et qu'on retrouvait dans son outil de programmation Xcode, c'était GCC, vénérable compilateur open-source créé au milieu des années 80. LLVM quant à lui a été initié en 2000 en tant que projet de recherche à l'Université de l'Illinois par Chris Lattner, dont il diffusera la version 1.0 en 2003. Apple a commencé à participer au projet à partir de 2005, puis a embauché Lattner pour financer son travail. L'année dernière, le projet a abouti à la sortie de Clang, un compilateur autonome basé sur LLVM et mené par Apple, qui permet une compilation rapide tout en faisant une utilisation restreinte de la mémoire, en apportant des diagnostics explicites, une architecture modulaire basée sur des bibliothèques, et une intégration soignée à un environnement de développement tel que celui d'Xcode, le tout proposé sous la houlette de la licence open-source BSD. Apple proposera dorénavant LLVM au sein d'Xcode, parallèlement à GCC 4.2, laissant le choix aux programmeurs du compilateur qui conviendra le mieux à leur projet.

Dans le détail, LLVM maintient un semblant de compatibilité avec GCC tout en s'avérant bigrement plus efficace : le code compilé par LLVM ne requiert uniformément que deux tiers du temps nécessité par l'exécution du même code compilé par GCC. Un avantage de taille, donc, puisqu'une recompilation suffit à rendre tout logiciel 33% plus rapide! Pour cela LLVM tire parti des moindres optimisations pour le matériel moderne, à toutes les étapes de la compilation. Ainsi la gestion des architectures multi-processeurs et multi-cœurs, entre autres, en sera-t-elle grandement améliorée. Le compilateur introduit en outre une couche d'abstraction matérielle, qui lui vaut son titre de machine virtuelle, évitant aux développeurs de trop mettre les mains dans le cambouis. Ainsi, la version d'OpenGL implémentée dans Leopard a-t-elle été compilée à l'aide de LLVM-GCC, ce qui permet de faire fonctionner les API quelles que soient les capacités matérielles de la carte vidéo à laquelle les logiciels s'adressent. L'outil pourra également s'avérer précieux pour d'autres projets d'Apple, notamment concernant les processeurs de PA Semi qu'elle a fraîchement acquise, ainsi que pour l'iPhone de manière plus générale, étant donné que l'appareil, de moindre puissance, demande d'autant plus d'optimisation du code. En tant que principal contributeur, Apple s'emploie d'autre part à promouvoir ce compilateur auprès des chercheurs et universitaires, ainsi que de ses partenaires industriels, comme Cray dont on parlait plus haut. Elle continue en outre à participer à l'amélioration de GCC.

Pour peu que Microsoft ne fasse pas preuve de la même clairvoyance, voilà qui devrait constituer un avantage de taille pour Mac OS X, à plate-forme matérielle égale.

Pour en savoir plus sur les technologies de Snow Leopard :

- Snow Leopard : meilleure prise en charge de ZFS
- Apple à l'assaut de Flash
- Safari 4 : premiers tests de vitesse
- Steve Jobs au sujet de Snow Leopard
- Snow Leopard : fin de partie pour les PowerPC ?

avatar Sylvain ALLAIN | 
@ Almux ... c'est rien de l'écrire. L'Open Source a du bon mais aussi du mauvais... On peut piocher. Et y a pas que Redmond qui ne se gêne pas pour le faire... hélas.
avatar françois bayrou | 
Almux : c'est un peu ce que fait Apple :)
avatar vampire1976 | 
Avis d'un user sur un autre forum : "Très intéressant comme article même si je ne suis pas vraiment d'accord sur le fond. (Ca vient d'un site mac?). A l'heure actuel, on a des pc extrèmement puissant capable de faire presque tout de manière très fluide (sauf les jeux et un certain nombre d'outils minoritaires). En conséquence l'optimisation n'est plus l'élement principal du développement d'application car les ressources disponible sont très largement suffisante. On ne se trouve plus avec des pc avec 512ko de mémoire vive sur lesquels il fallait optimiser l'allocation de chaque octet de mémoire. A l'heure actuel, et plus particulièrement en entreprise on tend a essayer de diminuer les coûts de développement et de maintenance en utilisant notament des langages de plus haut niveau que le c/c++ (Java, .NET, Python...). On recherche aussi a réutiliser le plus possible le code déja produit ce qui est beaucoup plus difficile lorsque l'on recherche l'optimisation à tout prix. La recherche de performance se fait alors sur les plateformes et sur les outils. Typiquement Microsoft travaille sur Parallel FX pour aider a réaliser des applications multicores en .NET. Dans ce contexte la présence d'un nouveau compilateur plus performant que GCC n'est pas un point qui va aider Mac Os a s'imposer. D'ailleurs, même si l'on gagne des performances face a GCC, rien ne dit qu'il soit plus performant que ICC (le compilateur d'intel). L'idée de la machine virtuelle est certes fortement sympatique et très élegante mais elle va avoir énormement de mal à s'imposer si elle n'est présente que sur Mac Os (qui représente 3-4% des parts de marché) face a Java qui fonctionne sur 99,99% des plateformes et .NET qui fonctionne sur 90-99,99% des plateformes (si l'on prend en compte Mono)."
avatar françois bayrou | 
Il ne sera forcément pas d'accord sur le fond si il ramène ca à une guéguerre microsoft apple. "Dans ce contexte la présence d'un nouveau compilateur plus performant que GCC n'est pas un point qui va aider Mac Os a s'imposer" LLVM n'a sûrement pas la prétention d'aider macosx à s'imposer. Juste celle d'améliorer l'existant, ce qui est déjà pas mal, et la concurrence devrait s'en inspirer. "des pc extrèmement puissant capable de faire presque tout de manière très fluide" > mwais. il n'a pas spécifié l'os le gredin ! :)
avatar mon_grain_de_sel | 
Moi aussi j'aime bien lire les articles sur Roughly Drafted [url=http://www.roughlydrafted.com/2008/06/20/apples-other-open-secret-the-llvm-complier/] Ça semble prometteur ce 10.6 avec sa révision de l'interaction entre le OS, le matériel et les outils. Juste pour le plaisir (je ne fais pas la leçon à personne ici, ok?) : Au Québec, bien que " inflagiciel " est l'équivalent officiel de notre OLF pour "bloatwares" (inflatuiciels) tel que mentionné dans l'article, il est aussi d'usage courant d'utiliser " obésiciel " Quand on parle d'ogre... ;-)
avatar mon_grain_de_sel | 
Oups, j'ai oublié de fermer la balise... de l'url. Désolé!
avatar BeePotato | 
@ oomu : "l'argument sur "intégration xcode" ne fait aucun sens." Si. Ce point concerne Clang, dont l'un des objectifs est de permettre une meilleure intégration du front-end à l'IDE, avec une communication plus poussée entre les deux que ne le permet le front-end de GCC à l'heure actuelle (comme nous l'a déjà rappelé Hak dans son commentaire). Bref, faut se renseigner un peu avant de critiquer comme ça. ;) "Sa volonté de ne jamais se contenter de la technique du jour est aussi une bonne chose, effectivement. L'entreprise avait perdu cela début des années 90." Euh... tu dois vouloir parler d'une autre période, là (mais laquelle ?). Parce qu'au début des années 90, la sortie du Système 7, de QuickTime, du PowerPC, etc., ça ne donnait pas franchement l'impression de vouloir "se contenter de la technique du jour", bien au contraire !
avatar shenmue | 
@Un Vrai type: Désolé de ne pas t'avoir répondu plus vite...mais bon, les affaires familiales... Sinon, + 1 globalement avec tout ce que tu as dit...sauf sur la partie concernant les évolutions graphiques de OSX qui n'auraient été là que pour plomber la réaction en retour de Microsoft qui se serait alors senti "obligé" de rajouter une surcouche d'effets à son OS quitte à l'alourdir beaucoup trop... ça ne me paraît pas très crédible, d'une part parce que je ne considère pas les évolutions d'interface de OSX comme du gadget (à contrario d'ailleurs de pas mal d'évolutions d'interface de Linux ces derniers temps qui sont là vraiment pour en mettre plein la vue mais ne sont pas vraiment ergonomiques), d'autre part parce que tout cela semble ultra tiré par les cheveux... Mais sinon, je pense qu'Apple savait AUSSI qu'en appuyant fort sur cet aspect, Crosoft ne pourrait ne pas ne rien faire et se retrouverait d'autant plus plombé par son obligation de rendre son OS compatible avec une aussi grande diversité de machines...et c'est bien ce qui s'est passé avec Vista... sinon, concernant Linux, l'affaire est surtout très grave pour Microsoft, les EEE et consorts, vu que ces machines attaquent un segment du marché où n'est PAS Apple mais où se trouvent sans doute les 2/3 de l'informatique personelle aujourd'hui (soit des machines entre 300 et 600 euros)...Si Microsoft se vend autant sur les postes Pcs, tout le monde sait bien que cela n'est pas dû à la qualité de son OS mais à la vente liée...alors si les constructeurs découvrent ENFIN, qu'ils n'ont pas pour obligation de livrer cet OS avec leurs machines, c'est tout de même le début de quelque chose d'inquiétant pour Microsoft qui tient une énorme partie de ses ressources sur cette vente liée ainsi que sur les ventes de la suite Office. Et l'on ne peut pas vraiment dire que Microsoft a réussi sa diversification...
avatar shenmue | 
...suite: A contrario, Apple semble aujourd'hui avoir de très nombreux et gros atouts dans sa manche : - Ses ventes de machines et donc de son OS sont en pleine phase de croissance (actuellement +50% d'une année sur l'autre) - Apple occupe 66% du segment des machines au delà de 1000 dollars aux US et doit sans doute posséder en Europe un fort pourcentage de ce même créneau...Or, ce marché n'est pas attaqué soit par les autres fabriquants de PCs, écoeurés par la prédominance d'Apple sur ce segment, soit pas Les machines sous Linux qui tapent sur des prix bas.... - Apple a réussi sa diversification: il occupe dés à présent 4 grands pôles d'activité qui tous marchent très fort: 1 - les Ordinateurs et OSX, avec 4% du marché mondial et la moitié de son CA là dessus 2 - les Ipods, Apple étant le premier vendeur de balladeur numérique au monde 3- la vente en ligne, Apple étant le premier vendeur de musique ET de vidéo en ligne... 4- la vente de logiciels, Apple étant dans certains secteurs comme le montage numérique le N°1 mondial Et cela continue aujourd'hui avec l'Iphone qui devrait sans nul doute être un succès de grande ampleur et sans doute encore demain avec l'ATV lorsque le produit sera plus mûr... - Apple est le seul constructeur a réellement proposer un écosystème aussi viable de tous ses produits... Bref...Linux va faire mal à Microsoft, c'est sûr...à Apple, j'y crois beaucoup beaucoup moins et une évolution par le haut de OSX ne fera que renforcer cette idée d'un Apple haut de gamme...
avatar shenmue | 
@Laurange: Je ne suis pas sûr que SJ ne se lève pas tous les matins en ayant pas une petite pensée pour Microsoft vois-tu...Apple est l'une des rares sociétés au monde qui attaque aussi frontalement les solutions de Microsoft dans ses publicités, dans sa communication, qui propose des logiciels qui constituent ou veulent se poser comme une alternative aux produits hégémoniques de Crosoft (Safari, OSX lui-même, Iwork) et SJ lui même a avouer vouloir qu'Apple atteigne les 10% de PDM...alors bon, on est loin des 95% mais dis toi que 10% du marché mondial pour un autre système que celui de Microsoft, lié au fait que Linux est sur une voie interressante avec les EEE, et cela suffirait à mettre Microsoft en repli finançier fort.. La course effrennée que se livre Microsoft pour essayer de se diversifier (sans d'ailleurs y parvenir) est un signe qui ne trompe pas...
avatar radioman | 
Il n'y a que moi que ça choque?: "250 millions d'opérations par seconde, soit 25 gigaflops" j'aurais plutôt dit: 250 millions d'opérations par seconde, soit 250 Mégaflops ou encore: 25 milliards d'opérations par seconde, soit 25 gigaflops
avatar Gabone | 
Mon PowerMac G4 dual 1,42 Ghz, une vraie horloge suisse et il n'a pas dit son dernier mot !!!!!!!!! HOURA
avatar tradkwah | 
@ radioman [url=http://fr.wikipedia.org/wiki/Flops]FLOPS[/url] la faute est sur le premier, ça semble être 250 Mégaflops. En revanchec, pour le Roadrunner, c'est bien le pétaflops. Enfin bon ce n'est qu'un détail pour introduire l'article, de grande qualité d'ailleurs, pas de quoi se couper les cheveux en 250 Méga!
avatar Arnaud de la Grandière | 
désolé pour la bévue, c'est corrigé. C'était bien 25 gigaflops, et donc 25 milliards d'opérations par seconde.
avatar Eurylaime | 
"Apple occupe 66% du segment des machines au delà de 1000 dollars aux US et doit sans doute posséder en Europe un fort pourcentage de ce même créneau... Or, ce marché n'est pas attaqué soit par les autres fabriquants de PCs, écoeurés par la prédominance d'Apple sur ce segment," C'est à la portée de tout constructeur de faire une machine chère, après la vendre c'est pas gagné, sachant que les consommateurs dans leur grande majorité veulent ou simplement ne peuvent mettre 500 $ dans leur machine.
avatar Stanley Lubrik | 
@shenmue qui dit : "...la vente de logiciels, Apple étant dans certains secteurs comme le montage numérique le N°1 mondial.." --- Mike Olson, vice president analyste en chef chez Piper Jaffray, a mené une récente enquête aux USA : "A recent survey conducted by Piper's Olson of 112 post-production video specialists found 45% using Avid machines and 41% using Apple, with the latter having jumped from 32% just a year ago". Au mieux cela fait Apple 2ème sur le créneau Broadcast / Cinéma.... Et uniquement ce créneau là... Avid a d'ailleurs considérablement réduit ses prix en software.... Ce qui devrait freiner l'hémorragie.. Sur le segment semi-pro, je pense qu'Adobe vend toujours plus de Premiere Pro et sa suite logicielle qu'Apple de Final Cut Pro (et sa suite...)... Passes leur un petit coup d'iBiniou.... Et pour le reste : Avid Pinnacle Studio est - et de loin ! - le plus vendu au monde des logiciels de montage amateurs. Logiciels vendus et non pré-installés... Sinon, Windows avec son Movie Maker décroche la timbale... Redde Caesari quae sunt Caesaris, et quae sunt dei deo....
avatar Stanley Lubrik | 
Au mieux cela fait Apple 2ème sur le créneau Broadcast / Cinéma.... En extrapolant un peu, c'est à peu près la même chose en France, etsur d'autres marchés similaires....
avatar beus | 
Merci Apple, je vais bientôt pouvoir utiliser mon imac payé une fortune avec fluidité !
avatar beus | 
Ah oui ! Et surtout recompilez en premier photoshop et numbers, qui sont catastrophiques, sans oublier le noyau de leopard Merci d'avance !
avatar shenmue | 
@stanley lubrick: Et que fais tu des ventes de FC hors grands studios et Broadcast ? Si l'on compte les ventes de logiciels pro, la solution FC est bien la plus répandue aujourd'hui, loin devant les solutions d'Avid...
avatar shenmue | 
Et sinon, 2eme sur le crénau Broadcast aux US, c'est vraiment énorme quand on lit ici ou ailleurs (on va dire surtout ici qu'ailleurs) que les solutions d'Apple ne sont pas les plus adaptées pour le pro "lourd"... L'esprit de mon info n'était pas sur du chipotage de n°1 ou N° 2 de toute façon...c'était avant tout pour dire qu'Apple est redevenu un des poids lourds du secteur de la création pro côté logiciel..ce qui est aujourd'hui indéniable...
avatar powerjaja | 
Il est vraiment excellent cet article ! Je ne sais pas comment vous faites pour avoir autant de connaissances techniques tout en ayant suffisamment de pédagogie pour nous les faire passer avec des mots simple... En tout cas merci de nous les faire partager !

Pages

CONNEXION UTILISATEUR