Können zwei Prozesse gleichzeitig auf einem CPU-Kern ausgeführt werden?

8

Können zwei Prozesse gleichzeitig auf einem CPU-Kern ausgeführt werden, der über Hyper Threading verfügt? Ich lerne aus dem Internet. Aber ich sehe keine klare Antwort.

Bearbeiten: Danke für die Diskussion und teilen! Mein Portemonnaie, um meine Frage hier zu posten, ist nicht über paralleles Computing zu diskutieren. Es wird zu groß sein, um hier besprochen zu werden. Ich möchte nur wissen, ob eine Multithread-Anwendung mehr von Hyper Threading profitieren kann als eine Multi-Prozess-Anwendung. Nach weiterem Lesen habe ich folgende Lernhinweise.

1) Ein Hyper-Threading-Technologie-fähiger CPU-Kern hat zwei Sätze von CPU-Status und Interrupt-Logik. Inzwischen hat es nur einen Satz von Ausführungseinheiten und Cache. (Ich habe noch nicht untersucht, was Pipeline ist)

2) Multi Threading profitiert von Hyper Threading nur, wenn in einem ausgeführten Thread Latenz auftritt. Ich denke, dass dieser Punkt genau auf den allgemeinen Grund für warum und wann Software-Programmierer Multi-Thread verwenden kann. Wenn die Multi-Thread-Anwendung optimiert wurde. Es kann keinen Nutzen aus dem Hypter-Threading ziehen.

3) Wenn der CPU-Status dem Prozessstatus zugeordnet wird, ist Marc meiner Meinung nach richtig, dass mehrere Prozessanwendungen sogar mehr von der Hyper-Threading-Technologie profitieren können.

4) Wenn der CPU-Hersteller "thread" sagt, sieht es so aus, als ob sich sein "thread" von dem thread unterscheidet, den ich als Java-Programmierer kenne?

    
Yiyu Jia 18.01.2012, 20:10
quelle

2 Antworten

2

Nein, ein CPU-Kern mit Hyperthreading hat immer noch nur eine Ausführungspipeline. Obwohl es für das darüberliegende Betriebssystem als zwei CPUs erscheint, wird immer nur eine Anweisung ausgeführt.

Hyperthreading sollte es der CPU ermöglichen, einen Thread weiter auszuführen, während ein anderer Thread blockiert war, und darauf wartete, dass eine Ressource oder eine andere Operation abgeschlossen wird, ohne zu viele Stufen der Pipeline leer und nutzlos zu lassen. Dies geht zurück auf die 4 Tage des Pentium mit seiner absurd langen Pipeline - ein Stand war im Wesentlichen katastrophal für Effizienz und Durchsatz, und Hyperthreading erlaubte Intel, die CPU mit anderen Dingen beschäftigt zu halten, während sie von dem Stand aufräumten.

    
Marc B 18.01.2012 20:15
quelle
1

Während Marc B's Antwort ziemlich genau die definitive Zusammenfassung von HT ist, möchte ich nur einen kleinen Beitrag leisten, indem ich diesen Artikel verlinke, der viele Dinge über HT aufklären sollte: Ссылка

    
Tudor 21.01.2012 10:37
quelle