Fermer le menu

Snow Leopard : pas de miracle en vue ?

Nonoche | | 20:29 |  61
Avec l'arrivée prochaine de Snow Leopard, et de ses deux technologies phares, à savoir OpenCL et Grand Central, on parle de plus en plus de parallélisme.

Les processeurs en ont en effet terminé avec la progression verticale : au lieu d'augmenter la puissance brute des processeurs, on augmente leur nombre. On obtient ainsi, du moins potentiellement, un bien meilleur rapport puissance/consommation. Le problème c'est qu'il faut désormais bâtir les logiciels très différemment pour en tirer parti. Ainsi, il faut couper les tâches en petits morceaux afin de les faire exécuter simultanément par les différents processeurs et leurs multiples cores. L'opération n'est résolument pas aisée, et nécessite une refonte de l'architecture des logiciels. Si Grand Central a pour vocation de veiller à éviter les embouteillages et permettre aux multiples opérations de se dérouler sans encombre, il ne permet pas pour autant de faire des miracles, et les développeurs devront malgré tout déterminer eux-mêmes quelles tâches se plient le mieux au parallélisme.

Ne nous leurrons pas : le parallélisme n'est qu'un pis aller. S'il permet de mieux tirer parti de nos multicores, toutes les opérations ne s'y plient pas pour autant, et nécessiteront une refonte des logiciels, alors qu'une augmentation de la puissance brute des processeurs était directement exploitable sans rien changer du côté logiciel. On voit déjà bien peu d'applications qui tirent parti des biprocesseurs, alors que les Macs utilisent ce type d'architecture depuis bien longtemps. Les choses ne vont pas aller en s'arrangeant, car la multiplication des processeurs n'ira qu'en augmentant. Imaginez le casse-tête quand nous aurons pas moins de 32 processeurs dans nos machines!

Pourtant, l'industrie informatique a une longue expérience du multiprocessing, dans le champ d'application des serveurs notamment. Mais il y a un univers entre une application pour plusieurs utilisateurs et plusieurs applications pour un seul utilisateur, caractéristique essentielle qui différencie l'environnement serveur de celui que nous côtoyons quotidiennement. En effet, les applications serveur se prêtent par nature au parallélisme, chaque utilisateur étant susceptible de lancer une tâche qui s'exécute simultanément aux autres. Après tout, plusieurs processeurs dans une seule machine, c'est un peu comme si vous utilisiez plusieurs ordinateurs simultanément, et encore, ça n'en a pas tous les avantages, puisqu'on conserve une seule allocation mémoire vive, et la plupart du temps un seul disque dur, qui font figure de goulot d'étranglement en entrée et en sortie des processeurs. Les logiciels qui fonctionnent sur nos Mac se contentent, la plupart du temps, d'utiliser de la mémoire et quelques cycles processeur ici ou là lorsqu'elles sont en tâche de fond : ça n'est pas tous les jours qu'on lance plusieurs opérations simultanément. Le parallélisme sur l'ordinateur personnel s'attache donc à découper les opérations monolithiques en petits morceaux à exécuter concomitamment. Seulement voilà, nombre de ces opérations sont linéaires, chaque résultat dépend d'une opération précédente.



Il ne faut donc pas s'attendre à voir votre Mac mini se prendre pour un Mac Pro comme par magie avec le passage à Snow Leopard. Il faudra mettre les logiciels à jour pour qu'ils exploitent Grand Central et OpenCL. Les seuls cas d'accélération "spontanée" concerneront les appels au commandes du système qui auront été réécrites avec Grand Central et OpenCL. Certes, les beta-testeurs de Snow Leopard ont pu s'atteler à la tâche depuis la finalisation de ses API (voir notre article Snow Leopard : les API finalisées), on peut donc avoir bon espoir de voir nombre de mises à jour disponibles à la sortie du félin. Mais à bien y regarder, tout ceci ne rend l'augmentation de puissance de nos machines que bien théorique : s'il est si délicat d'en tirer toute la substantifique moelle, on finit par gâcher plus de puissance qu'on en exploite, et il semble bien que la stratégie n'avait d'autre objectif que de ne pas faire mentir la loi de Moore, si ce n'est de maintenir la dynamique du marché hardware.
Catégories: 

Les derniers dossiers

Ailleurs sur le Web


61 Commentaires

avatar Jerry Khan 01/06/2009 - 22:27

On savait depuis le début que SL n'allait pas apporter de réels gains de vitesse immédiats. Seuls les gogos (qui abondent ici et ailleurs) pensaient que ce serait le cas. La derniere build de snow leopard n'apporte pas grand chose de plus qu'un leopard fraichement installé en terme de vitesse tant au niveau du lancement des programmes qu'au niveau de leur execution. Bref, seules des fonctions cachées dévoilés la semaine prochaine pourront justifier l'achat de cet OS, sinon il devra etre offert gratuitement ou pour une somme symbolique.

avatar biniou 01/06/2009 - 22:34

@Dr_cube : de pouvoir commencer des threads de manière synchrone et de pouvoir garantir leur exécution de manière synchrone.

avatar totorino 01/06/2009 - 22:44

La solution raisonnable serait d'arrêter la course au hardware et de concentrer uniquement sur la qualité et l'efficacité du soft.


avatar RDBILL 01/06/2009 - 22:44

Pas grand chose de vraiment neuf ou formidable dans Snow Leopard, j'entend du point de vue de l'utilisaeur moyen... C'est bien ce qui me semble au vu des différentes brèves sur les différents sites Mac... Question : Qu'est ce qu'Apple et Steve vont nous sortir en argument marketing pour réussir à nous faire cracher 129€ ??? Bon en même temps on peut leur faire confiance pour ce qui est des trouvailles marketing... Et il se pourrait bien que je "craque" finalement, moi aussi...

avatar Anonyme (non vérifié) 01/06/2009 - 22:48

Tout d'abord merci pour l'article que je trouve excellent. Ensuite, si une meilleure exploitation d'un logiciel par Grand Central nécessite sa réécriture ça veut dire qu'en réécrivant leur logiciel, les devs les rendront plus rapides, mieux exploitables? Ils n'ont donc pas naturellement intérêt à les réecrire ? Evidemment, pour les petits Freewares, c'est autre chose...

avatar proulix 01/06/2009 - 23:03

ça dépend des apps. Pour un soft de rendu 3D, le parrallelisme et open cl c'est le grand pied

avatar Le Gognol 01/06/2009 - 23:43

Faut pas être trop défaitiste non plus, il était déjà possible de profiter des avantages du biprocesseur sous OS... 9, avec certaines applications (Digital Performer par exemple), et quand Mac OS X est apparu sa gestion du multitâche a démontré instantanément le bien-fondé de ce genre de solution. Même si les applis ne profitent pas toutes individuellement de la multiplication des coeurs, elles sont quand même de plus en plus rares à ne pas en tenir compte dans les domaines "lourds" (son, image, vidéo), et la demande toujours plus massive d'applications tournant simultanément et de processus tournant en tâche de fond, font que les multiples coeurs de nos machines n'ont pas tant que ça le temps de s'ennuyer...

avatar NikonosV 02/06/2009 - 00:04

c'est Cuda qui arrive sur mac avec 2 ans retard par rapport au pc sur pc avec un soft tv gratuit, on peut choisir le codec H264 qu'on veut utiliser pour décoder la TNT HD on coche la case utiliser Cuda et hop 5% de cpu pour décoder la TNT HD sur mac y a que quicktime qui peut profiter du décodage hardware j'espère qu'ils penseront à mettre dispo rapidement les techno pour les autres softs puissent les exploiter parce que un finder boosté, on ne passe pas ça vie dessus le finder :o)

avatar misterbrown 02/06/2009 - 00:27

Je suis curieux de voir la politique tarifaire de Snow Leopard... bon apres, personne nous force a l acheter..

avatar biniou 02/06/2009 - 00:45

@ NikonosV: Cuda existe sous Mac et depuis plus d'un an. Cuda n'est pas un standard mais est spécifique à NVidia et ce pour certaines versions de leurs cartes graphiques. Ici on parle de deux choses fort différentes au niveau du fonctionnement : - D'un côté l'utilisation des puces graphiques massivement parallèles avec openCL. Cela permettra de faire du calcul comme par exemple diviser une image en bloc et analyser ces blocs séparément pour calculer un histogramme. On peut alors par exemple faire 128 calculs en parallèle en coupant l'image en au moins 128 blocs. Le problème principal des cartes graphiques est qu'elles disposent de peu de mémoire et que si on est trop gourmand, le temps gagné avec la parallélisation est perdu en lecture/écriture sur les I/O. - D'un autre côté (Grand Central), si j'ai bien compris, une meilleure répartition des threads (ou fils dans le moniteur d'activité) sur les différents coeurs (core) et/ou processeurs. Mais aussi une nouvelle API (interface de programmation) qui a pour but de simplifier la vie des programmeurs pour l'utilisation des différents coeurs du processeur/des processeurs. Donc OpenCL est plus générique que Cuda puisque non limité à un seul fabricant et devrait devenir un standard de fait dans les années qui viennent. Ce qui implique que Microsoft va dévéloper une openCL à sa sauce : buggé et dont l'API change de version en version (bon d'accord, je suis mauvaise langue).

avatar philus 02/06/2009 - 07:32

Article intéressant, mais j'y mettrais un bémol. Ce que va nous apporter vraiement le multi-processeur, c'est de la réactivité plus que de la puissance brute. Je pense que nous allons dans les années qui viennent changer notre façon de percevoir un micro-ordinateur. Beaucoup ont tendance à lancer un programme et attendre que le résultat vienne. D'où la nécessité d'avoir des processeurs à la puissance unitaire de plus en plus importante. Comme nous allons arriver aux limites de la technologie et que le développement multithread ne permet pas tout, c'est cette solution qui devrait émerger. Avec l'augmentation énorme de la ram, la mise en place des SSD (temps d'accès réduits), nous allons vers des systèmes où l'on lance un calcul quelconque, puis un autre, le tout simultanément avec des encodages divers, la gravure d'un DVD tout en surfant, chargeant ses mails, écoutant de la musique et gardant un micro très disponible. On devrait enfin retrouver le multi-tâche très efficace des Amiga (si,si, les connaisseurs apprécieront...) et devrions commencer à oublier les sablier et autres roues multicolores. Pour la plupart des applications, on se moque complètement de savoir si elle va faire son boulot en 10 ou 15 minutes si l'on peut faire autre chose simultanément sans aucune gêne. Il arrive encore actuellement que le chargement d'une page web me bloque un peu dans l'utilisation de mon macbook pro 17 pouces, cela devrait changer...

avatar Dr_cube 02/06/2009 - 08:35

@ philus : Je ne suis pas entièrement d'accord avec toi. Le parallélisme permet aussi d'accélérer la réalisation des calculs. En répartissant les calculs sur différentes unités d'exécution, on accélère d'autant un calcul. Si on peut zipper un gros dossier en 20 secondes au lieu de 10 minutes, c'est mieux. Si on peut appliquer des filtres sur des images plus rapidement, c'est mieux. Mais je suis d'accord que le plus important c'est de réduire le temps d'apparition de la roue multicolore. Mais là c'est clairement le disque dur qui bloque. Quand on aura des disques dur plus rapides en lecture, on diminuera de facto le temps d'apparition de la roue multicolore. On la retrouve en effet lorsqu'une application se charge en mémoire, et lorsqu'une application a été swappée sur le disque, et qu'elle doit être rapatriée en mémoire.

avatar fixfix 02/06/2009 - 09:17

MacGé et l'électroménager Les mac, les PC, les iPhone, c'est de l'électroménager, au même titre qu'un grille-pain, un lave-linge; etc. D'ailleurs Steve Jobs avait défini le concept d'origine du Mac comme un "home appliance". Sans doute trouvez vous beaucoup plus commode d'avoir un lave-linge avec 3 boutons (ou même un seul) plutôt que 47 voyants, 4 sélecteurs tournants, 25 boutons, etc. Heureusement que Microsoft ne fabrique pas de lave-linge .... Tout le talent des concepteurs d'un lave-linge est de cacher la complexité, en rendant la machine plus "intelligente" : un lave-linge moderne peut détecter le type de fibres, le poids du lnge, si c'est de la couleur, le degré de salissure, le degré de calcaire de l'eau, etc. Au final, autant de "choix" que l'utilisateur n'a plus à faire. De même, un lave-linge grand public ne fait pas "tout" (ici s'impose la comparaison avec par ex. MS Office s'impose), Faire "tout" rend beaucoup plus compliquée la tâche de l'utilisateur. Il suffit que le lave-linge remplisse, par ex., 99% des besoins. Pour les besoin restants, s'adresser aux prestataires spécialisés. Nos machines électroménagères (je veux parler de nos Mac) sont hélas encore bien trop compliquées. D'où le besoin ressenti par certains de "comprendre comment ça marche", et l'excellent article d'Arnaud (décidément très doué ! Quand faites vous, par ex., une émission télé ?). Quand nos (arrière-)arrière-grand mères ont appris à conduire, elles devaient également apprendre "comment ça marche", la mécaique, etc. Depuis, la complexité des automobiles a été "cachée", et tout le monde peut conduire. Tant mieux ! Re-très grand merci à Arnaud. Même si on n'a plus BESOIN de savoir, reste la curiosité, l'ouverture d'esprit. Cela s'appelle la culture

avatar melaure 02/06/2009 - 09:46

"Je pense que nous allons dans les années qui viennent changer notre façon de percevoir un micro-ordinateur. Beaucoup ont tendance à lancer un programme et attendre que le résultat vienne. D'où la nécessité d'avoir des processeurs à la puissance unitaire de plus en plus importante." @Philus : c'est une remarque pour ceux qui ont grandi qu'avec Mac OS avant OS X ;) Mais sur Amiga ou Be OS, ça fait longtemps (1987) qu'on attend pas qu'un programme envoie des résultats. Sinon intéressant article qui met en lumière que c'est avant tout une optimisation poussée du système, et qu'Intel fait pas mieux que Motorola en piétinant sur place à son tour ... On sort un jour un proc qui fait faire un bond (G3/G4, Core2Duo) puis après pendant 5 ans, ça plafonne ...

avatar XiliX 02/06/2009 - 10:06

Il y a beaucoup de "nerds" ici qui oublient que MacGé est lu [b]aussi[/b] par des personnes qui ne connaissent rien en techno parallélisme. Des personnes qui pourraient aussi s'intéresser à ce genre d'information. Il ne s'agit pas ici de descendre SL, mais expliquer pourquoi le parallélisme n'est qu'une solution pour pouvoir exploiter au maximum une architecture multicores/multiprocesseurs. Le gain peut être impressionnant si le processus est entièrement parallélisable... ou pas. Très bon article Arnauld.

avatar ispeed 02/06/2009 - 10:13

Article très réaliste. En gros on vous propose pour votre voiture, des jantes en alliage avec de plus gros pneus et vous aurez l'impression de rouler plus vite et d'avoir plus de stabilité. Je pencherai pour plus de stabilité :))

avatar Dr_cube 02/06/2009 - 10:26

@ ispeed : Pas du tout ! Ce serait plutôt : Au lieu d'avoir un gros moteur qui fait tourner les 4 roues de ton 4x4, tu as 4 petits moteurs indépendants qui font tourner chacun une roue. Du coup le 4x4 consomme moins alors qu'il est plus puissant. Le problème c'est que pour avancer tout droit il faut que les moteurs se synchronisent et partagent des informations, ce qui a un coût en communication.

avatar philus 02/06/2009 - 10:47

@melaure 'c'est une remarque pour ceux qui ont grandi qu'avec Mac OS avant OS X ;) Mais sur Amiga ou Be OS, ça fait longtemps (1987) qu'on attend pas qu'un programme envoie des résultats.' Nostalgie des vrais noyaux temps réels ;-) Il reste QNX...

avatar Mogenot Christophe 02/06/2009 - 10:58

Très belle image Dr_cube ! Sinon, concernant l'article, je le trouve un ton en dessous de [url=http://www.macg.co/unes/voir/127129/apple-tire-le-jus-des-processeurs]celui-ci[/url]. Ça sent les espoirs déçus, dommage. Evidemment, tout le monde dira "je le savais, 'faut être un nioube pour croire que ça irait plus vite !". Il n'empêche que beaucoup y ont cru, surtout avec ce genre d'article dithyrambique.

avatar biniou 02/06/2009 - 11:21

@philus : Pour moi ni AmigaOS, ni BeOS sont des OS temps réel à l'instar de QNX. J'avais oublié. Il n'existe pas que QNX comme OS temps réel ...

avatar Psylo 02/06/2009 - 11:42

Je me souviens d'un article sur des modifs incluant le realtime pour le kernel d'OSX. Un truc devellopé spécifiquement sur les sources de XNU/Darwin par une équipe de cinglés qui avaient un gros cluster de Xserve G5 pour des calculs scientifiques particuliers. Impossible de remettre la main dessus.

avatar BeePotato 02/06/2009 - 12:18

@ melaure : « Mais sur Amiga ou Be OS, ça fait longtemps (1987) qu'on attend pas qu'un programme envoie des résultats. » Ah bon ? Tu utilsais déjà Be OS en 1987, toi ? Bravo, tu étais vraiment un précurseur. :-P

avatar Goldevil 02/06/2009 - 13:05

Article intéressant. Pour moi, la migration de 10.4 vers 10.5 a été normale car il y avait plusieurs nouvelles fonctionnalités disponible et en particulier Time Machine qui est vraiment un gros bonus. J'espère que Snow Leopard apportera quand même des choses en plus qui donneront envie d'y passer. Savoir que mon nouvel OS comporte un Grand Central génial n'est pas intéressant si pour moi cela se résume à accélérer PhotoShop que je n'utilise pas. Par contre, si je constate que la suite iLife est sensiblement accélérée (iPhoto/faces, génération iMovie...), c'est déjà beaucoup plus intéressant. En résumé j'attends que l'expérience utilisateur soit améliorée. Je m'en fout que cela fonctionne avec Grand Central ou avec Transcodeur Libzo-luminique. PS: en fait, je ne m'en fout pas car je suis développeur mais je me mets à la place des utilisateurs ;-)

avatar philus 02/06/2009 - 13:39

@ biniou: eh si, Amiga OS était temps réel. On pouvait par un timer HARD lancer (via le mode superviseur du 68000) une tâche donnée (il faut bien entendu que la tâche ne dure pas plus longtemps que sa périodicité...). C'est même pour ça qu'il était utilisé, par exemple, pour diriger la rotation des télescopes. Beaucoup ne voient l'Amiga que comme une console de jeux, alors que sont OS était une merveille. Le seul truc qui manquait était une MMU correcte, mais c'était quasi impossible à cause du lien avec les chipset et leur ram dédiée, d'où une mauvaise stabilité si on y mettait des programmes pourris.

avatar biniou 02/06/2009 - 14:38

@philus: Alors pourquoi Amiga a approché QNX fin des années 90 pour faire un OS multimédia temps réel (je parle bien de RTOS) s'ils avaient déjà un réel système d'exploitation temps réel ? Le point sur lequel on pourrait être d'accord, c'est qu'ils étaient visionnaires chez Amiga mais trop en avance...

Pages