Comment puis-je décider des cœurs réels vs virtuels si j'ai besoin d'un calcul intensif?

0

Supposons que j’ai un ordinateur appelé A avec un processeur à deux cœurs et hyperthreading, c’est-à-dire qu’il a 2 cœurs à 4 threads (je comprends que cela peut alimenter 4 processus simultanément), supposons également que j’ai un autre ordinateur appelé B a 2 cœurs mais pas d'hyperthreading (si j'ai bien compris, deux processus peuvent être alimentés simultanément) supposons maintenant que A et B ont la même fréquence d'horloge de 3,4 GHz. Supposons que j'ai écrit un algorithme qui calcule une moyenne, mais que j'ai conçu l'algorithme de telle sorte que deux processus, dans cet esprit, quelle opération informatique finit en premier?. (supposons que l'entrée est la même et que la seule différence entre A et B est l'hyperthreading).

client
la source
Est-ce que c'est un devoir? (Ce n'est pas grave, mais sa formulation me rappelle que j'étais à l'école.)
Sirex
Ça dépend. Mais très probablement, ils finiraient en même temps.
Matt H
1
Ce n’est pas mon devoir, j’ai essayé d’être très spécifique et j’ai posé la question de manière compréhensible.
Invité

Réponses:

0

Tant que Windows évite les 2 "faux" cœurs sur la machine hyperthreaded, il n'y aura aucune différence.

Si Windows décide de lancer les deux threads sur les processeurs cpu0 et cpu1 (le faux), il en résultera une baisse significative des performances.

J'ai du mal à trouver des références sur le Web, mais j'imagine que le système d'exploitation Windows est déjà assez intelligent.

L'algorithme sera plus rapide sur la machine hyperthreaded, si vous l'exécutez avec 4 threads

Michael
la source
IMXP, Windows jette des discussions autour de beaucoup. Il y a de fortes chances que, sur la machine HT, les cœurs HT soient touchés pendant un court laps de temps, en dépit du fait que Windows est intelligent et conscient des cœurs réels par rapport aux faux, ce qui pourrait ajouter un impact mineur sur les performances. Par exemple, exécutez un travail zip maximal et vous verrez que taskmgr utilise tous les processeurs de manière assez homogène, aucun noyau unique n’atteignant même 100%. Cela indique un changement de contexte très rapide ... Linux processus à un noyau pour des périodes de temps beaucoup plus longues.
Michael