Matlab过程终止于slurm

时间:2014-09-03 18:25:38

标签: matlab slurm

我有两个问题似乎与我有关:

首先,是否有必要在我的sbatch命令中显式终止Matlab?我查看了几个在线slurm教程,在某些情况下,作者包括一个退出命令:

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

在某些人中他们不会:

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

其次,在作业中创建并行池时,我几乎总是收到以下警告:

警告:找到4个由池创建的预先存在的通信作业 正在运行,以及2个待处理或排队的通信作业。您可以使用 '删除(myCluster.Jobs)'删除使用profile local创建的所有作业。至 创造' myCluster'使用' myCluster = parcluster(' local')'

为什么会发生这种情况,有没有办法避免因为我而发生在我自己和他人身上?

2 个答案:

答案 0 :(得分:1)

这取决于你如何启动Matlab。请注意,您的两个示例使用不同的方法来运行matlab脚本;第一个使用-r选项

matlab -nodisplay -r "matrixmultiply, exit"

而第二个使用文件中的stdin重定向

matlab < runjob.m

在第一个解决方案中,Matlab进程将在脚本完成后保持运行,这就是为什么需要exit命令的原因。在第二个解决方案中,当到达文件末尾时,stdin关闭时,Matlab进程终止。

如果您没有结束matlab进程,Slurm将在达到最大分配时间时将其终止,如您提交脚本中的--time选项或默认群集(或分区)值所定义。 / p>

为避免您提及的警告,请务必在作业结束时系统地使用matlabpool close。如果您在同一节点上运行了多个Matlab实例,并且您有一个共享主目录,那么无论如何您都可能会收到警告,因为我相信有关打开的matlab池的信息存储在您家中的隐藏文件夹中。重新启动可能没有帮助,但找到这些文件并删除它们(但要小心,并询问系统管理员)。

答案 1 :(得分:0)

为避免警告,您必须删除

.matlab / local_cluster_jobs /

目录