IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

L’ordonnanceur de Linux : « une décennie de cœurs perdus »


Sujet :

Linux

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 585
    Points
    188 585
    Par défaut L’ordonnanceur de Linux : « une décennie de cœurs perdus »
    L’ordonnanceur d’un système d’exploitation est une partie cruciale pour la performance. Il décide de l’affectation des fils d’exécution aux différents cœurs et processeurs d’une machine afin d’utiliser au mieux la machine à disposition, tout en garantissant une certaine réactivité pour les applications qui en ont besoin (notamment les interfaces graphiques : elles ne peuvent pas rester plusieurs minutes sans pouvoir exécuter la moindre instruction, car elles ne peuvent alors pas répondre aux stimuli de l’utilisateur, qui a alors toutes les raisons de râler).

    Il y a de cela une quinzaine d’années, Linus Torvalds déclarait, en somme, que l’ordonnancement était un problème très facile et qu’il était déjà très bien résolu dans le noyau Linux depuis dix ans (c’est-à-dire depuis les toutes premières versions du noyau) : inutile d’en discuter, tout fonctionne pour le mieux, tout va très bien, madame la marquise. Linus Torvalds estime même que l’extrapolation de ces techniques aux cas de machines à plusieurs processeurs est « trivial » : une logique de répartition de la charge entre les différents processeurs ne devrait représenter que quelques centaines de lignes de code, que les développeurs « ne devraient pas trop merder », selon ses termes.

    Cependant, avec l’avènement de machines avec de plus en plus de cœurs pour le plus grand nombre, l’ordonnancement s’est alors révélé bien plus compliqué que dans le cas à un seul processeur et cœur par machine. En effet, les taux d’utilisation du processeur restent très élevés, tout semble se passer pour le mieux… sauf que certains cœurs restent inutilisés par moments. Au niveau technique, cet ordonnancement reste très similaire à celui pratiqué au début des années 1990, à la différence de la répartition de la charge : régulièrement, le noyau répartit à nouveau les tâches à effectuer sur les différents cœurs, chacun suivant alors une politique équitable entre les tâches (selon l’algorithme CFS, completely fair scheduler).

    Une équipe de chercheurs a remarqué des déficiences majeures du côté de l’ordonnanceur en tentant d’expliquer certaines dégradations importantes de performance en laissant le noyau Linux gérer lui-même l’affinité des processus par rapport aux cœurs, plutôt qu’en les assignant manuellement aux cœurs disponibles. De fil en aiguille, ils ont éliminé les causes les plus probables, comme une mauvaise localité en mémoire, des contentieux à l’accès à une ressource partagée ou les changements de contexte. Ils en sont venus à suspecter l’ordonnanceur du noyau. Pour récupérer des informations suffisantes, ils ont développé des outils de suivi à très haute résolution pour caractériser la répartition des tâches aux différents cœurs et processeurs d’une machine de test. Le résultat était sans appel : certains processeurs étaient surchargés, d’autres presque complètement désœuvrés, selon des motifs étranges et difficiles à expliquer rationnellement.



    Par la suite, l’équipe a cherché dans le code source du noyau les parties à incriminer, elle a trouvé un premier défaut dans le code de l’ordonnanceur CFS : les chercheurs sont alors partis dans l’exploration plus approfondie du code. Ils ont fini par trouver quatre défauts majeurs dans le code : une fois analysés et corrigés les patchs sont disponibles sur leur site pour le noyau en version 4.1, ils ne sont pas encore intégrés dans Linux), le test de performance de bases de données TPC-H a vu une amélioration de douze à vingt-trois pour cent, le plus flagrant étant probablement une amélioration d’un facteur de cent trente-sept dans certaines charges de type HPC !

    Ce travail de détection et de correction doit être très fin, car les techniques conventionnelles de test et de débogage sont totalement inefficaces pour comprendre ce genre de défauts : les symptômes sont très évasifs (les épisodes problématiques sont assez fréquents, mais chacun dure au plus quelques centaines de millisecondes), il est impossible de distinguer un véritable problème du bruit de fond dans un outil comme htop.

    En réalité, les problèmes se situent principalement au niveau des heuristiques de CFS : pour éviter des calculs très lourds et de la communication (forcément lente) entre les différents processeurs, certaines données sont approchées à l’aide d’heuristiques (principalement, la charge de chaque cœur et processeur). Cependant, leur impact n’a pas toujours été analysé en profondeur, ce qui laisse une grande marge d’améliorations à ce niveau.

    Cet article tire plusieurs conclusions, la première étant que Linus Torvalds est très loin de détenir la vérité quant aux résultats des ordonnanceurs : non, ce n’est pas un problème résolu, il faudra encore pas mal de recherche à ce niveau pour exploiter au mieux le matériel disponible (et éviter de laisser des cœurs totalement inoccupés). Les correctifs proposés par les chercheurs ne résolvent que les problèmes qu’ils ont remarqués : ils ne prétendent pas donner des solutions génériques à tous les problèmes, ils n’ont pas poussé les tests jusqu’à déterminer l’impact sur d’autres types de charges.

    L’objectif est atteint : les ordonnanceurs doivent encore évoluer.

    Source : The Linux Scheduler: a Decade of Wasted Cores
    Ce contenu a été publié dans HPC et calcul scientifique par dourouc05.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    l'article est intéressant, et si les prochains noyaux voient leurs perfs améliorées c'est une excellente nouvelle, mais aller reprocher à Torvalds une connerie qu'il a dite il y a 15 ans c'est complètement stupide (d'autant qu'il en dit régulièrement, ça devrait plus tellement choquer )

    l'essentiel c'est que le projet y gagne, pas de s'adonner au lynchage d'1 seul bonhomme

  3. #3
    Membre éprouvé
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2013
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 277
    Points : 1 011
    Points
    1 011
    Par défaut
    Yes reprocher une connerie de linus torvald dite il y a 15 ans alors qu'il n'avait même pas les outils pour débugger ces performances n'est pas intelligent, même si ça pourrait le faire descendre sur terre parfois. En tout cas si le projet s'améliore grâce à ça tant mieux !

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    J'ai lu leur document technique sur la problématique et je me dois de vous poster une citation du sieur Linus :
    “Nobody actually creates perfect code the first time around, except me. But there’s only one of me.”

    Linus Torvalds, 2007 [44]
    Bon, soit dit en passant, je confirme qu'il ramasse le Linus avec un peu de retard quand même...
    Le seul point étonnant c'est que le code de l'ordonnanceur n'a jamais été modifié en profondeur depuis le début du siècle (2/3 broutilles par ci par là et pis c'est tout)
    Là, c'est une correction importante de l'algo.

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Le seul point étonnant c'est que le code de l'ordonnanceur n'a jamais été modifié en profondeur depuis le début du siècle (2/3 broutilles par ci par là et pis c'est tout)
    hum, t'es sûr de ça ? il me semble que justement il avait été complètement revu avec la sortie du noyau 2.6 à l'époque, notamment le passage d'un ordonnancement en O(1) au lieu de O(n)

  6. #6
    Candidat au Club
    Homme Profil pro
    chez moi
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chez moi
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut une décinnie de coeurs perdus !!!
    D'abords bravo aux chercheurs pour cette découverte, ensuite rien n'est perdu tout est à gagner car Linux sera (je le penses) en mutation perpétuelle.

    Par contre je n'ai pas aimé le ton de la conclusion:
    M. Linus Torvalds n'avait de boule de cristal pour savoir que les cpu auront plusieurs cœurs.

    Malgré que la communauté Linux n'est pas une firme type (La pomme ou les Fenêtres), mais les développeurs font de leurs mieux pour garder ce système en bonne santé.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    .
    Inscrit en
    Mai 2015
    Messages
    589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Angola

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2015
    Messages : 589
    Points : 0
    Points
    0
    Par défaut
    Là, c'est une correction importante de l'algo.
    Là, c'est une correction importante de l''EGO' de Linus

    M. Linus Torvalds n'avait de boule de cristal pour savoir que les cpu auront plusieurs cœurs.
    On affirme pas qu'on est le meilleur et qu'on est le seul a ne pas faire d'erreur.....

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par iciyas Voir le message
    M. Linus Torvalds n'avait de boule de cristal pour savoir que les cpu auront plusieurs cœurs.
    Il a dit cette célèbre phrase en 2001, quand les premiers processeurs à deux cœurs sont sortis : les IBM POWER4. Les systèmes à plusieurs processeurs sont plus anciens encore. Ce qu'il ne pouvait peut-être pas imaginer, c'est que les systèmes multicœurs deviendraient la norme pour tout le monde, pas nécessairement les machines de calcul (là où Linux est maintenant prédominant, mais pas vraiment vers 2001).

    Systèmes d'exploitation dans les 500 machines les plus rapides en juin 2001 :

    Nom : Capture.PNG
Affichages : 7696
Taille : 26,2 Ko

    Citation Envoyé par earhater Voir le message
    Yes reprocher une connerie de linus torvald dite il y a 15 ans alors qu'il n'avait même pas les outils pour débugger ces performances n'est pas intelligent
    Les outils de débogage ont été créés spécifiquement pour cette publication scientifique, ils n'existaient pas avant que l'équipe ne décide de se plonger dans cette problématique précise. Il n'y a en fait jamais eu de raison de les développer, puisque le problème était censé résolu .
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    hum, t'es sûr de ça ? il me semble que justement il avait été complètement revu avec la sortie du noyau 2.6 à l'époque, notamment le passage d'un ordonnancement en O(1) au lieu de O(n)
    Effectivement, il me semble que c'est entré en vigueur dans entre les versions de noyau 2.6.18 à 2.6.20 mais une évolution eu lieu aussi lors de la 2.6.22 (abandon des listes triées par niveau de priorité pour remplacer par un arbre de recherche rouge et noir).
    Il y eu un article dans la revue Linux Magazine France à ce sujet justement à l'époque (mais je ne me rappelle plus du numéro ^^' )

    Il est vrai que l'étude de l'ordonnancement des tâches n'est pas aussi trivial qu'il n'y paraît et est encore plus dur à "déboguer" sans des outils très spécifiques.
    Toutefois, je trouve que c'est une bonne chose de voir que des gens s'attèlent à la tâche et que le noyau linux va encore gagner en performance.

  10. #10
    Membre régulier
    Homme Profil pro
    Débutant
    Inscrit en
    Mai 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Débutant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 58
    Points : 100
    Points
    100
    Par défaut
    Linux+++++ Linus------
    L’œuvre dépasse son créateur!

  11. #11
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut Le noyau corriger grâce a la possibilité de l'expertise du logiciel libre
    Bonjour,

    À mon avis, c'est grâce aux faites que les logiciels y peut être expertisé qu'il a été corrigé par des grands chercheurs.

    Est-ce que vous savez si les expertises par des chercheurs universitaires se font sur d'autres logiciels libres ?


    Merci pour le renseignement


    Salutations
    Battant

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,
    Est-ce que vous savez si les expertises par des chercheurs universitaires se font sur d'autres logiciels libres ?
    Ici, c'est une recherche universitaire, qui entre dans un cadre scientifique. Ils sont doctorants, ou docteurs, enfin peu importe, ils font de la recherche. Aujourd'hui, ils ont regardé le cas de l'ordonnanceur, mais peut être ils étaient entrain d'écrire une thèse sur les ordonnanceur, ou un nouvel algorithme d'ordonnancement.
    Ce que je veux dire, c'est que les chercheurs s'intéresse là où il y a de la recherche, du progrès à faire. Je sais qu'il y a des étudiants qui avaient fait un projet sur Wine (suppression des fuites de mémoire), ou encore en France, des chercheurs ont travaillé sur l'économie d'énergie avec un système de priorisation des tâches et un nouveau sélectionneur de fréquence pour qu'il soit meilleur que le cpufreq - ondemand.
    Donc, la réponse et oui et non. Ils font sur plusieurs logiciels, mais ce n'est pas nécessairement une expertise, ni tous les logiciels sont passés à la loupe.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  13. #13
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pérou

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 182
    Points : 375
    Points
    375
    Par défaut
    Il faut bien être chercheur pour faire ce genre de travail_! J'ai du mal à imaginer le boulot pour un AMD-FX (8 processeurs se partageant 4 cash, deux à deux)_!

    Merci à Linus, même s’il a un caractère de cochon, (et aux hébergeurs de BBS) pour être à l’initiative de la plus grande œuvre commune des temps modernes.
    Merci aux chercheurs de tous poils qui ce penche sur ce merveilleux Linux (qui est mûr, lui, ce qui n'est pas le cas de son aîné Hurd )

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 156
    Points : 306
    Points
    306
    Par défaut
    Le truc, ce n'est pas de reprocher a Linus d'avoir fait une boulette, ça arrive a tout le monde (mais à lui quand même assez souvent ces derniers temps). Non, ce qu'on peut lui reprocher, ce sont ses affirmations péremptoires. Il se pense au dessus du lot, il se veut infaillible mais en fait il n'est pas meilleur qu'un autre. De par son comportement et ses conclusions "définitives", il a empêché souvent des améliorations possible de Linux d'être envisagées ou réalisées. Et ça, c'est impardonnable.
    Au niveau de l'esprit, je préfère des millions de fois un projet comme NetBSD, qui est vraiment collaboratif et pour lequel il n'existe pas de questions taboues, avec une ouverture d'esprit et de plateforme totale.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/06/2011, 12h36
  2. Réponses: 9
    Dernier message: 20/06/2010, 03h46
  3. 2000 à 2010 = une décennie de DVP !
    Par Droïde Système7 dans le forum Evolutions du club
    Réponses: 11
    Dernier message: 10/02/2010, 15h27
  4. Linux : Une faille dans le nouveau noyau 2.6.31
    Par ovh dans le forum Administration système
    Réponses: 20
    Dernier message: 23/09/2009, 13h48
  5. Linux : Une faille dans le nouveau noyau 2.6.31
    Par ovh dans le forum Actualités
    Réponses: 0
    Dernier message: 22/07/2009, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo