術語
回答
實驗室和工人是MathWorks的術語傳遞更多信息,與他們的意思大致相同。
甲實驗室或工人基本上是MATLAB的實例(不前端)。您可以運行它們中的幾個,並且可以在自己的機器上運行它們(僅需要並行計算工具箱),也可以在羣集上遠程運行它們(需要Distributed Computing Server)。當您執行並行代碼(例如parfor
循環,spmd
塊或parfeval
命令)時,代碼由工作人員並行執行,而不是由主要的MATLAB執行。
並行計算工具箱在最近的版本中已經改變和發展了很多功能,並且改變和開發了它用來描述工作方式的術語。在某個時候,在運行spmd
區塊時將它們稱爲實驗室很方便,但是在運行parfor
循環時或者在處理作業和任務時可以將它們稱爲實驗室。我相信他們現在正在朝着總是稱其爲workers
(儘管在命令labSend
,labReceive
,labBroadcast
,labindex
和numlabs
)中存在傳統。
核心和進程是不同的,並不是自己與MATLAB有任何關係。
A 核心是您的處理器的物理部分 - 您可能在臺式機中安裝了雙核或四核處理器,或者您可能有權訪問超過此類型的超大型計算機。通過擁有多個內核,您的處理器可以同時完成多項任務。
A 進程(大體上)是您的操作系統正在運行的程序。儘管OS同時運行多個程序,但它通常通過交錯每個進程的操作來實現。但是如果你有權訪問多核機器,那麼這些操作可以並行完成。
所以你通常想告訴MATLAB爲你的機器上的每個核心啓動一個worker。這些工作人員中的每一個都將作爲操作系統的一個進程運行,並且最終將每個核心並行運行一名工作人員。
以上是相當簡化,但我希望給出一個大致準確的圖片。
編輯:從答案評論移動線程的描述。
線程又有所不同了。線程本身也不是與MATLAB有關的。
讓我們回到過程一會兒。我之前沒有提到的一件事是,操作系統爲每個進程分配一個特定的內存塊,其他進程不應該觸及,所以他們很難彼此交互並且搞砸了。
A 線程就像一個進程內的進程 - 它是一個進程運行的操作流。通常,每個線程的操作都是交錯的,但是如果您有多個內核,它們也可以跨內核並行化。
但是,與進程不同,它們都共享一個內存塊,這是可以的,因爲它們全部由同一個程序管理,所以如果它們允許進行交互,它應該不太重要。
定期MATLAB自動使用多個線程並行許多內置的操作(如矩陣乘法,svd
,eig
,線性代數等等) - 這是沒有你做任何事情,以及你是否有並行計算工具箱。
但是,MATLAB工作人員都是單線程運行,因此您可以完全控制如何進行並行化。
我認爲工人是過程的同義詞。術語「核心」與硬件有關。實驗室是一種允許工作人員相互溝通的機制。每個工人至少有一個實驗室,但可以擁有更多。
這一塊討論的可能是有用的
我希望這裏有人會以更嚴格的方式
- 1. 語言翻譯技術術語詞典
- 2. 術語:術語'saga'的含義
- 3. 術語:: ANSIColor術語不支持顏色
- 4. 計算術語x術語矩陣
- 5. 相關的技術術語
- 6. 編程術語
- 7. Node.JS和術語
- 8. 時間術語
- 9. 矩陣術語
- 10. 模板術語
- 11. 鍵和術語
- 12. Java術語
- 13. 混淆術語
- 14. 測試 - 術語
- 15. 忘記術語
- 16. Android術語
- 17. mixin術語
- 18. 基因本體論術語水平與基因本體術語術語類型
- 19. 如何修改術語列表中特定術語後的所有術語?
- 20. 將技術術語從英語翻譯成其他語言?
- 21. 在雙語術語列表
- 22. 算術語句if語句
- 23. SQL語句的術語?
- 24. 頂部taxnomy術語
- 25. ElasticSearch空間術語
- 26. 編程術語表
- 27. 雲計算術語
- 28. SOA建模術語
- 29. 術語聚類庫?
- 30. Lucene術語查詢
我認爲你剛剛得到了這個位置 - 我只是在spmd塊的情況下將工人稱爲「實驗室」。儘管R2006a中引入了當時稱爲「並行工作」的術語,並且當時還沒有「spmd」塊 - 但直到R2008b纔出現。 – Edric 2015-03-13 17:06:22
實驗室和線程是否是同義詞? – user2574723 2015-03-16 00:21:44
有關線程的描述,請參閱編輯我的答案。 – 2015-03-16 13:13:28