Multicoeur ou pas Multicoeur?

Salut,

La question du jour: il vaut mieux un hardware Multicœur ou pas?

Pour optimiser le multi-threading et plus précisément les mutex/valeur atomique il vaut mieux un gestion hardware bonne. Cela permet d’avoir de bonne performances lorsque un entier ou un bout de code ne doit être accédé que dans un thread à la fois. Cela veut dire garder des valeurs dans la mémoire commune, cela peu être le L3, la mémoire principale, bref quelque chose de plus lent que le L1 du cpu.

Cela n’as pas d’influence si cette partie du code est peu utilisé face au reste du code (peu de synchronisation des threads et peu de passage de donnée d’un thread à l’autre).

Si vous avez que un cpu (forcer cela dans votre noyau linux), un certain nombre d’optimisation peuvent être faite (garder les lock en L1 par exemple), peu de changement de contexte avec l’utilisation des threads, …

Bien souvent, essayer d’exploiter le multi-cpu demande plus d’effort ou le code résultant est plus lent. En mono cpu vous êtes plus optimisé, et en mono-thread plus optimisé mais vous n’exploitez pas tout les coeurs (pour un serveur cela n’est pas grave vu que les autres application tournant sur votre serveur se répartisse les coeurs restant).

Donc je vais préférer un bon monocoeur performant avec le noyau qui vas avec, ou un quad coeur, mais pas un dual coeur, même si la mode est a cela.

Bye