Snow Leopard : pas de miracle en vue ?

Snow Leopard : pas de miracle en vue ?

par Arnauld de La Grandière le Lundi 01 Juin 2009 à 20:29
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.

Lire la page suivante (2/2) >>


|  |  

OS X Mountain disponible ! Mettez à jour votre mac pour 15,99€
5
4
3
2
1
Vos réactions (61 réactions)
hawker [01/06/2009 21:26]

Qu'est ce c'est cet article ?

Bien évidement personne ne s'attend a voir les perfs se décupler sous SL.
Un gain de 20 pourcent serait déjà super.

Donc pas vraiment la peine d'enfoncer la réputation de SL avec des titre d'article pareils pour des articles qui ne font que contredire des espérances que personne n'a.

Moi ce que j'attends de Snow Leopard, c'est d'être super léger, encore meilleur sur les petits points qui facilitent l'utilisation de tous les jours, d'être encore plus performant, et d'être plus stable (? a la 10.6.1 je pense espérer).

On sait bien que ce n'est pas avec une simple nouvelle API de gestion, si bonne soit elle, que les perfs vont se multiplier. D'ailleurs, le parallélisme des logiciels et des processeurs se fera en passant par une nouvelle architecture (en clair dans quelques années fini le bon vieux x86...), et c'est la qui faudra faire de tels articles.

La meilleur chose a faire, c'est attendre la présentation officielle, voir la commercialisation et après on parlera de tout ça.
Québec [01/06/2009 21:29]

Outre le vocabulaire technique, faut vraiment le lire 2 fois ce texte pour tout comprendre, pas un mot à dire le type s'y connait en vocabulaires, mais pas celui de tous les jours.

Bon en gros pas d'évolution avant plusieurs années, lorsque les programmeurs auront fait de grosses màj de leur logiciel, ou simplement d"arriver à lire et comprendre ce texte, hihi.
Dr_cube [01/06/2009 21:39]

Très bon article.

Un développeur de logiciels ne sait pas s'il va y avoir 2 ou 32 ou 200 processeurs sur la machine. Il doit donc, dans la mesure du possible, mettre au point une solution qui passe à l'échelle. Il n'est donc théoriquement pas plus difficile de faire un logiciel pour 2 processeurs que pour 200. Bien sûr, d'autres contraintes s'appliquent, puisqu'il y a un coût en communication. En effet, les tâches sont souvent liées, et les processeurs doivent donc se synchroniser pour récupérer des résultats et en envoyer d'autres. Mais ces coûts se calculent, et il y a de nombreux modèles pour cela. Parfois, les processeurs sont reliés entre eux selon une topologie particulière (grille, tore, anneaux...), et les développeurs se servent de cette topologie pour créer leurs algorithmes. Avec certains outils, on peut créer facilement sa propre topologie "virtuelle", et ainsi avoir l'illusion que les processeurs sont organisés d'une certaine manière.
Bref, il y a pleins d'outils (logiciels ou conceptuels) qui permettent de mettre au point "facilement" des algorithmes parallèles et de prévoir leur coût. Ca reste selon-moi une véritable torture pour l'esprit, mais certains y arrivent très bien. Un simple produit matriciel devient une prise de tête incroyable lorsqu'on veut le faire en parallèle (essayez et vous verrez !). Mais le gain est considérable.

Dans tous les cas, il faut bien comprendre qu'il y a plusieurs grains de parallélisme :
- entre les processus,
- entre les tâches indépendantes d'un processus,
- dans une même tâche, calculs indépendants (boucles...),
- piplelinage d'instructions
- ...

C'est en mettant du parallélisme à tous les niveaux qu'on arrivera à des solutions vraiment efficaces. Même si pour un logiciel donné, Snow Leopard n'améliorera peut-être pas grand chose, il sera peut-être possible de lancer plus de logiciels/calculs en même temps et d'avoir les résultats plus rapidement.
kissscoool [01/06/2009 21:41]

Oui enfin, le parallélisme c'est pas nouveau non plus. J'ai l'impression que les auteurs de cet articles tombent des nues en disant que ça ne s'applique pas à n'importe quelle donnée et que ça nécessite de penser le programme d'une certaine façon par moment.
Après lecture de l'article, je ne vois pas en quoi ça va être plus compliqué qu'avant de faire un programme parallèle. Je pense d'ailleurs qu'un programme qui l'était déjà (comme beaucoup devraient l'être), ne demandera pas trop trop de gymnastique pour adapter ça avec OpenCL. Le seul inconvénient est sûrement le rapatriement des données depuis les GPU vers la mémoire centrale ou CPU, ce qu'il faudra éventuellement anticiper...
lefoudupuit [01/06/2009 22:00]

ou le parallélisme permettra d'exploiter une nouvelle architecture basé sur la spécialisation des processeurs (1 pour chaque fonction de base) comme le conçoit le fabriquant qualcomm avec ses solutions ARM
l'avantage est que le besoin de puissance n'est plus nécessaire (d'où des gains de consommation, meilleure réactivité) et celà permettra de garder les procédés actuels sans avoir à suivre la loi de moore. le temps gagné permettra de trouver des solutions viables industriellement (ordinateur quantique ou autres)

d'ailleurs cette spécialisation est une technologie maitrisée par PA semi... tiens donc!!
biniou [01/06/2009 22:14]

Pas de stress. Au moins on pourra faire tourner 20 threads en parallèle.

C'est extrêmement compliqué de couper un logiciel en bloc d'instructions surtout qu'il faut habituellement plus de blocs à calculer que de processus parallèles de calcul (afin d'être optimum : cf. documentation Cuda). Ca servira, ça c'est sûr et le multicore/processeur aussi. Ce qu'il manque c'est une réelle synchronisation dans l'exécution des threads !
Dr_cube [01/06/2009 22:21]

@ biniou :
Qu'est-ce que tu entends exactement par "une réelle synchronisation des threads" ? Par définition, s'il y a plusieurs unités d'exécution, on a forcément de l'asynchronisme. Il y a mille méthodes pour synchroniser des flots d'exécution, ou pour protéger des données qui pourraient être lues/écrites par plusieurs entités en même temps.
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.



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.
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.
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...
Mac a ronds [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...
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
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...
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)


5
4
3
2
1



Réagir

attention Il n'est pas possible de réagir à cette dépêche. Si vous souhaitez toutefois réagir, n'hésitez pas à faire un tour dans nos forums.