我認爲這個話題說明了一切。在並行和多核編程之間有什麼區別?謝謝。並行和多核編程有什麼區別?
2
A
回答
5
多核是一種並行編程。特別是它是一種MIMD設置,其中處理單元不分配,而是共享一個公共存儲區,甚至可以共享像MISD設置的數據(如果需要的話)。我相信它甚至不同於多處理器,因爲多核心設置可以共享一定級別的高速緩存,並且因此比不同核心上的CPU更有效地合作。
通用並行編程還將包括SIMD系統(如GPU)和分佈式系統。
1
區別不在於處理方法,只是在軟件運行的硬件上。並行編程遇到了一個問題,將工作負載分解爲可以並行處理的小塊(分而治之類型問題等)或可以彼此獨立運行的函數。將該軟件放置在多核硬件上,並由操作系統對其進行優化,以在不同內核上運行。這使它具有更好的性能,因爲您爲創建並行工作而創建的每個線程現在都可以運行,而無需在單個處理器/內核上佔用CPU週期。
+0
謝謝。我懂了。如果我正確地讀了你的話,你就是說,如果我可以用類比的話,多核編程就是並行編程技術的實現。這是準確的嗎? – 2010-11-23 14:41:59
0
多核系統是並行系統的一個子集。不同的系統會有不同的內存架構,每個架構都有自己的挑戰。一個系統如何處理緩存一致性?是否涉及NUMA等等。
相關問題
- 1. Python中並行編程中的Pool.map和Process有什麼區別?
- 2. 內核和用戶模式編程有什麼區別?
- 3. 多線程與併發vs並行與異步編程有什麼區別?
- 4. 並行和虛擬有什麼區別
- 5. 內核線程和用戶線程有什麼區別?
- 6. 聲明式編程和命令式編程有什麼區別?
- 7. 調試和編譯有什麼區別?
- 8. 內核和程序對象有什麼區別?
- 9. 燕尾和併發有什麼區別?
- 10. a = b = c和編程分別賦值有什麼區別?
- 11. .NET在開發多線程應用程序和並行編程之間有什麼區別?
- 12. Linux內核版本有什麼區別?
- 13. 有什麼區別`和$(Bash中有什麼區別?
- 14. 「換行」和「回車」有什麼區別?
- 15. 行動和事件有什麼區別?
- 16. 叉子和線程有什麼區別?
- 17. 手柄和線程有什麼區別?
- 18. 代碼和程序有什麼區別?
- 19. openMP和線程池有什麼區別?
- 20. 時間多線程和超線程之間有什麼區別?
- 21. 有什麼區別? :和||
- 22. &&和||有什麼區別?
- 23. 「/」和「/ *」有什麼區別?
- 24. 有什麼區別:。!和:r!?
- 25. ==和===有什麼區別?
- 26. Appender和〜有什麼區別?
- 27. $ @和$ *有什麼區別?
- 28. is和=有什麼區別?
- 29. #.00和#。##有什麼區別?
- 30. `==`和`is`有什麼區別?
你需要在你的問題上更具體一些。 – 2010-11-23 14:37:46