• # numa

    Posté par (site web personnel) . En réponse à la dépêche Sortie du noyau Linux 3.5. Évalué à 9.

    Il y a quelques erreurs à propos des architectures numa:
    - Ce n'est pas pour de nombreux coeurs sur un même processeur, mais plutôt de nombreux processeurs en général. Elles existaient bien avant les puces multi-coeur.
    - NUMA pose autant (et même bien plus) de problèmes d'accès concurrents et de cohérence du contenu de la mémoire. Le vrai problème de SMP par rapport à NUMA, c'est que tous les processeurs étant sur un même bus, ils se partagent la bande passante. Alors qu'en NUMA, on répartit la mémoire sur plusieurs bus, et les processeurs sont répartis sur ces bus. Quand l'OS se débrouille bien, les processus tournant sur les processeurs ont leurs données dans la barrette mémoire juste en face, et donc n'ont pas besoin d'aller chercher à côté, et donc il n'y a plus de partage de bande passante mémoire, chaque paquet de processeur accède tranquillement à la barrette mémoire en face sans être dérangé par les autres.
    - Comme dit juste avant, en NUMA, bus et mémoire ne sont pas par coeur. Il y a des machines où c'est un bus+mémoire par paquets de 4 puces (e.g. machines itanium de Bull), il y a des machines où c'est par puce (e.g. Opteron), il y a des machines où il y en a 2 par puce, la moitié des coeurs de la puce étant en face de l'un, et l'autre en face de l'autre (magny-cours). Un bus+mémoire par coeur, ça ferait par contre vraiment beaucoup, en général c'est plutôt de l'ordre de 4 à 16 en tout. Utilisez l'outil lstopo pour savoir comment votre machines est faite ;)