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

Hardware Discussion :

Optimisation de parallélisation sur Xeon 20-Core (ProLiant BL460C) : gestion du NUMA et latences


Sujet :

Hardware

  1. #1
    Invité de passage
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Avril 2026
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2026
    Messages : 1
    Par défaut Optimisation de parallélisation sur Xeon 20-Core (ProLiant BL460C) : gestion du NUMA et latences
    Salut à tous,
    Je sollicite vos lumières sur un sujet qui me fait m’arracher les cheveux depuis quelques jours. Dans le cadre d'un projet de calcul intensif, je travaille sur des serveurs lames ProLiant BL460C équipés de processeurs Xeon 20 cœurs cadencés à 2.5GHz. Sur le papier, c'est une configuration de rêve pour du parallélisme, mais en pratique, je rencontre des comportements assez frustrants.
    Un point spécifique qui m'interpelle dans la documentation et mes tests concerne la gestion de la topologie NUMA. J'ai remarqué que dès que mon application sature les 20 cœurs physiques, les temps d'accès à la mémoire deviennent totalement instables. C’est un peu rageant de voir une machine de cette envergure perdre en efficacité à cause de la latence entre les nœuds mémoire alors que la puissance brute est là.
    À titre personnel, j'ai passé une bonne partie de mes nuits à monitorer l'affinité des threads. On oublie souvent que sur un châssis aussi compact qu'une lame BL460C, la gestion thermique et le partage des ressources entre les lames peuvent influencer le comportement du Turbo Boost. J'ai l'impression que le scheduler de l'OS a parfois du mal à comprendre que déplacer un thread sur un cœur "libre" mais distant peut coûter plus cher en performances que d'attendre un cycle local.
    Avez-vous déjà travaillé sur ce type d'architecture à 20 cœurs ? Je me demande si le problème vient d'une mauvaise configuration de mon bios (Workload Profile) ou si c'est une limite intrinsèque de la gestion de la mémoire partagée sur des processeurs avec autant de cœurs.
    Observation : On dirait que plus on multiplie les cœurs, plus le goulot d'étranglement se déplace de la puissance de calcul brute vers la simple logistique des données en RAM. Est-ce que le multithreading "standard" a encore un sens sans une gestion manuelle de l'affinité sur ce genre de monstre ?

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 464
    Par défaut
    Salut Gesav72643 et bienvenue dans le forum Developpez.net.

    Je ne suis pas un spécialiste du parallélisme, mais je crois que le mieux est de gérer par toi-même le goulot d'étranglement et non laisser la machine le faire. Il suffit de mettre en attente le ou les prochain(s) processus jusqu'à ce qu'un thread se libère de la machine. Ce n'est pas bien compliqué à faire puisque je l'ai fait sur mon ordinateur pour résoudre des petits problèmes de programmation. Admettons que tu laisses toujours un thread de libre, celui que ta machine utilise pour gérer les autres, je pense que cela va résoudre ton problème de saturation.

  3. #3
    Membre Expert Avatar de Ti-Slackeux
    Homme Profil pro
    Robotique
    Inscrit en
    Août 2007
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Robotique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 019
    Par défaut
    Ca fait un moment que j'ai pas touché d'aussi gros bébé.

    Le soucis, imho, c'est un soucis d'affinité CPU et mémoire locale pour justement éviter de se faire casser les perfs
    par des migrations de threads.
    Je crois qu'il faut aller voir côté threads pinning et l'allocation mémoire numa.
    Il faut, je pense, une gestion très fine de l'affinité CPU et mémoire.
    Température et workload n'auront qu'un effet secondaire dans tout çà.
    Pas sur mais l'OS pourrait induire des soucis aussi >.<

    hth,

Discussions similaires

  1. spinlocks sur Xeon Quad Core
    Par fg006 dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 27/10/2011, 22h37
  2. Experts Mysql : Optimiser une requete sur codes postaux
    Par El Riiico dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/01/2006, 18h00
  3. Hack sur XEON ???
    Par tom75 dans le forum Apache
    Réponses: 4
    Dernier message: 11/12/2005, 15h16
  4. [Configuration] PHP5 sur Linux Fedora Core 2
    Par Amnesiak dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 21/11/2005, 18h26
  5. Réponses: 2
    Dernier message: 29/08/2005, 16h12

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