我有一個有四個內核的CPU,但是規範顯示它有四個內核和八個線程。這怎麼可能?我可以平行運行八個線程嗎?cpu中的內核和線程
-1
A
回答
1
這個可以欺騙你。由於核心資源的虛擬重複,英特爾的HT技術確實允許操作系統爲每個物理核心安排兩個線程。
「技術上」,您可以運行八個線程。注意引號。這項技術的主要目的是不讓CPU資源浪費(例如,如果你的指令流水線有四條指令的寬度,確保它幾乎總是得到指令,因爲一個線程很少能達到這個目的)。但是,如果您的系統沒有足夠的資源來適應您的線程完成的計算,那麼實際上並沒有任何好處,或者更糟糕的是,您的性能會降低。例如,假設您的CPU只有四個浮點單元,而您的八個線程都在進行浮點計算。在這種情況下,你不能有平行性。另一種情況是當你所有的線程都在進行內存密集型計算時。從CPU到主內存的總線將飽和,並且八個線程絕對不會像您期望的那樣並行執行它們的代碼。關於HT的缺陷檢查這篇文章的更多信息:http://software.intel.com/en-us/articles/performance-insights-to-intel-hyper-threading-technology/
此外,請確保您瞭解系統中的各種線程級別。我討厭引用自己,但這裏有:multithreading on dual core machine?
2
根據CPU類型的不同,每個內核可以有兩個虛擬CPU(或線程)。效果使用Hyperthreading實現。
0
也許你應該在超線程看一看:
1
我猜你有一個超線程機器每個核心有兩個處理器。
是的,它可以同時運行8個線程。
0
它被稱爲superscalarCPU,其中流水線在每個內核中被複制,允許它並行地分派多條指令。請注意,英特爾稱之爲超線程,但它基本上是一樣的。
相關問題
- 1. CPU調度和內核級線程
- 2. 線程和內核
- 3. cpu核心與線程
- 4. 多CPU核心中的Java多線程
- 5. Linux:多核CPU中的進程和線程
- 6. 內核線程和POSIX庫
- 7. 與CPU核心的Java線程關係
- 8. java內核中的CPU內核數量和線程數量之間的關係是什麼?
- 9. cpu屏蔽和禁用內核中斷
- 10. 跟蹤線程內存和CPU消耗
- 11. 如何在不同的CPU內核上生成線程?
- 12. 在運行時找出特定線程的CPU內核
- 13. 每個CPU內核的線程分配(僅限Windows)
- 14. 在CPU內核數
- 15. CPU核心線程分類功能
- 16. SPARC CPU VS線程VS核心
- 17. 線程vs內核
- 18. 上下文開關和線程執行在不同的CPU內核
- 19. 爲什麼Linux內核線程會佔用cpu
- 20. JVM如何在CPU內核之間傳播線程?
- 21. Linux內核線程在CPU硬件線程上映射1:1或m:n嗎?
- 22. 線程和CPU親和力
- 23. 的Node.js - 針對CPU內核
- 24. 如何設置Java線程的cpu核心親和力?
- 25. 關於CPU核心數量的多線程和並行度
- 26. 將cpu內核分配給進程 - Linux
- 27. UNIX SNMP - 系統和內核CPU時間
- 28. 線程(在java或C++程序中)和CPU中的內核數量之間的關係是什麼?
- 29. Linux內核模塊中的內核線程之間的通信
- 30. Java單線程CPU使用和多線程CPU使用
http://en.wikipedia.org/wiki/Hyper-threading or ... CPU的規格。 – 2012-02-13 20:14:47
谷歌:超線程 – Mysticial 2012-02-13 20:14:51
我總是驚訝地看到人們投票回答了一個問題,卻不知道爲什麼。我知道這個問題很簡單,可以通過簡單的谷歌搜索來回答,但仍然可以。 – Nettogrof 2012-02-13 20:26:43