是什么决定了MaxAllowedNumWorkers



我想要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)

我对错误"Too many licenses requested"感到惊讶。在我的一台机器上,MaxAllowedNumWorkers是512 (R2014a, Windows 7 SP1 x64 Ultimate),而在另外两个机器上,MaxAllowedNumWorkers仅为12 (R2012a, Ubuntu 12.04)。

MaxAllowedNumWorkers从R2012a到R2014a改变吗?是否存在具有不同MaxAllowedNumWorkers的不同类型的许可证?此外,在MaxAllowedNumWorkers仅为12的机器上,我可以同时在许多其他机器(超过100)上使用许可证(计算机集群),所以我不理解MaxAllowedNumWorkers上的哈希限制。

确实如此。2014年发布的许可证取消了对每个许可证允许的本地工人数量的限制。请参阅发行说明。这只是2014年之前的许可证所施加的限制;这就是为什么你在2012年的机器上看到它,而在2014年的机器上看不到。

相关内容

  • 没有找到相关文章

最新更新