【发布时间】:2013-05-20 14:58:36
【问题描述】:
一位同事有一个包含交互式代码的 MATLAB startup.m 文件(它调用命令 questdlg 询问他希望在哪个项目目录中工作)。
直接运行 MATLAB 时,这对他来说效果很好。但是,他还需要并行运行 MATLAB 代码,并启动了 matlabpool。
启动时,matlabpool 中的工作人员正在运行他的startup.m 文件,到达questdlg 然后挂起(无限期,或直到 Ctrl C)。
一个简单的解决方案是从他的startup.m 中删除交互式代码,因为这并不是必需的。
但是有没有办法检测这个startup.m 是否由正在启动的工作人员运行——类似于isdeployed 或ismcc?然后,他可以保留他认为有用的交互式代码,但仅在不启动 worker 时执行。
getCurrentWorker 命令似乎是需要的,但我相信它只在任务执行期间有效,而不是在启动时有效。
【问题讨论】:
标签: parallel-processing matlab