使用并行池时如何处理Matlab许可证错误

eivnm1vs  于 7个月前  发布在  Matlab
关注(0)|答案(2)|浏览(108)

我正在尝试运行依赖于Statistics_Toolbox license的第三方工具箱(Measures of Effect Size (MES) Toolbox)。在“经典”for循环中,计算是没有任何错误的,但每当我在并行for循环中运行计算时,我会得到以下错误:

Error using ncpci
tinv requires a Statistics_Toolbox license.

我已经用ver命令和license('test', 'Statistics_Toolbox')命令确认了Statistics_Bytes许可证的存在。这是Matlab中并行池的预期行为吗?
以下是我的系统信息:
MATLAB版本:9.12.0.1884302(R2022a)
Ubuntu 22.04操作系统

muk1a3rh

muk1a3rh1#

这不是预期的行为。当您使用parpool时,worker应该拥有您桌面MATLAB会话中的所有许可证。这里详细介绍了MATLAB Parallel Server-这同样适用于仅使用并行计算的本地工作进程。我建议您联系MathWorks支持来解决这个问题。

oipij1gg

oipij1gg2#

MATLAB在使用PCT及其特性时可以做到这一点,例如:并行循环。
确保每个工作人员都可以使用Statistics许可证。在运行并行代码之前,请为并行工作进程显式设置许可。例如:
MATLAB

% Explicitly set up licensing for parallel workers
parpool('local', numWorkers);  % numWorkers is the number of parallel workers you want

% Now, run your parallel code
parfor i = 1:numIterations
    % Your parallel computation here
end

% Close the parallel pool when you're done
delete(gcp);

检查磁盘兼容性。如果不完全兼容,则可能导致这种意外行为。
检查MATLAB R2022a是否有解决此问题的更新、修补程序或修补程序。
如果所有其他方法都失败,请联系MathWorks支持部门寻求帮助。
欢迎来到Stackoverflow,我希望这个答案能有所帮助。

相关问题