打开 运行 个 matlab 实例

Open running instance of matlab

我是集群中的运行一个MATLAB脚本,使用了命令

matlab -nodisplay <LocalVariation.m

我现在可以看到它不会在我设置的墙上时间内完成。有没有什么办法可以在我通过 ssh 连接到节点后打开 运行 MATLAB 实例,并在程序中停止它,这样我就可以访问它到目前为止生成的变量?

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

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

完成后,确保关闭交互式会话并释放资源:

scancel <JOBID>

希望对您有所帮助!

似乎 Matlab 不允许这样做,除非您事先明确地将其包含在您的 Matlab 脚本中。例如,参见

此外,make your script 'checkpointable' 总是好的,这样您就可以轻松地从脚本停止的地方重新启动。

最后说一下 Octave,它可以选择 create a dump of the variables automatically 在程序错误终止时。