Résolu Performances et nombre de coeurs

pasducinema

Habitué
Bonjour,
Une question me turlupine, je n'arrive pas à trouver une réponse qui me convainc totalement.
Si on considère toutes les gammes de processeurs, il en existe à un, deux, quatre, six, huit, dix, douze, seize voire vingt quatre cœurs. Or les performances n'augmentent pas aussi vite que leur nombre, loin de là. Si le passage de deux à quatre cœurs a une incidence immense qui semble répondre à une logique de multiplication des performances, lorsqu'on a va au delà de quatre cœurs, on gagne peu (je considère évidemment les applications profitant du multithread) alors que les prix s'envolent. Alors je sais que les fréquences ne peuvent pas être les mêmes avec quatre cœurs et avec dix, mais cela ne suffit pas à justifier que de quatre cœurs à huit on gagne à peine 25% par exemple... Auriez vous des explications?
Merci pour votre aide
Vous devez être connecté pour voir les images.
Vous devez être connecté pour voir les images.
 

steelheart

Grand Maître
bonjour,

en général on choisit son processeur en fonction de son usage.

ex: un gamer ne tirera à fréquence égal presque aucun gain de performance entre en 5960X (8 cœurs) et un 4790K (4 cœurs) alors que pour du montage vidéo ou de la CAO la différence se fera clairement sentir. (toutes les applications ne profite pas d'un nombre important de cœurs)

après plus le processeur possède un grand nombre de cœur plus la fréquences sera revue à la baisse
 

pasducinema

Habitué
merci pour ta réponse, mais ce que je ne comprends pas c'est que pour des applications de vidéo, quand tu regardes des comparatifs d'encodage, entre un 4 cœurs et un 8, tu gagnes certes, mais peu, de l'ordre de 40% de performances au maximum. La fréquence très légère plus basse du 5960 par rapport au 4790 ne suffirait donc pas à expliquer qu'on ne gagne pas plus.


 

job31

Admin tout frippé
Staff
Bonjour,

Cela dépend surtout de comment le programme est conçu et peut tirer parti des cœurs présents.
 

pasducinema

Habitué
Bonjour Job,
Dirais tu alors que les tests publiés sur les sites comme celui-ci ne mettent pas en valeur les processeurs avec de nombreux cœurs en ne les utilisant pas avec des programmes qui en tirent suffisamment parti? J'ai pourtant cherché des relevés pour du multithread
Merci


 

AccroPC2

Fou du PC
Staff
Bonjour,

Il est difficile d'écrire un programme qui tire la pleine puissance de tous les coeurs, pour la bonne et simple raison que toutes les opérations ne peuvent pas être réalisé en parallèle. Avec un programme monothreadé tu peux facilement le lancer autant de fois que tu as de coeur sans constater de réelles dégradation, pour des programmes multithreadé c'est nettement moins vrai.

bye
 

pasducinema

Habitué
Merci AccroPC,
donc si je te comprends bien, les processeurs avec beaucoup de cœurs ont peu d'application? C'est une pure question de nombre de cœurs trop important à partir d'un certain nombre ou toutes les applications multithreadées ne peuvent tirer parti pleinement du processeur quel qu'en soit le nombre de cœurs? Autrement dit pour qui un processeur à 8 ou 16 cœurs a-t-il un intérêt?


 

AccroPC2

Fou du PC
Staff
Les applications professionnelles savent en tirer partie, par exemple les bases de données. Un thread correspond souvent à 1 connexion utilisateur, 1 connexion ne pourra pas utiliser plus d'un cpu ( sauf dans qq cas, mais on ne va pas débattre du sujet ici ) mais on peut facilement gérer de nombreuses connexions en parallèle.
 

pasducinema

Habitué
Cela veut donc dire que les tests dont j'ai mis des graphs plus haut ne sont pas appropriés pour mettre en valeur les processeurs avec de nombreux cœurs?
et qu'en est-il du traitement vidéo?


 

g3dg3d

Nouveau membre
Bonjour
Ecrire une application en Multi Thread c'est assez complexe. D'autre part certain traitement sont parfois plus rapide si on les programmes dans une seule tache plus tôt que dans plusieurs taches. D'autres part si l'on fait du Multi Thread il vaut mieux avoir beaucoup de RAM et que toutes les Thread soient lancé dans la phase d'initialisation quitte à ceux qu'ils soient "suspendus" ou en attente de ressource. Comme on le voit c'est pas toujours "gagner". Malgré tout les nouveaux Os "utilisent et abusent" les Thread. Sion au démarrage pendant la phase démarrage par exemple de Windows 10 "on irait boire un café....." Je caricature un peu mais je ne suis pas très loin de la réalité. Il faut me pas oublier que le prix de la RAM à fortement baissé et que les restrictions dû à la RAM ont presque totalement disparus.
G3D [s:p/1ier]
 

pasducinema

Habitué
Merci G3D pour ta réponse qui résume et complète parfaitement cet échange,
On pourrait donc dire que la plupart des applications ne sont pas à la hauteur des processeurs avec de nombreux cœurs? Qu'ils sont souvent sous-exploités? Mais faut-il alors privilégier la fréquence par rapport au nombre de cœurs? Personnellement c'est le traitement vidéo qui m'intéresse...
Merci encore à tous!


 

g3dg3d

Nouveau membre
Bonjour
En effet la plupart des applications ne sont pas en "phase" avec les couples (RAM + nb Cœurs+ Fréquences). Ecrire une application avec Multi Thread est déjà une tache compliquée en soi mais la rendre souple au point qu'elle puisse s'adapter dans n'importe contexte complexifie le problème. Il ne faut oublier que quand l'on créer une application c'est l'aspect commercial qui compte avant tout. Donc on en fait juste assez" et pas trop. Pour le traitement de la vidéo par exemple la suite d'Adobe. Le prix d'entrée pour un particulier est carrément hors de prix. Il y a 4 paramètres a prendre en compte:
a) le maximum de cœurs,
b) La taille de la RAM,
c) la fréquence du processeur,
d) la taille du Swap disque (fixe ou variable) et de préférence sur un SSD.

Dans cas mon j'ai 16G0 de RAM, 512G0 de SSD et I7 5820K ==> la suite Adobe Première s'exécute rapidement.
Pour être honnête et France cette configuration a un coup. Il ne faut pas se voiler la face.

NB: Il y a deux vitesse celle de l'évolution des couples (RAM, nb cœurs+ la fréquence du processeur) vs celle du temps d'une application complexe.
les deux n'évoluent pas à la même vitesse.

G3D
 

Haldriel

Helper
Bonjour,

En plus, il ne faut pas oublier qu'un logiciel complexe ca se développe sur plusieurs années et qu'on ne change pas de base technologique si facilement que ca. Et dans le domaine du logiciel PC, il faut également compter sur un parc vaste aux performances et capacités hétérogènes.

Beaucoup de logiciels sont conçus pour être en monothread car ils ont été développés avant 2005-6-7, et qu'a l'époque le double cœurs c'était super rare.

Beaucoup de logiciels sont actuellement conçus pour deux, voire quatre cœurs pour les logiciels "haut de gamme" car c'est la grande base de machines actuelles installées

Du coup, si on veut un logiciel optimisé spécifiquement pour 6-8-10-12 cœurs, voire plus, ont est obligé de faire l'impasse sur la majorité des machines pour ne viser qu'une cible de niche.

Cordialement,
Haldriel
 

drul

Obscur pro du hardware
Staff
A noter tout de même un processeur plein de coeur est très appréciable si tu utilises plusieurs programmes, même monothread, en même temps. Une autre utilisation qui requiert un grand nombre de coeur et l'utilisation de plusieures machine virtuelles (j'en ai parfois 2 ou 3 en plus de ma machine de base et je t'assure que mon dual core hyperthreader n'apprécie pas ...)
 

pasducinema

Habitué
De nouveau merci G3D,
Tu veux dire que pour le moment très peu d'application peuvent tirer profit des plus gros CPU, y compris la suite Adobe?


 

pasducinema

Habitué
Bonjour Drul et merci pour ta réponse,
Je comprends bien ce que tu dis, mais dans l'absolu, plusieurs applications peuvent cohabiter sur le même cœur....?
Quand tu encodes une vidéo dans un quelconque logiciel, celui-ci fait appel à un autre application parfois, par exemple quicktime, or il est impossible de voir quelle application fait appel à quelle ressource précise du processeur, les cœurs semblent être tous "chargés" de la même manière.


 

pasducinema

Habitué
Bonjour Haldriel,
Est-ce que je te comprends bien en disant que du coup une application est conçue pour un nombre précis de cœurs? Pourquoi les fabricants ne communiquent-ils pas cette donnée pour avoir la bonne configuration? Merci beaucoup à toi


 

Haldriel

Helper


Bien sur que c'est le cas : tu adaptes ton code en fonction de la cible de machines, c'est comme en automobile : tu conçois le moteur en fonction du reste, notamment le châssis.

On ne code pas pareil pour une machine du milieu des années 90, que sur un Rasberry Pi, un PC bureautique de 2015 ou encore un supercalculateur.

Si ta question c'est est-ce que le nombre de thread a employer est codé en dur : non pour les applications multithread, ca serait trop rigide, vu la variabilité des machines. Par contre c'est plus ou moins optimisé pour 2-4-6+ coeurs

Et les éditeurs de logiciels (au moins ceux commercialisés) communiquent sur ce point : c'est les configurations minimales, recommandées et optimales.

Parce que le nombre de cœurs ne fait pas tout dans un PC, la fréquence du processeur, la mémoire vive, le support physique de stockage (HDD/SSD/flash, etc), le chipset graphique, etc : tout cela joue, dans des proportions valables selon les programmes, il faut donc penser cela comme un tout.

Un logiciel est conçu pour la configuration recommandée, testé pour vérifier que ca marche en configuration minimale, et la configuration optimale est une indication de la machine idéale pour profiter du logiciel dans les meilleurs conditions et au maximum de sa conception.
 

pasducinema

Habitué
Du coup la configuration recommandée dingue d'un logiciel comme DaVinci Resolve 12 est sérieuse?
Dual Intel Xeon E5-2697 v3 (dual 14 core) (dual 8 core is minimum recommended)


 

drul

Obscur pro du hardware
Staff
A savoir toutefois que le scaling en dual CPU est moins bon qu'avec un proc multicore.
(en gros un proc 8 coeur >> que deux proc 4 coeurs).
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 033
Membres
1 586 389
Dernier membre
ROCKET8
Partager cette page
Haut