【问题标题】:What determines MaxAllowedNumWorkers?什么决定了 MaxAllowedNumWorkers?
【发布时间】:2014-08-03 11:17:10
【问题描述】:

我想matlabpool open 24。由于我机器中NumWorkers的默认值为12,我run

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 的哈希限制。

【问题讨论】:

    标签: matlab matlabpool


    【解决方案1】:

    确实如此。在 2014 版本中取消了对每个许可证允许的本地工人数量的限制。请参阅release notes。这只是 2014 年之前的许可证所施加的限制;这就是为什么你在有 2012 的机器上看到它,但在有 2014 的机器上看不到它的原因。

    【讨论】:

    • 谢谢。我确认我的 R2013b MaxAllowedNumWorkers 也是 12。有趣的是,发行说明没有提到 R2014a 的 512 限制。
    猜你喜欢
    • 2023-04-05
    • 2012-04-04
    • 2021-12-05
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多