我想matlabpool open 24
。由于我机器中 NumWorkers 的默认值为 12,我运行:
myCluster = parcluster('local');
myCluster.NumWorkers = 12; % 'Modified' property now TRUE
saveProfile(myCluster); % 'local' profile now updated,
% 'Modified' property now FALSE
我得到错误:
Error using parallel.cluster.Local/hSetProperty (line 258)
NumWorkers must be an integer from 1 to 12.
我在parallel.cluster.Local/hSetProperty(第258行)注释掉边界检查:
case 'NumWorkers'
% if value > obj.MaxAllowedNumWorkers
% error(message('parallel:cluster:LocalInvalidNumWorkers', obj.MaxAllowedNumWorkers));
% else
obj.LocalSched.setMaximumNumberOfWorkers( double( value ) );
% end
我得到错误:
Error using parallel.cluster.Local/hSetProperty (line 260)
Java exception occurred:
java.lang.IllegalStateException: Too many licenses requested
at com.mathworks.toolbox.distcomp.local.LocalScheduler.setMaximumNumberOfWorkers(LocalScheduler.java:89)
我对“请求的许可证太多”错误感到惊讶。在我的一台机器上 MaxAllowedNumWorkers 为 512(R2014a,Windows 7 SP1 x64 Ultimate),而在另外两台机器上 MaxAllowedNumWorkers 仅为 12(R2012a,Ubuntu 12.04)。
MaxAllowedNumWorkers 是否从 R2012a 更改为 R2014a?是否存在具有不同 MaxAllowedNumWorkers 的不同类型的许可证?另外,在 MaxAllowedNumWorkers 仅为 12 的机器上,我可以同时在许多其他机器(超过 100 台)上使用许可证(计算机集群),所以我不明白 MaxAllowedNumWorkers 的哈希限制。