更改调用约定以配置本地并行池
Changes in the calling convention to configure a local parallel pool
在早期版本的 Matlab 中(例如 2013A),我会使用 matlabpool
函数设置一个本地并行池。例如:
matlabpool('size') %To determine if a pool was already open
和
matlabpool(12) %To create a local pool of 12 workers
在较新版本的 Matlab (R2015A) 中,此命令已替换为 parpool
。
- 此更改是在哪个版本中进行的(对于多版本代码)
- 该命令的适当等效用法是什么?
看起来parpool
是在R2014A(8.3)版本中引入的,而matlabpool
是在R2015A版本(8.5)中删除的。请在此处查看 2014A 和 2015A 的平行工具箱说明:
http://www.mathworks.com/help/distcomp/release-notes.html
等效命令如下所示:
numWorkers = 12;
if verLessThan('matlab','8.3') %Pre-2014A code
if matlabpool('size') == 0; %Skip setup if a pool is already open
matlabpool(numWorkers);
end
else %2015A or later code
if isempty(gcp('nocreate')) %Skip setup if a pool is already open
parpool('local',numWorkers);
end
end
在早期版本的 Matlab 中(例如 2013A),我会使用 matlabpool
函数设置一个本地并行池。例如:
matlabpool('size') %To determine if a pool was already open
和
matlabpool(12) %To create a local pool of 12 workers
在较新版本的 Matlab (R2015A) 中,此命令已替换为 parpool
。
- 此更改是在哪个版本中进行的(对于多版本代码)
- 该命令的适当等效用法是什么?
看起来parpool
是在R2014A(8.3)版本中引入的,而matlabpool
是在R2015A版本(8.5)中删除的。请在此处查看 2014A 和 2015A 的平行工具箱说明:
http://www.mathworks.com/help/distcomp/release-notes.html
等效命令如下所示:
numWorkers = 12;
if verLessThan('matlab','8.3') %Pre-2014A code
if matlabpool('size') == 0; %Skip setup if a pool is already open
matlabpool(numWorkers);
end
else %2015A or later code
if isempty(gcp('nocreate')) %Skip setup if a pool is already open
parpool('local',numWorkers);
end
end