打开运行matlab的实例

时间:2017-08-02 08:08:34

标签: bash matlab cluster-computing

我在群集中运行了MATLAB脚本,使用了命令

===
* 22-23,23,0-1 * * *
===

我现在可以看到它不会在我放置的时间内完成。在我对节点进行ssh之后,有什么方法可以打开正在运行的MATLAB实例,并在程序中停止它,这样我就可以访问它到目前为止生成的变量了吗?

2 个答案:

答案 0 :(得分:1)

似乎Matlab不允许这样做,除非您事先在Matlab脚本中明确地包含它。例如,请参阅this answer

make your script 'checkpointable'总是好的,这样您就可以从脚本停止的位置轻松重启。

最后,关于Octave的一个词,在错误终止该程序时可以选择create a dump of the variables automatically

答案 1 :(得分:0)

假设您正在使用SLURM工作负载管理器,您可以尝试以下操作。

首先使用srun --pty bash -i打开一个交互式bash会话。如果您使用squeue -u <username>检查作业队列,则应该找到一个bash会话:

squeue bash

现在使用断点运行您的Matlab代码,以便停止执行。例如,文件runTestJob.m可能类似于:

function runTestJob

   A = rand(5);
   B = randn(5);

   keyboard; % add breakpoint 
end

现在运行代码,

srun matlab -nodisplay -singleCompThread -r "runTestJob;quit"

这应该直接在终端中为您提供Matlab访问权限,以便您可以像在命令窗口中使用Matlab一样使用Matlab:

matlab in terminal

完成后,请务必关闭交互式会话并释放资源:

scancel <JOBID>

希望有所帮助!