in

Comment calculez-vous la vitesse du processeur sur les processeurs multicœurs?

L’avènement des processeurs multicœurs économiques de qualité grand public soulève la question pour de nombreux utilisateurs: comment calculer efficacement la vitesse réelle d’un système multicœur? Un système 3Ghz 4 cœurs est-il vraiment 12Ghz? Continuez à lire pendant que nous enquêtons.

La question

Le lecteur SuperUser NReilingh était curieux de savoir comment la vitesse du processeur pour un système multicœur est réellement calculée:

Est-il correct de dire, par exemple, qu’un processeur à quatre cœurs tournant chacun à 3 GHz est en fait un processeur fonctionnant à 12 GHz?

Une fois, je suis entré dans un argument «Mac contre PC» (qui, soit dit en passant, n’est PAS le sujet de ce sujet… c’était de retour au collège) avec une connaissance qui a insisté sur le fait que les Mac n’étaient annoncés que comme des machines 1Ghz parce qu’ils étaient doubles -processeur G4 fonctionnant chacun à 500 MHz.

À l’époque, je savais que c’était de la folie pour des raisons que je pense évidentes pour la plupart des gens, mais je viens de voir un commentaire sur ce site Web à l’effet «6 cœurs x 0,2 GHz = 1,2 GHz» et cela m’a fait réfléchir à nouveau à savoir si il y a une vraie réponse à cela.

Il s’agit donc d’une question technique plus ou moins philosophique / profonde sur la sémantique du calcul de la vitesse d’horloge. Je vois deux possibilités:

  1. Chaque cœur fait en fait x calculs par seconde, donc le nombre total de calculs est de x (cœurs).
  2. La vitesse d’horloge est plutôt un décompte du nombre de cycles que le processeur effectue en l’espace d’une seconde, donc tant que tous les cœurs fonctionnent à la même vitesse, la vitesse de chaque cycle d’horloge reste la même quel que soit le nombre de cœurs existants. . En d’autres termes, Hz = (core1Hz + core2Hz +…) / cores.

Alors, quelle est la manière appropriée de désigner la vitesse d’horloge totale et, plus important encore, est-il même possible d’utiliser la nomenclature de vitesse monocœur sur un système multicœur?

La réponse

Contributeurs SuperUser Mokubai aide à clarifier les choses. Il écrit:

La principale raison pour laquelle un processeur quad-core 3GHz n’est jamais aussi rapide qu’un single core 12GHz est liée au fonctionnement de la tâche exécutée sur ce processeur, c’est-à-dire mono-thread ou multi-thread. Loi d’Amdahl est important lorsque vous considérez les types de tâches que vous exécutez.

Si vous avez une tâche qui est intrinsèquement linéaire et qui doit être effectuée avec précision étape par étape, comme (un programme extrêmement simple)

10: a = a + 1
20: goto 10 

Ensuite, la tâche dépend fortement du résultat de la passe précédente et ne peut pas exécuter plusieurs copies d’elle-même sans corrompre la valeur de 'a' car chaque copie aurait la valeur de 'a' à des moments différents et l’écrire différemment. Cela limite la tâche à un seul thread et donc la tâche ne peut être exécutée que sur un seul cœur à un moment donné, si elle devait s’exécuter sur plusieurs cœurs, la corruption de synchronisation se produirait. Cela le limite à la moitié de la puissance du processeur d’un système à double cœur, ou à 1/4 dans un système à quatre cœurs.

Maintenant, prenez une tâche telle que:

10: a = a + 1
20: b = b + 1
30: c = c + 1
40: d = d + 1
50: goto 10 

Toutes ces lignes sont indépendantes et pourraient être divisées en 4 programmes distincts comme le premier et s’exécuter en même temps, chacun étant capable d’utiliser efficacement toute la puissance de l’un des cœurs sans aucun problème de synchronisation, c’est ici Loi d’Amdahl entre dedans.

Donc, si vous avez une seule application threadée effectuant des calculs de force brute, le processeur unique à 12 GHz gagnerait haut la main, si vous pouvez en quelque sorte diviser la tâche en parties séparées et multi-thread, les 4 cœurs pourraient se rapprocher, mais pas tout à fait, d’atteindre, la même performance, selon la loi d’Amdahl.

La réactivité est la principale chose qu’un système multi-processeurs vous offre. Sur une machine à un seul cœur qui travaille dur, le système peut sembler lent car la plupart du temps pourrait être utilisé par une tâche et les autres tâches ne s’exécutent que par courtes rafales entre la tâche plus grande, ce qui entraîne un système qui semble lent ou saccadé. . Sur un système multicœur, la tâche lourde reçoit un cœur et toutes les autres tâches jouent sur les autres cœurs, faisant leur travail rapidement et efficacement.

L’argument de «6 cœurs x 0,2 GHz = 1,2 GHz» est nul dans toutes les situations sauf lorsque les tâches sont parfaitement parallèles et indépendantes. Il existe un bon nombre de tâches très parallèles, mais elles nécessitent toujours une forme de synchronation. Frein à main est un trancodeur vidéo qui est très bon pour utiliser tous les processeurs disponibles, mais il nécessite un processus de base pour garder les autres threads remplis de données et collecter les données avec lesquelles ils en ont terminé.

  1. Chaque cœur fait en fait x calculs par seconde, donc le nombre total de calculs est de x (cœurs).

Chaque cœur est capable de faire x calculs par seconde, en supposant que la charge de travail est adaptée en parallèle, sur un programme linéaire, tout ce que vous avez est 1 cœur.

  1. La vitesse d’horloge est plutôt un décompte du nombre de cycles que le processeur effectue en l’espace d’une seconde, donc tant que tous les cœurs fonctionnent à la même vitesse, la vitesse de chaque cycle d’horloge reste la même quel que soit le nombre de cœurs existants. . En d’autres termes, Hz = (core1Hz + core2Hz +…) / cores.

Je pense que c’est une erreur de penser que 4 x 3 GHz = 12 GHz, si le calcul fonctionne, mais vous comparez des pommes à des oranges et les sommes ne sont tout simplement pas correctes, GHz ne peut pas simplement être additionné pour chaque situation. Je le changerais en 4 x 3 GHz = 4 x 3 GHz.

Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

La nouvelle interface Gmail est lancée aujourd'hui

La nouvelle interface Gmail est lancée aujourd’hui

L’Assistant Google pourrait passer des appels téléphoniques pour vous un jour