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

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    23 688
    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 : 23 688
    Points : 149 037
    Points
    149 037

    Par défaut À quel point le noyau Windows peut-il se mettre à l’échelle de centaines de cœurs ?

    Trente-deux processeurs à vingt-huit cœurs, pour un total de huit cent nonante-six cœurs de calcul (le double en fils d’exécution, puisqu’il s’agit ici de processeurs Intel Xeon Scalable Platinium 8180). Voici pour la réponse à la question. Cela fait tellement de cœurs que le gestionnaire des tâches de Windows doit réduire au minimum chaque cœur et mettre une barre de défilement. À côté de cela, les deux téraoctets de mémoire vive font pâle figure (même si elle est tellement peu utilisée que Windows ne peut qu’afficher un taux d’utilisation de zéro pour cent).


    Selon Microsoft, ce genre de machine est prévue pour une utilisation en centre informatique, dans un futur pas trop lointain. On peut penser à certains clients d’Azure, notamment dans le secteur de la défense, qui exigent des machines qui leur sont exclusivement réservées. Il n’empêche que ce genre de machines n’est plus aussi courante qu’auparavant, vu l’explosion du nombre de cœurs par processeur : avant 2010, les processeurs montaient à huit cœurs, il n’était pas déraisonnable d’en assembler huit dans une machine, pour monter à trente-deux ou soixante-quatre cœurs ; aujourd’hui, les processeurs x86 montent jusque vingt-huit (Intel) ou trente-deux (AMD) cœurs, ce qui limite le besoin de ces configurations.

    On peut néanmoins se demander comment Microsoft arrive à de tels nombres de processeurs par machine : Intel présente ses Xeon 8180 comme prévu pour huit sockets par machine, non trente-deux. Pour ce faire, la solution avancée par Intel est d’utiliser les trois liens QPI fournis par chaque processeur pour l’interconnexion : chaque processeur est directement connecté à trois autres ; les quatre derniers processeurs doivent passer par une étape intermédiaire pour la communication.


    La seule solution imaginable est de se rapprocher des réseaux informatiques : au lieu de connecter directement les processeurs entre eux, on peut les relier à des commutateurs QPI. Cette solution permet d’augmenter le nombre de processeurs par machine, mais au prix d’une latence plus élevée : il faut traverser plus d’équipements avant d’atteindre le processeur cible. Ce genre de solution est déjà utilisée pour les superordinateurs, mais pas au niveau d’une même machine : des cartes réseau extrêmement performantes sont connectées à chaque processeur (comme InfiniBand), avec des débits très élevés (de l’ordre de cinquante gigabits par seconde par lien en Infiniband EDR) et des latences très faibles (une demi microseconde ajoutée par chaque adaptateur réseau, toujours pour Infiniband EDR). Des liens QPI pourraient être plus rapides encore, vu qu’ils ne doivent pas s’étendre sur plusieurs dizaines de mètres, mais uniquement à l’intérieur d’un boîtier.

    Revenons à Windows. Comment le noyau peut-il gérer autant de cœurs ? Surtout que, selon Microsoft, le même noyau est utilisé pour toutes les machines Windows : des Surface RT, avec des processeurs ARM assez peu puissants (NVIDIA Tegra), jusqu’aux plus grosses machines virtuelles disponibles sur Azure (plus de septante cœurs). Les difficultés proviennent de l’ordonnanceur utilisé, c’est-à-dire la partie du noyau qui se charge de décider quel fil d’exécution de quel processus utilise quels cœurs et à quels moments. Windows utilise un ordonnanceur préemptif avec des priorités : chaque fil d’exécution dispose de sa propre priorité ; le fil qui a la plus haute priorité est exécuté en priorité, quitte à arrêter l’exécution d’un autre fil avant qu’il ait terminé (ce qu’on appelle la préemption). Par exemple, un processus interactif aura une priorité plus grande qu’un processus qui effectue principalement des calculs ou des opérations d’entrée-sortie : quand l’utilisateur clique sur un bouton, il veut que l’application réagisse de suite, pas quand tous les calculs à effectuer sont réalisés.

    Pour ce faire, l’ordonnanceur a évolué au fil des années, en passant d’une seule file de fils d’exécution prêts à être exécutés (Windows 2000) à une file par processeur (Windows 2003). Cette solution ne garantit pas que tous les processus prioritaires sont exécutés rapidement, mais uniquement par processeur — ce qui fonctionne assez bien quand les cœurs disponibles sont assez rapides, mais pas sur des tablettes. Une idée sous-jacente est que, si un processus change en permanence de processeur ou de cœur, ce cœur devra recharger des données depuis la mémoire centrale au lieu d’utiliser ses caches. La solution suivante a été d’utiliser une file par processeur (des files réservées aux processus qui ont une affinité avec un cœur de calcul en particulier) plus une file partagée pour les tâches interactives (Windows 8.1).

    En parallèle, l’ordonnanceur a commencé à implémenter des mécanismes d’équité entre les utilisateurs (Windows 7), en plus de la priorité : si un utilisateur utilise énormément les ressources de calcul avec des fils d’exécution à haute priorité, les autres utilisateurs (qui lancent des tâches avec une priorité moindre) ne devraient pas trop le ressentir.

    Ces solutions ont assez bien fonctionné jusqu’au moment où certaines applications gourmandes, comme un serveur SQL, utilisent plus de soixante-quatre cœurs. Le problème était que le nombre de fils d’exécution tentant d’être ordonnancés était trop élevé, alors que tout le monde tentait d’utiliser la même ressource : il fallait donc attendre que cette ressource soit disponible avant d’exécuter des instructions. Ces ressources sont extrêmement présentes : des événements, des sémaphores, des entrées-sorties, etc. Un des gros apports de Windows 7 a été la gestion plus fine des verrous sur ces ressources : au lieu d’un verrou global, chaque ressource est verrouillée indépendamment des autres. Windows 10 a continué ces améliorations avec le partitionnement des groupes de processeurs : certains processus ont un accès exclusif à un groupe de processeurs/cœurs, que les autres processus ne pourront plus utiliser. C’est notamment grâce à cela que le mode Jeu fonctionne pour améliorer la performance d’une application en particulier : l’utilisateur n’est pas intéressé par les autres applications pendant un certain temps, ces dernières devront donc se partager quelques miettes restantes de puissance de calcul.

    Finalement, avec Windows 10 pour ARM, une dernière fonctionnalité a dû être ajoutée : l’ordonnancement hétérogène. Bon nombre de processeurs ARM sont conçus avec une architecture big.LITTLE : certains cœurs sont très puissants, mais consomment énormément d’énergie. Pour garantir une bonne réactivité et économiser de la batterie, Windows ordonnance donc les processus les moins importants sur les cœurs les moins puissants (l’API Windows propose d’ailleurs un mécanisme pour marquer un processus comme peu important).
    Ce n’est que grâce à toutes ces techniques et à leurs raffinements successifs que Windows arrive à gérer autant de cœurs, dans des architectures aussi hétérogènes.

    Sources : One Windows Kernel, 896 Xeon Cores in One PC: Microsoft’s New x86 DataCenter Class Machines Running Windows.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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
    Membre habitué
    Inscrit en
    mai 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : mai 2003
    Messages : 90
    Points : 153
    Points
    153

    Par défaut

    https://ark.intel.com/products/12049...ache-2-50-GHz-
    10 k$ chq, donc 320 k$ rien que pour les CPU, la machine doit bien taper proche du million rien qu'en hardware...

    Et à propos de l ordonnanceur, il n y a pas que chez ARM que les Cores sont hétérogènes, cela arrive aussi en x64 avec le dernier Threadripper 32C 2990WX donc seul la moitié des core sont reliés à la RAM, et donc l autre moitié doivent passer par un autre core pour accéder la RAM.
    Anandtech soulevait le problème récemment: https://www.anandtech.com/show/13446...dripper-2990wx
    Microsoft a encore du boulot pour mieux ajuster sont ordonnanceur avec ces nouvelles plateformes!

  3. #3
    Expert éminent

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2003
    Messages
    5 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : juin 2003
    Messages : 5 636
    Points : 9 988
    Points
    9 988
    Billets dans le blog
    3

    Par défaut

    C'est pas une news que tu as rédigé mais un quasi article !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : septembre 2014
    Messages : 5
    Points : 10
    Points
    10

    Par défaut

    il y a longtemps que cela existe

    Caractéristiques de bullion :

    Une capacité mémoire exceptionnelle, jusqu'à 24 To (téraoctets), pour gérer les applications Big Data, « in-memory » et en temps réel, par exemple avec l’appliance SAP HANA® pour laquelle bullion a obtenu la certification 16To,

    Les serveurs de dernière génération, bullion S, équipés de 384 cœurs de processeur Intel® Xeon® (famille E7v4) et de 4To de RAM, ont atteint une performance maximale de 14100 - 13600 Base - selon la norme SPECInt_rate2006. Cette nouvelle performance est la preuve de la pertinence des choix technologiques pour ces serveurs bullion, une gamme modulaire et évolutive de 2 à 16 sockets.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Historien
    Inscrit en
    mai 2018
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Algérie

    Informations professionnelles :
    Activité : Historien

    Informations forums :
    Inscription : mai 2018
    Messages : 403
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par dt999 Voir le message
    il y a longtemps que cela existe

    Caractéristiques de bullion :

    Une capacité mémoire exceptionnelle, jusqu'à 24 To (téraoctets), pour gérer les applications Big Data, « in-memory » et en temps réel, par exemple avec l’appliance SAP HANA® pour laquelle bullion a obtenu la certification 16To,

    Les serveurs de dernière génération, bullion S, équipés de 384 cœurs de processeur Intel® Xeon® (famille E7v4) et de 4To de RAM, ont atteint une performance maximale de 14100 - 13600 Base - selon la norme SPECInt_rate2006. Cette nouvelle performance est la preuve de la pertinence des choix technologiques pour ces serveurs bullion, une gamme modulaire et évolutive de 2 à 16 sockets.
    +1 pour les bullion qui sont d’excellente machine.

    il me semble que les bullions sont remplacé par des sequana non ?
    je rappellerais aussi que le CEA à la 14ieme machine la plus puissante du monde à base de sequana et de bxi interconnect.

    par contre sans vouloir troller, qui installe Windows sur ce genre de machine ? je n'ai jamais vue de super calculateur sous windows uniquement sur du linux... et des serveurs d'une tels puissance jamais non plus sous windows et des serveurs monosoket j'en compte les doigts d'1 main.

    par contre j’espère que MS améliorera l'ordonnance de windows pour les threadripper 32coeurs d'amd (windows déplace les applications d'un coeur a un autre sans réel raison ce qui plomb les perf)

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    23 688
    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 : 23 688
    Points : 149 037
    Points
    149 037

    Par défaut

    Citation Envoyé par ShigruM Voir le message
    par contre j’espère que MS améliorera l'ordonnance de windows pour les threadripper 32coeurs d'amd (windows déplace les applications d'un coeur a un autre sans réel raison ce qui plomb les perf)
    Linux avait aussi ce genre de problème jusqu'il y a peu… https://algo.developpez.com/actu/986...ur-jusque-137/
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : septembre 2014
    Messages : 5
    Points : 10
    Points
    10

    Par défaut

    j'ai 2 bullio au bureau avec 128 coeur et un autre en 80, avec 4 to de tam chacun et ssd et du raid 5 sous windows et sql serveur
    et ca fonctionne tres bien

  8. #8
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2009
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2009
    Messages : 1 572
    Points : 3 811
    Points
    3 811

    Par défaut

    Citation Envoyé par Eric80 Voir le message
    10 k$ chq, donc 320 k$ rien que pour les CPU, la machine doit bien taper proche du million rien qu'en hardware...
    Si en plus de ca faut payer une licence windows !

Discussions similaires

  1. [N'importe quel langage] Clic droit Windows
    Par datym dans le forum Windows
    Réponses: 2
    Dernier message: 19/07/2006, 15h28
  2. Remplir une "bulle" avec du texte. Quel point de départ?
    Par MasterOfChakhaL dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 15/06/2006, 14h01
  3. quel serveur FTP sous Windows ????
    Par dm38 dans le forum Internet
    Réponses: 5
    Dernier message: 24/01/2006, 15h30
  4. [Mathématiques] A quel point les utilisez vous ?
    Par Évariste Galois dans le forum Etudes
    Réponses: 138
    Dernier message: 17/08/2005, 11h20

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