Nouveau système d'exploitation d'Apple adaptée pour l'avenir multicore

|

Apple a commencé à expédier Snow Leopard sur vendredi, mais la véritable importance de la mise à jour Mac OS X sera probablement émerger bien après.
C'est parce que Mac OS X 10.6 commence à plus long terme, Apple tenter de prendre de l'avance par craquage d'un problème auquel est confrontée l'industrie informatique tout entière: serrant un travail utile sur des processeurs modernes. Au lieu de la farce de Snow Leopard avec de nouvelles fonctionnalités immédiatement évident, Apple a cherché à s'adapter à la nouvelle réalité dans laquelle les processeurs peut réaliser plusieurs travaux simultanément, plutôt que d'un emploi rapidement.
«Nous essayons d'établir une fondation pour l'avenir", a déclaré John Wiley & Sons Hodges, directeur marketing de Mac OS X.

Apple faire la lumière sur son projet, appelé Grand Central Dispatch, lors de sa Worldwide Developer Conference en Juin, mais le détail le plus réel a été partagé avec les programmeurs seulement tenues au secret. Maintenant, l'entreprise a commencé à parler plus ouvertement à ce sujet et d'autres projets plus profond de tirer parti des puces graphiques Intel et les processeurs 64 bits.
Les mouvements d'aligner Apple mieux avec des modifications dans le calcul. Pendant des années, les fabricants de puces comme Intel et Advanced Micro Devices n'a cessé d'augmenter la fréquence d'horloge de leurs processeurs, et les programmeurs ont été habitués à un gain de performances à chaque nouvelle génération. Mais au début de cette décennie, les problèmes ont fait dérailler le train gigahertz.
Tout d'abord, jetons finissaient souvent par se croiser uniquement leur pouce plus parce que plus lent mémoire ne peut pas garder la puce nourris avec des données. Pire encore, les puces requises des quantités extraordinaires de puissance et produit des quantités correspondantes de dur à manipuler la chaleur résiduelle.
Et c'est ainsi qu'a commencé l'ère multicœurs intégrer, dans lesquels les transformateurs eu de multiples moteurs de calcul appelle des carottes qui travaillent en parallèle. C'est très bien pour certaines tâches qui peuvent facilement être décomposés en parties indépendantes, mais les programmeurs étaient habitués à une manière plus linéaire de la pensée où les tâches s'exécutent dans une série d'étapes séquentielles.
Entrez Grand Central Dispatch, ou GCD. Cette composante Snow Leopard est conçu pour réduire au minimum beaucoup des difficultés de la programmation parallèle. Il est facile de modifier des logiciels existants pour utiliser GCD, Apple dit, et le système d'exploitation gère les tâches administratives compliquées sorte que les programmeurs n'ont pas le faire.
Dans l'ensemble, Illuminata analyste Gordon Haff croit, l'industrie informatique est en réalité que commencer maintenant s'attaquer à la programmation parallèle pour de bon. Si la construction d'âge mûr outils de programmation parallèle est un 10-chapitre, l'industrie n'en est qu'au chapitre deux en ce moment, dit-il. Mais avec aucune autre alternative, le livre sera écrit.
«Ce qui doit arriver," Haff dit. «Si vous regardez l'histoire de l'informatique, des choses qui doivent se produire réellement se passer."
Lourdeur des threads
Une façon de programmeurs ont traité avec l'arrivée des processeurs multi-cœurs - et avec les machines multiprocesseurs qui les ont précédés - à travers un concept appelé les threads. Il existe différents types, mais généralement parlant, un thread est une opération de calcul indépendantes. Pour les programmeurs de tirer parti des processeurs multicœurs, il attribue un thread pour chaque cœur, et ils vont loin, non?
Pas si vite. Threads venir avec des bagages. Chaque demande de la mémoire et de temps pour démarrer. Les programmes doivent être divisés en différents nombres de threads en fonction du nombre de mandrins une offre de processeur. Les programmeurs ont à se soucier de «verrouillage» des questions, en fournissant un mécanisme pour assurer un thread ne modifie pas les données d'un autre thread utilise déjà. Et un programme filetée pourrait marcher sur les pieds d'un autre tournant à la fois.
Certains outils d'aplanir les difficultés, telles que Intel Threading Building Blocks, sont disponibles, mais threads restent compliquées.
«Nous avons regardé cela et dit qu'il a besoin d'une refonte fondamentale. Nous voulons faire développer des applications pour multicœurs plus facile», dit Hodges. «Nous allons de la responsabilité du Code de gestion dans le système d'exploitation pour les développeurs d'applications n'ont pas à écrire et à le maintenir."
Blocage et la lutte contre
Les mécanismes de base au sein GCD sont des blocs et des files d'attente. Programmeurs marque de morceaux de code pour les convertir en blocs, raconte alors l'application comment créer la file d'attente qui régit la façon dont ces blocs sont effectivement parcourue. Bloquer l'exécution peut être liée à des événements spécifiques - l'arrivée des informations du réseau, un changement à un fichier, un clic de souris.
Apple espère que les programmeurs auront comme avantages blocs »: ancien code peut facilement être équipés de blocs de sorte que les programmeurs peuvent l'essayer sans re-engineering grands, ils sont légers et ne prennent pas des ressources quand ils ne fonctionne pas, et ils sont suffisamment souple pour encapsuler les pièces grandes ou petites de code.
«Il ya beaucoup de frais généraux autour de thread qui signifie que vous voulez rompre votre programme en autant de pièces rares que possible. Avec Grand Central Dispatch, nous disons pause votre programme en autant de morceaux minuscules comme vous pouvez le concevoir», dit Hodges.
Une autre différence avec l'approche du Grand Central Dispatch est sa centralisation. Le système d'exploitation soucis de gestion des blocs toutes les demandes »plutôt que chaque demande de fournir sa surveillance propre. Ce point de vue central, le système d'exploitation décide quelles tâches obtenir les ressources qui, d'après Apple, et que l'ensemble du système peut devenir plus réactif, même quand il est occupé.
D'autres fondations
Il ya un deuxième mécanisme dans Snow Leopard qui donne un nouveau moyen pour les programmeurs de tirer parti de la puissance matérielle: OpenCL, ou Open Computing Language. Elle permet aux ordinateurs de l'utilisation des puces graphiques, non seulement pour accélérer graphiques, mais aussi quelques calculs ordinaires.

Pour utiliser OpenCL, les programmeurs d'écrire des modules de code dans une variante du
langage de programmation C appelée OpenCL C. Snow Leopard traduit ce code à la volée dans les instructions la puce graphique peut comprendre et les transferts de données nécessaires en mémoire graphique du système. De nombreuses tâches ne seront pas en profiter, mais OpenCL est bon pour la simulation physique des jeux vidéo ou des algorithmes d'intelligence artificielle, les corvées d'informatique technique et des opérations multimédia.
Les trois grands fabricants de puces graphiques - Intel, Nvidia et ATI par AMD - ont souscrit OpenCL, et le Groupe Khronos en a fait un standard. Cela signifie que les programmeurs sont susceptibles d'être en mesure de réutiliser leur code OpenCL avec les applications Windows, aussi.
Processeurs graphiques utilisent des moteurs en parallèle qui leur conviennent pour faire fonctionner la corvée même transformation sur les nombreux éléments de données. Pour les ordinateurs sans puce graphique, cependant, OpenCL sont également possible que la stratégie d'exécution en parallèle sur des processeurs multicœurs ordinaires.
Le 64-bit de transition
Apple a commencé ses 64 années de transition, il ya peu avec les processeurs PowerPC il utilisé avant de passer à des puces Intel. Avec Snow Leopard, près de la suite complète de son logiciel - Mail, Safari, Finder, iChat, iPhoto - devenir des programmes 64 bits.

Processeurs Intel ces jours-ci sont de 64 bits, mais qu'est-ce que vous obtenez plus de 32-bit? En résumé, on peut laisser des programmes lourds utiliser plus de 4 Go de mémoire, améliorer les performances en offrant davantage de logements de mémoire puce appelée registres, et accélérer certaines opérations mathématiques.
Passer à un 64-bit ne garantit pas l'accélération instantanée, though. Dans un document pour les développeurs, les États Apple: «Mythe: Mon application ira beaucoup plus vite s'il s'agit d'un 'native' application 64 bits. Réalité: Environ 64-bits exécutables mai s'exécuter plus lentement sur 64 bits d'Intel et PowerPC architectures." Une question: la longueur doublé de références à des adresses mémoire.
Apple encourage les programmeurs de tester leurs logiciels pour voir si l'incarnation 64-bit est plus rapide. Toutes les propres applications d'Apple qui ont émigré en versions 64 bits sont plus rapides, indique la société.
Le noyau 32 bits
Toutefois, la composante de base de Mac OS X, le noyau, est toujours logiciels 32 bits par défaut sur les machines de consommation tels que les MacBook et iMac. Apple l'a écrit pour que les applications peuvent gérer plus de 4Go de mémoire, cependant, et le noyau peut gérer tout cela.
Dans son document de développeur sur des performances 64 bits, les États Apple: «Mythe: Le noyau doit être de 64 bits afin d'être entièrement optimisé pour les processeurs 64 bits. Fait: Le noyau ne généralement pas besoin de s'adresser directement à plus de 4 Go de RAM à la fois. "
Apple noyau 32 bits hits limites avec de très grandes quantités de mémoire, though. «Ainsi, à compter de Snow Leopard, le noyau est de passer à un 64-bit d'exécution sur des machines qui soutient de telles configurations mémoire de grande capacité», sa ligne de serveurs Xserve et Mac Pro postes de travail, indique la société.
L'aspect délicat de passer d'un noyau 32 bits pour noyau 64 bits est que les conducteurs - un logiciel qui laisse le système d'exploitation communiquer avec des périphériques comme les imprimantes, cartes vidéo, et les disques durs - doivent également être 64-bit. Ce n'est pas si mauvais quand il s'agit d'un périphérique matériel sous le contrôle d'Apple, mais il est plus difficile de déplacer la collection complète de périphériques de tierce partie avec leurs propres pilotes.
Apple soutient qu'il n'est pas difficile de faire le saut, though. "En tant que développeur de pilote, vous devez mettre à jour vos pilotes avec des binaires 64 bits. ... Heureusement fonctionnent avec beaucoup de pilotes '' après avoir changé les paramètres de la compilation", a indiqué la compagnie dans un document de référence.
Tout cela mai son très faible niveau, mais pour les programmeurs, Apple travaille en fait à un niveau plus élevé que la plupart. Cela pourrait être un atout car de nombreuses tentatives d'embrasser la programmation parallèle imposé des exigences plus que la plupart des programmeurs ont été désireux ou capable de gérer.
Et d'attirer les programmeurs est la clé. En bout de ligne, Apple se déplace plus profond de ces technologies comme Grand Central Dispatch et OpenCL sera un succès que si la société peut obtenir d'autres développeurs à les utiliser.

0 commentaires: