在打开(单独的)多个 sessions/windows 的情况下在 Matlab 中使用 PCT

Using the PCT in Matlab with (separate) multiple sessions/windows open

在我的 Mac 上,我可以同时打开两个 Matlab windows,这样我就可以同时运行两个单独的脚本。最近,我转换了这些文件中的每一个,以便利用并行计算工具箱(例如,将 for 循环更改为 par for 等)。

假设在windows A 和B 中,我正在使用并行计算函数分别运行脚本A 和B。现在假设在 window B 中,我关闭了并行池(例如,我输入:

matlabpool close

(或在较新版本中删除(gcp))。这是我的问题。如果我在 window B 中键入此命令,那么在 window A 中运行的程序会发生什么(如果有的话)?它还在利用并行计算工具箱吗?

由单独的 MATLAB windows 打开的池是完全独立的 - 但是它们由存储在磁盘上的 "job" 对象支持。此存储位置 默认 由您计算机上的所有 MATLAB 共享,这可能会导致有关预先存在的池作业的警告。您可以忽略这些警告 - 或者,如果您确实需要,可以将每个 MATLAB 设置为使用自己的存储位置,如下所示:

d = tempname(); % get a temporary location
mkdir(d);
cluster = parallel.cluster.Local('JobStorageLocation', d);
matlabpool(cluster);