簡體   English   中英

確定群集上的批處理作業中的MATLAB並行池大小

[英]determining matlab parallel pool size in a batch job on a cluster

我想驗證集群是否配置正確,並且我想通過下面的命令將運行以下腳本,並將poolsize輸出到文本文件中,以及將屏幕輸出定向到的位置(通過批處理管理環境)。 相反,我只看到最后的輸出,錯誤文件中也沒有任何內容。 我該如何完成?

命令:

matlab -nosplash -nodesktop < test.m

腳本:

clear;
delete(gcp);
parpool;
poolsize = poolobj.NumWorkers
save poolsize.txt poolsize -ascii
exit();
poolobj = gcp('nocreate'); % If no pool, do not create new one.
if isempty(poolobj)
    poolsize = 0;
else
    poolsize = poolobj.NumWorkers
end
save poolsizefile poolsize;
poolsize
exit();

(后半部分從未使用過,因此我什至停止嘗試,因此退出了第一個出口。)

輸出:

>> >> Starting parallel pool (parpool) using the 'local' profile ... Warning: Found 1 pre-existing communicating job(s) created by pool that are
running, and 3 communicating job(s) that are pending or queued. You can use
'delete(myCluster.Jobs)' to remove all jobs created with profile local. To
create 'myCluster' use 'myCluster = parcluster('local')'. 

首先,我建議對MATLAB使用-r選項來運行腳本,因為在進行輸入時,有時會出現一些奇怪的現象,例如

matlab -nodisplay -r test

然后,我將第2行更改為state

delete(gcp('nocreate'))

以確保您不會創建僅用於刪除池的池。 然后,下一位

poolobj = parpool;
poolsize = poolobj.NumWorkers;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM