Apple met Grand Central en open source
Une des nouveautés de Mac OS X Snow Leopard, c'est Grand Central Dispatch. Ce système permet, en simplifiant un peu, de rendre le développement d'applications multi-thread plus simple. En effet, Grand Central Dispatch permet aux programmeurs de se passer d'une partie des problèmes du multithread : la distribution de ceux-ci (entrent les cores) et la gestion de ceux-ci. L'idée consiste à laisser le système d'exploitation gérer les threads, en laissant le programmeur créer ce dont il a besoin. Et Apple propose les sources de la librairie utilisée pour Grand Central Dispatch, en expliquant que c'est intéressant pour les développeurs, mais aussi pour une implémentation dans d'autres systèmes (on pense évidemment à Linux). Notons que l'ensemble est sous licence Apache 2.0, ce qui indique que la modification et la distribution sont autorisées pour tous les suages (libres et commerciaux) mais que le copyright est maintenu.
Typiquement, un exemple simple existe pour montrer l'avantage de Grand Central : si un programme lance plusieurs encodages vidéo sur un processeur à deux cores, un système classique va traiter tous les threads en même temps et donc passer d'un thread à un autre. Avec trois encodages, on aurait par exemple six threads simultanément, deux par encodage, qui se télescoperaient. Avec Grand Central, le système détecte ce type de situation et va séparer les threads : l'encodage se ferra donc d'abord sur le premier fichier (avec deux threads), puis le second puis le troisième. Cette technique permet de limiter le blocage des threads et donc de gagner un peu de temps processeur pour d'autres tâches (dans ce cas précis, pour encoder plus vite) tout en évitant de saturer les autres ressources de la machine. Notons bien évidemment que la technologie n'est pas « magique » mais qu'elle peut aider les développeurs en simplifiant le code multithread, même si un bon code bien pensé est souvent aussi efficace.
- AMD Vision : le low-cost en K8
- La fin des cartes graphiques Foxconn
- Asus supporte aussi les Xeon 3400 Lynnfield
- NEC EA222WMe : rétroéclairage à LED blanche
- Deux nouveaux CinemaStar chez Hitachi
- Un 20 pouces « multi-touch » chez Packard Bell
- Une platine numérique pour les DJs
- 640 Go en 2,5 pouces et en externe
- Test : Akoya E3211, le CULV par Medion
- Wyplayer dans le prochain décodeur SFR ?
- Le nom de code du jour : Manta
- L’iPod touch 3G mieux que l’iPhone 3GS
- Nouveau laser pour Blu-ray quadruples couches
- L'IEEE approuve le Wi-Fi N
- Faut-il remplacer le ventirad box d'un Core i7 ?
- AMD : les Catalyst 9.9 sont disponibles
- Test du boitier Corsair Obsidian 800D
- Le Mini DisplayPort : un standard enfin utilisé ?






Beau geste, mais je reste sceptique.
Concrètement, à part prendre de la place sur le disque dur, ça sert à quoi ? Y'a quelqu'un qui utilise ?
Et Linux a pas d'équivalent ?
pour le moment, y a que Snow Leopard qui l'a et peu de programmes l'utilisent (voire pas, en fait). Actuellement, ça sert un peu chez Apple, mais c'est mineure, parce que faut réécrire pour vraiment en tirer parti.
En tout cas, vu la technologie décrite, je pense que le fait d'ouvrir au monde entier ce procédé a deux buts majeurs:

- Démontrer que Apple sait s'ouvrir au monde
- Inciter par conséquent les développeurs à lorgner sur l'Os à la pomme.
Pour moi, c'est un excellent choix stratégique, surtout quand on voit la difficulté à développer des applications capables de s'appliquer à plusieurs processeurs. Et puis, n'oublions pas que les architectures Apple sont quand même très maîtrisées, puisque le hardware est défini par les modèles de la gamme (et non par les X possibilités de configuration pour les Pc). Cela a pour conséquence que si Apple tend la main aux développeurs pour qu'ils tiennent compte du multi coeur, alors les applications tierces n'en seront que plus performantes.
Bon... étant développeur, j'émets le bémol classique du: si c'est automatique, c'est pas forcément optimisé. Mais franchement entre un "démerde toi, à toi de réflechir", et un "tiens, ça sait faire ça, et pas trop mal", je sais quoi choisir
L'avantage de Grand Central est d'optimiser les threads au niveau OS, et non pas applicatif. Une application multi-thread ne devrait pas avoir à gérer le nombre de CPUs logiques ou physiques de la machine, ne devrait pas avoir à se demander si elle est seule à tourner ou que d'autres grosses applis lui disputent le CPU, etc... Le principe de Grand Central est que l'appli donne des tâches à l'OS et que celui-ci les répartit en fonction des ressources. Les applications sont donc incitées à faire du super-multi-threading et à passer tous ces milliers de threads potentiels à GC qui les exécutera en parallèle ou en série selon le contexte.
Problème de Grand Central, il est lié à une extension du C/C++/ObjectiveC que Apple vient de sortir (closures) et qui n'est probablement pas prête d'être largement adoptée. A moins que Apple ait intefacé Grand Central avec d'autres systèmes de gestion de threads?
...Il me semble que le nbr de treads et processus sont indépendants du nbr de cpu depuis ...15-20 ans (ncr,as400...)?
hé ho ! c'est fini les vacances...
il est passé où, Le Ventripotent Moqueur ?
encore sur une plage avec son compère vardon? devant un cocktail (cidre + jus de pomme) à profiter du fruit de leur actions apple labeur?
même sur les sujets à troll on ça réagit plus... ça fait bizarre.
hé ho ! c'est fini les vacances...
il est passé où, Le Ventripotent Moqueur ?
encore sur une plage avec son compère vardon? devant un cocktail (cidre + jus de pomme) à profiter du fruit de leur actions apple labeur?
même sur les sujets à troll on ça réagit plus... ça fait bizarre.
Ca va assainir un peu le forum
Par contre je flippe pour un truc : "un de perdu, dix de retrouvés"
Beau geste, mais je reste sceptique.Concrètement, à part prendre de la place sur le disque dur, ça sert à quoi ? Y'a quelqu'un qui utilise ? Et Linux a pas d'équivalent ?
Pour beaucoup plus d'infos qu'ici, direction la revue en détail d'Ars Technica (pages 11, 12 et 13).
Et vu comment ils décrivent la technologie, ça a l'air très très très intéressant. Cé résout pas les problèmes profonds du multithreading (mémoires partagées, race conditions, deadlock...), mais ça permet au développeur de dire "je veux que ça, ça et ça ça tourne en parallèle", puis le système se démerde pour tirer tout le jus de la machine. En pratique, le nombre de threads d'un programme n'est plus statique, mais géré par Grand Central. Du coup, un programme n'a pas à être réécrit pour être parallélisé à un grand nombre de processeurs (du moment qu'on lui spécifie bien qu'il tourner sur "jusqu'à n processeurs"), et inversement ne plombe pas le système en lançant un nombre de threads bien supérieur au nombre de processeurs.
Enfin c'est ce que j'en ai compris jusque là, et ça m'a l'air vraiment intéressant, concis et bien implémenté. Apple espère donc que Linux (ou *BSD, ou OpenSolaris) en profite pour l'implémenter : plus de gens sur un bon projet, ça fait un meilleur projet. Et si le monde de l'open source peut en profiter, c'est encore mieux (à la fois pour l'image de marque et pour le côté "open-source friendly" d'Apple).
Et une boite qui dirige bien un projet open source, ça peut donner de trèèès bons résultats (avis philosophique personnel ça par contre
Du côté de la concurrence, j'ai cru comprendre que OpenMP est un peu pareil mais en fait non. Faudra que je me renseigne là dessus.
Par contre je flippe pour un truc : "un de perdu, dix de retrouvés"![[:peur]](http://img.infos-du-net.com/forum/images/perso/peur.gif)
D'après Goldman : C'EST PAS VRAI !!!