2014-09-03 187 views
1

我有兩個問題對我來說似乎有關:slurm中的Matlab進程終止

首先,是否有必要在我的sbatch命令中明確終止Matlab?我已經通過幾個在線SLURM教程一看,在某些情況下,作者包括exit命令:在創建時

http://www.buffalo.edu/ccr/support/software-resources/compilers-programming-languages/matlab/PCT.html

二:

http://www.umbc.edu/hpcf/resources-tara-2013/how-to-run-matlab.html

而且在一些他們不這樣做一個作業中的並行池,我幾乎總是得到以下警告:

警告:找到4個預先存在的通信作業(s)由池創建 正在運行,以及2個正在處理或排隊的作業。您可以使用 'delete(myCluster.Jobs)'刪除使用配置文件本地創建的所有作業。要 打造「myCluster中」使用「myCluster中= parcluster(」本地「)」

這究竟是爲什麼,是有什麼辦法避免它發生在自己和對他人,因爲我的?

回答

1

這取決於你如何啓動Matlab。請注意,您的兩個示例使用不同的方法來運行matlab腳本;第一個使用-r選項

matlab -nodisplay -r "matrixmultiply, exit" 

,而第二個使用標準輸入重定向從文件

matlab < runjob.m 

在第一解決方案,Matlab的過程中會留下運行腳本完成後,即這就是爲什麼在那裏需要exit命令。在第二個解決方案中,Matlab進程終止,因爲stdin在達到文件結尾時關閉。

如果您沒有結束matlab進程,Slurm會在達到最大分配時間時終止它,如您在提交腳本中的--time選項所定義的或由默認的集羣(或分區)值所定義的。

爲避免您提到的警告,請務必在工作結束時系統性地使用matlabpool close。如果你有多個Matlab實例在同一個節點上運行,並且你有一個共享的主目錄,那麼你可能會得到警告,因爲我相信關於開放matlab池的信息存儲在你家中的隱藏文件夾中。重新啓動可能無濟於事,但找到這些文件並將其刪除(請小心,並詢問系統管理員)。

+0

因此,如果過程是左,運行時,它就會被終止如果有的話?是否需要重新啓動節點? Matlab的仍在運行的實例會引起我對預先存在的工作的警告信息? – Evan 2014-09-03 19:46:13

+0

我已經更新了我的答案 – damienfrancois 2014-09-03 19:55:09

0

避免你的警告,你必須刪除

.matlab/local_cluster_jobs/

目錄