Accueil » Actualité » Apple met Grand Central en open source

Apple met Grand Central en open source

Image 1 : 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.