L'impact du cache L3 sur la performance – vaut-il un système à double processeur?

J'achèterai un nouveau système haut de gamme et j'aimerais avoir une meilleure idée de savoir si un système Xeon à double processeur (je regarde le nouveau Xeon E5-2687W haut de gamme) pourrait, de façon réaliste, fournir un Amélioration notable de la performance en raison du doublement du cache L3 (20 Mo par CPU).

(Cela s'ajoute à l'avantage supplémentaire occasionnel en raison du doublement des noyaux et de la RAM).

Mon scénario d'utilisation est, en gros, que j'ai plusieurs applications en arrière-plan exécutées à tout moment – 3 ou 4 applications de compression / sauvegarde de données, un serveur Web à faible impact, une ou deux machines virtuelles à un moment donné (généralement assez inactif) et Peut-être 20 programmes utilitaires qui utilisent une partie notable (mais petite) des noyaux CPU. Au total, lorsque je n'utilise pas l'ordinateur, environ 25% de la puissance totale de l'UC est utilisée dans mon système actuel i7-970 6 fils (12 fils).

Lorsque je fais du travail de routine, l'utilisation du processeur dépasse souvent 50% et touche parfois 75% à 80%.

Le Xeon E5-2687W n'est pas seulement un i7 de deuxième génération (donc devrait améliorer les performances pour cette raison), mais a également 8 cœurs (16 threads) plutôt que 6 noyaux. Pour cette raison, je m'attends à courir dans la gamme de CPU de 75%, même moins fréquemment. Néanmoins, la possibilité de doubler les noyaux et la RAM est une considération.

Cependant, en fin de compte, je crois que cette décision résulte du fait que le doublement du cache L3 offrira une amélioration notable. Il existe de nombreux points de repère et beaucoup de discussions concernant la puissance du processeur. Cependant, je trouve très peu de discussion sur l'utilisation du cache L3 et comment les augmentations du cache L3 (comme le doublement avec les processeurs doubles) affectent les performances.

Par exemple: s'il n'y a que deux processus en cours d'exécution, mais chacun bénéficie d'un grand cache L3 (comme cela pourrait être le cas pour les processus en arrière-plan qui analysent fréquemment le système de fichiers), peut-être que les performances globales du système pourraient sensiblement s'améliorer avec deux processeurs Si un seul noyau est actif sur chaque processeur – en raison de chaque processus comportant le double du cache L3 effectif.

J'espère que quelqu'un a le sens des avantages d'augmenter (ou de doubler) la taille du cache L3.

Remarque: la CPU que je considère (le Xeon E5-2687W) possède un cache L3 de 20 Mo, de sorte qu'un système avec CPU double aurait un cache L3 de 40 Mo.

Comme toujours avec des questions de mise en cache, la réponse serait «entièrement dépend de votre charge de travail». Le cache ne sert à rien que si vos processus en cours passent beaucoup de temps à accéder à la mémoire et présentent une localité de référence notable pour l'adressage de la mémoire (et ne sont pas satisfaits des caches L1 / L2 plus petites présentées par noyau pour cette matière).

Le fait d'avoir un nombre élevé de processus exécutés dans différents threads augmente les chances de frapper le cache partagé et diminue ainsi les gains de performances qui auraient éventuellement été obtenus autrement. C'est aussi la raison de l'augmentation de la taille du cache avec un nombre de noyaux augmenté: plus vous utilisez de threads en compétition de mémoire, plus le cache partagé est important, il est probable qu'il soit nécessaire d'être utile.

Il y a un article de Oldish de Tom's Hardware comparant deux anciennes P4 avec et sans cache L3 pour un certain nombre de charges de travail graphiques / graphiques. Les nombres sont des ordures, tout comme l'ensemble de la référence, mais il contient une belle explication de l'architecture de mise en cache en général et la mise en cache L3 en particulier.

La ligne de fond: vous ne remarquerez probablement pas la différence, mais si vous avez besoin des nombres exacts, vous devriez acheter les deux CPU et exécuter votre charge de travail sur les deux pour comparer les temps d'exécution.

Les gens disant "une simple augmentation de 20 Mo dans le cache L3" ne savent tout simplement pas de quoi ils parlent. Une augmentation sensible de la taille du cache pour une architecture donnée est susceptible de provoquer une augmentation sensible des performances, même avec une charge moyenne. Cela est plus vrai, lorsque vous pensez à l'architecture turbo-boost mise en œuvre dans les ponts sablés et les processeurs de pont de lierre.

J'ai eu la chance d'expérimenter cela personnellement dans plusieurs étapes différentes de l'architecture x86 / x86_64: Sempron vs Athlon, Celeron vs Pentium 4, Pentium4 vs Athlon, Pentium4-m contre Pentium-m, Pentium 4 vs Xeon, i7 vs Xeon E5. Chaque fois que le cache est plus grand (généralement doublé ou presque doublé).

Que le coût de doublage du cache soit abordable, cela correspond à vous. Mais Xeon est mieux pour la stabilité, car ils prennent en charge la mémoire ECC et de telles technologies, qui sont évidemment indispensables dans certaines applications (comme les simulations 3D pour le moulage sous pression en aluminium, ce qui est mon cas).

À partir de votre description de ce que vous faites et de la façon dont votre système actuel le gère, je ne peux que me demander pourquoi vous souhaitez le remplacer. Au mieux, le cache L3 donnerait un coup de pouce, mais à un coût exceptionnel, mais dans votre cas d'utilisation décrit, vous ne pouvez pas vous attendre à voir une différence résultant d'une simple augmentation de 20 Mo du cache L3.