Recherche

Le multicoeur au service des applications monothreads

En séparant la gestion de la mémoire des calculs classiques, des chercheurs accélèrent de 20% les performances des applications monothread. Au détriment du rapport performances/watt.

Publié par le - mis à jour à
Lecture
3 min
  • Imprimer
Le multicoeur au service des applications monothreads

Les chercheurs de la NCSU (North Carolina State University) viennent de publier le résultat de leurs travaux, lesquels permettront aux développeurs de mieux exploiter la puissance des architectures processeur comprenant de multiples coeurs.

Si certaines tâches peuvent aisément être parallélisées, et ainsi tirer pleinement parti des machines multicoeurs, de nombreux logiciels ne peuvent que difficilement être adaptés pour de telles architectures. La solution proposée par les chercheurs de la NCSU consiste à séparer les calculs classiques des opérations de gestion de la mémoire. Ces deux tâches fonctionnant de façon indépendante, le logiciel exploite deux coeurs, et ce, même s'il n'est pas optimisé dans ce sens.

Certes, la puissance des deux coeurs n'est pas pleinement exploitée, mais le code peut fonctionner jusqu'à 20 % plus rapidement. Plus les applications manipulent de larges ensembles d'informations et plus le gain sera important.

Grâce à ce procédé, certaines opérations lourdes (libération ou mise à zéro de larges blocs.) s'effectuent donc sur un coeur séparé. De plus, ces travaux ne bloquent plus les traitements en cours. Autre point intéressant, les opérations de vérification prennent moins de temps processeur.

« En exécutant les fonctions de gestion de la mémoire sur unthreadséparé, ces programmes difficiles à paralléliser peuvent fonctionner environ 20 % plus rapidement », souligne le Dr. Yan Solihin, directeur du projet de recherche et coauteur de cette publication. « Cela ouvre également la porte au développement de nouvelles fonctions de gestion de la mémoire qui permettront d'identifier des anomalies dans le comportement du programme ou d'effectuer des contrôles de sécurité supplémentaires. Auparavant, ces fonctions auraient ralenti la vitesse de l'ensemble du programme. »

Avec ce gestionnaire mémoire prenant la forme d'un service, les chercheurs emploient une méthode moderne, mais déjà connue et utilisée au sein d'offres concurrentes. Ils ont su toutefois optimiser leur solution, laquelle se montre particulièrement aboutie.

Reste que ce type de technique a un impact en terme de performances, ce mode client-serveur étant plus lourd à gérer qu'une méthode basique. Certains contributeurs du site Slashdot remarquent d'ailleurs avec raison qu'un coeur de plus sera utilisé, pour des performances en hausse de seulement 20 %. Si la vitesse de traitement grimpe, cela se fera donc souvent au détriment du rapport performance par watt de la puce.

Le bon point reste toutefois que les applications qui n'ont jamais été optimisées pour le multicoeur (traitements de texte, navigateurs web, etc.) pourront maintenant fonctionner un peu plus vite. Une excellente nouvelle pour les éditeurs, et les utilisateurs, puisque le code de ce type d'application n'est que rarement optimisé dans ce sens.

Livres Blancs #cloud

Voir tous les livres blancs

Vos prochains événements

Voir tous les événements

Voir tous les événements

S'abonner
au magazine
Se connecter
Retour haut de page