並行軟件?
回答
http://en.wikipedia.org/wiki/Thread_(computer_science)
在計算機科學,從一個 計算機程序的叉 執行結果爲兩個或更多 同時運行任務的線程。 執行線程和 進程不同於運行 系統到另一個進程,但在大多數情況下, 線程包含在 進程中。 多個線程可以在同一進程內共享 資源和內存等,而 不同進程不共享這些資源。
大多數現代編程語言都以各種方式支持多線程(甚至是最新版本的Javascript)。 :-)
優點和缺點可以取決於任務。如果你需要做很多處理,那麼多線程可以幫助你把它分解成更小的工作單元,每個CPU可以同時獨立工作。但是,多線程代碼的編寫和維護通常比單線程代碼更復雜。
您仍然可以在只有一個處理器的機器上編寫/運行多線程代碼。儘管只有一個處理器來執行這些任務,但操作系統將通過快速切換上下文並一次爲每個線程執行一些指令來確保它們同時發生。
您可能熟悉的並行任務的一些專用硬件是可在大多數新計算機上找到的GPU。在這段視頻中,流言終結者展示出一種單線程CPU上繪製之間的差異,以及多線程GPU:
http://www.youtube.com/watch?v=XtGf0HaW7x4&feature=player_embedded
並行軟件可以本機利用計算機上的多個內核/ cpus或有時跨多臺計算機。例子包括圖形渲染軟件和電路設計軟件。
對於多處理器感知軟件以外的其他缺點並不確定是否會導致CPU浪費。
是「並行軟件」需要一個特定的硬件或編程語言?
是和是。
第一個很簡單。大多數現代CPU(比m6800更新)具有硬件功能,可以一次執行多個任務,但不一定同時執行兩個任務。例如,當定時器中斷關閉時,CPU可以保存它正在做的事情,然後開始做其他事情。這些任務同時運行。即使沒有這些,你也可以讓兩臺機器之間進行某種連接(比如通過一個空調制解調器適配器進行簡單的串行連接),並且它們都可以並行工作在同一個任務上。
大多數新型CPU(不僅僅是現代但最新)的CPU都具有內置的並行計算資源。這些多核CPU實際上可以同時處理兩個或多個任務,每個核心有一個任務,並且具有特殊功能使這些任務合作更有效率。
第二個需要特殊的軟件工具,如並行語言,在某些方面是並行計算最難的部分。如果您是廚房中唯一的人,那麼從一開始到下一個接一個的烹飪方法,直到所有的菜都煮熟爲止,做飯時很容易。如果你想通過增加更多的廚師來加快速度,你必須小心一點,不要踩在彼此的腳趾上。
處理這種最簡單的方法是使用一個線程庫,它提供了一些工具,以便多個任務可以安排不會互相打開。這並不像標記程序那麼簡單,系統負責處理其餘部分,相反,您必須編寫每個任務,以便在每個可能會干擾其他任務的地方與任何其他任務進行通信。
- 1. 並行軟件設計
- 2. 爲xaml合併軟件
- 3. 最適合並行的硬件/軟件解決方案?
- 4. 微軟的CCR vs任務並行庫
- 5. C++命令行軟件
- 6. 更改軟件的行爲
- 7. 軟件測試FAT執行
- 8. C#開源軟件將受益於並行化?
- 9. 通過Flash下載並自動運行軟件試用版?
- 10. 爲什麼plyr軟件包不使用我的並行後端?
- 11. 一個軟件如何運行另一個軟件
- 12. 錯誤ITMS-90207:軟件包不包含可執行軟件包
- 13. 更換Golang標準軟件包並在
- 14. 簽署併發布debian軟件包
- 15. 面部識別/合併軟件
- 16. PowerShell DSC。下載並安裝軟件
- 17. 軟件xslt調試軟件
- 18. PC軟件的GPS軟件
- 19. 術語:軟件界面,軟件組件,軟件單元,軟件模塊
- 20. MS Deploy可以執行軟件包並進行轉換,但不能部署嗎?
- 21. Bower無法找到一個軟件包並且無法安裝新軟件包
- 22. 微軟稱IE9具有並行的JavaScript渲染和執行
- 23. 通過軟件包名稱執行軟件包名稱以獲取Sql Server存儲的軟件包
- 24. 如何啓用軟件收集軟件
- 25. 軟件批判:開源軟件
- 26. 通過Ubuntu軟件安裝軟件包
- 27. 在線軟件跟蹤軟件
- 28. 間諜軟件行爲信息
- 29. 編譯軟件包在Windows命令行
- 30. 哪個TeX發行版或軟件?
並行性!=併發性。當使用併發時,單核上的性能不會有任何提高(併發可能包括並行性,但並不總是) – Wes 2012-03-18 20:39:50