Что определяет 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)
Я удивлен ошибкой "Запрошено слишком много лицензий". На одной из моих машин MaxAllowedNumWorkers - 512 (R2014a, Windows 7 SP1 x64 Ultimate), а на двух других MaxAllowedNumWorkers - только 12 (R2012a, Ubuntu 12.04).
Изменился ли MaxAllowedNumWorkers с R2012a на R2014a? Существуют ли разные виды лицензий с другим MaxAllowedNumWorkers? Кроме того, на компьютере, где MaxAllowedNumWorkers равен только 12, я могу использовать лицензию одновременно на многих других компьютерах (более 100) (кластер компьютеров), поэтому я не понимаю ограничения хэша для MaxAllowedNumWorkers.
1 ответ
Это действительно так. Ограничение на количество разрешенных местных работников на лицензию было снято в выпуске 2014 года. Смотрите примечания к выпуску. Это просто ограничение, налагаемое лицензиями до 2014 года; вот почему вы видите это на машинах, которые имеют 2012 год, но не на тех, которые имеют 2014 год.