2

Supposons que j'ai un processus qui se compose de deux tâches indépendantes idéalement (idéalement, pour supprimer le surdébit de communication). Serait-il plus rapide de le faire sur un processeur monocœur de vitesse 3GHz ou un processeur à deux cœurs de 1,5 GHz?Processus multi-thread sur multi-core ou single-core doubler la vitesse?

Bien sûr, dans le cas d'un processeur à deux cœurs, le travail est idéal pour parallélisation. Et pour le noyau unique, les deux tâches seront temps partagé.

Mise à jour:questition autrement dit

Un processeur single-core de double de la vitesse est toujours une meilleure option qu'un processeur à deux cœurs?

Répondre

2

Idéalement indépendant 2 tâches fonctionnant sur OS Unideal comme Windows 2012 fonctionnera plus rapidement sur 2 cœurs à 1,5 GHz, que sur 1 cœur à 3GHz en raison de l'élimination de la surcharge de commutation de contexte de thread.

Malheureusement, il y a très peu de tâches idéalement indépendantes.

+0

Merci pour la réponse. Alors, est-ce que je peux dire qu'un processeur simple de noyau du double de la vitesse est toujours une meilleure option qu'un processeur à deux fils? – KhaledWas

+1

Non, Khaled. Cela dépend vraiment des tâches et du système d'exploitation, des tâches du système d'exploitation. En général, il est plus ou moins correct de dire que 4 core 3GHz sera plus rapide que 8 core 1.5GHz pour la plupart des tâches. Mais avec Windows, le processeur single core est toujours désavantagé en raison de l'exécution de nombreux processus du système d'exploitation. –

+0

vous voulez dire que ces nombreux processus d'OS en cours d'exécution prendront plus de temps de partage de temps que celui de la communication entre les tâches parallèles? – KhaledWas

2

La question telle que publiée est sévèrement sous-spécifiée. Premièrement, il semble confondre les performances avec la fréquence du processeur. Même avec des microarchitectures de base identiques, les latences de mémoire ne sont pas fixées dans les comptages de cycles. Traverser une liste chaînée d'un milliard d'éléments est une charge de travail (artificielle) qui dépend de la latence de la mémoire, où deux threads parallèles à «demi-vitesse» seraient plus rapides que le découpage temporel. Si les fréquences inférieures ne résultent pas d'un binning de produits, d'une configuration d'économie d'énergie ou autre, mais d'un pipeline moins profond (à la même largeur), le processeur "plus lent" aura une pénalité de mauvaise prédiction une latence inférieure en cycles à la même capacité de cache, conduisant à des instructions plus élevées par cycle sur la plupart des charges de travail.

Même avec des microarchitectures identiques, deux cœurs évitent également le surdébit du contexte de préchauffage de la mémoire cache. Le coût d'un changement de contexte n'est pas seulement le temps nécessaire pour appeler le système d'exploitation, mais le planificateur du système d'exploitation (avec seulement deux threads actifs sur deux cœurs, la surcharge du planificateur d'exploitation serait légèrement inférieure car il n'y a pas d'autres threads prêts mais deux fois plus d'interruptions de minuterie) et permuter le contenu du registre. (S'il est exécuté en mode de traitement par lots, une telle surcharge de contexte est évitée.)

Un autre facteur à prendre en compte est de savoir si les deux tâches rencontrent des goulots d'étranglement indépendants. Par exemple, si une tâche est extrêmement intensive en calcul mais que l'autre est liée à la bande passante de la mémoire principale, les exécuter en parallèle peut fournir de meilleures performances que le découpage temporel; avec un découpage temporel, le potentiel de bande passante de la mémoire est inutilisé pendant les tranches de temps de calcul intensif.

Encore un autre facteur est l'interférence avec les ressources contraintes. Par exemple, la mémoire DRAM peut souffrir de conflits de banque qui peuvent réduire considérablement la bande passante effective. Si l'adressage et le minutage de la mémoire provoquent des conflits maximum pendant le fonctionnement en parallèle, alors la bande passante effective sera réduite. Un effet similaire peut être généré à partir d'une associativité limitée dans un cache de dernier niveau partagé. Les processeurs plus récents ont également tendance à être thermiquement limités, de sorte que le processeur à double fréquence pourrait ne pas être en mesure de maintenir cette fréquence sous une utilisation maximale si cette fréquence n'est pas garantie dans des conditions de virus de puissance. est susceptible de ne pas rencontrer cette contrainte de densité de puissance.