嗨我正在使用matlab並行計算工具箱來執行並行計算。我的筆記本電腦是2核心4線程,所以我假設任務可以連接到4個作品?但是,當我輸入命令「matlabpool open」時,只有2名工人被連接。誰能告訴我如何指定要連工人的確切人數,這樣我就可以分配任務的工人比內核的數量,使計算更有效的數量越多?謝謝!Matlab並行計算工具箱僅爲一個內核分配1個工作人員嗎?
回答
您可以告訴matlab使用特定數量的工人,但它不會讓您使用超過最大數量,這可能是
物理內核的數量
版本和羣集相關。 R2012b允許在本地羣集中使用12名工作人員,即R2014a allows more than 12。
從help matlabpool
:
...
matlabpool [poolSize]
...
matlabpool
或matlabpool OPEN
使用與指定的池大小默認 羣集配置文件啓動一個工作池通過該配置文件。您 還可以指定使用matlabpool OPEN <poolSize>
池的大小,但要注意 多數集羣具有的,他們可以啓動進程的最大數量。
% Start a worker pool using the local profile with 2 workers:
matlabpool local 2
更新:
我打了一下週圍。在R2012b上詢問16名工人給我的錯誤
您請求最少16名工作人員,但本地羣集只允許12名工人。
這意味着這個版本不可能有更多的工人。但是,如果我叫與12名工人在當地游泳池,我得到的錯誤
您申請最低12名工人,但集羣「本地」有NumWorkers屬性設置爲允許最多4名工人。上運行更多的工人比這個(最多可爲本地羣集最多12個)一個 溝通工作,提高NumWorkers屬性爲 集羣的價值。本地羣集的NumWorkers默認值是本地機器上的核心數量。
因此,根據您的版本,您可能無法使用超過12名工作人員。如果你看到後者錯誤,你可以重新定義你的集羣,讓更多的內核。複製local
池:
mycluster=parcluster('local');
mycluster.NumWorkers=48;
matlabpool(mycluster,48);
...
matlabpool close;
謝謝安德拉斯!我可以再問一個問題:我使用的服務器似乎有4個處理器,每個處理器有12個內核。所以應該有48名員工進行並行計算。但是當我啓動matlabpool時,只有12名工作人員被連接。是否可以將任務分配給所有4個處理器,以便48名員工可以同時工作?謝謝! – Ruby
我在@horchler的評論之後編輯了我的問題,指出核心數量不是最大值。我懷疑,如果matlab不允許你手動使用超過12個內核(錯誤告訴你最大爲12),那麼你可以做的不多。 –
- 1. 與MATLAB和並行計算工具箱
- 2. Matlab並行計算工具箱,在parfor循環中動態分配工作
- 3. 工作並行計算工具箱
- 4. 並行計算工具箱fminsearch
- 5. 並行計算工具箱是否支持Matlab編碼器?
- 6. 計算爲每個員工
- 7. MATLAB實驗室工作人員分配的內存
- 8. 將工作分配給工作人員
- 9. matlab工具箱
- 10. 當在MATLAB 2013b並行工具箱中使用SPMD設置時在並行工作人員之間分配內存的方式
- 11. 速度Matlab並行工具箱GPU?
- 12. 將工作人員分配到工作區的算法
- 13. 在Matlab的並行計算工具箱中,我如何選擇將哪些代碼行發送給每個工作/內核?
- 14. 沒有並行計算工具箱的並行化
- 15. VSTS中的工作細節僅計算未分配的工作
- 16. Docker工具箱無法分配內存
- 17. 我們可以擁有比MATLAB內核數量更多的工作人員嗎?
- 18. 我應該使用並行計算工具箱還是Matlab分佈式計算服務器?
- 19. 匈牙利算法:我儘可能多地爲工作人員分配工作
- 20. c#分數計算器 - 工作箱?
- 21. 允許每個工作人員註冊並將子任務分配給其他工作人員
- 22. Dask分佈式 - 如何爲每個工作人員運行一個任務,使該任務在工作人員可用的所有核心上運行?
- 23. Matlab計算機視覺工具箱可以檢測多個附近或接近的人類嗎?
- 24. Matlab中的統計工具箱
- 25. Excel:計算員工在一個項目中的工作時間
- 26. 如何使用MATLAB的並行計算工具箱在覈心i7處理器中顯着提高速度?
- 27. H圓頂轉換內置到MATLAB?例如,在MATLAB工具箱中的一個?
- 28. 對象檢測使用MATLAB計算機視覺工具箱
- 29. 計算機視覺系統工具箱MATLAB
- 30. 如何在MATLAB pde工具箱中區分人臉?
你可以* *使用每個物理核心的多個工作,但你可能會看到很少或幾乎沒有影響。見[這裏](http://www.mathworks.com/products/matlab/choosing_hardware。html#_Hardware_Considerations)和[here](更多信息請參見http://www.mathworks.com/matlabcentral/answers/80129-definitive-answer-for-hyperthreading-and-the-parallel-computing-toolbox-pct)。 – horchler
[Matlab:多線程與多核之間的區別]以及[線程vs核心的Matlabpool數量]的可能重複(http://stackoverflow.com/questions/10459354/matlab-difference-between-multithreading-and-multicore)( http://stackoverflow.com/questions/14468886/matlabpool-number-of-threads-vs-core)。 – horchler
@horchler我認爲最大數量甚至可能取決於版本。我曾經遇到過4次的限制,這就是爲什麼我認爲這與內核數量有關。 R2012b最多有12個本地池,[R2014a允許更多](http://stackoverflow.com/questions/25476287/maximum-number-of-workers-in-a-parallel-loop-local-cluster-with -matlab-r2014a) –