gpt4 book ai didi

matlabpool(open...) 在开始工作之前挂起 25 分钟以上

转载 作者:行者123 更新时间:2023-12-01 22:53:39 24 4
gpt4 key购买 nike

我最近遇到了一个问题,命令 matlabpool('open', 'local', 8) 在启动 workers 之前挂起大约 27 分钟。在延迟期间,Windows 任务管理器显示单个 MATLAB.exe 进程消耗零 CPU,内存使用或 PF 增量没有变化,并且使用的物理 RAM 不到 25%。

我尝试在打开命令之前输入 distcomp.feature( 'LocalUseMpiexec', false)matlabpool close force local 但问题仍然存在。直到最近,打开命令只需要一两分钟即可完成。我没有进行任何配置更改,但在 IT 部门管理的环境中工作,因此无法确定可能对 OS/AV/等进行了哪些维护更新。

谁能确定为什么会发生这种挂断?

我使用的是带有 Java 1.6.0_25-b0 的 matlab 版本 8.1.0.604 (R2013a)。我也看到了使用 Java 1.6.0_17-b04 的问题。运行 Windows 7 Enterprise Version 6.1.7601 Service Pack 1 Build 7601。PC 配备双 Intel Xeon CPU(12 核)和 24 GB RAM。

我使用调试器单步执行并确定在 CJSSupport.m 文件第 507 行调用 cjsPrepareForSubmission 之前没有延迟。如果那时我做了一个“介入”,一旦显示没有变化,除了“执行指针”从绿色箭头变为白色箭头。第二个“介入”调出包含 class def (Hidden, Sealed) JobInitData 的 JobInitData.m 文件,它从 View 中隐藏了实际实现。

“Step In”7 次以上的工作没有延迟,将变量 plainTextForBatchJobplainTextForInteractiveJob 添加到工作区。在第 8 次“介入”时,主 matlab 窗口中指示的状态变为忙碌,并保持这种状态超过 25 分钟。在调试器中状态最终更改为停止后,您可以点击继续,工作人员将立即启动,并且该过程将在没有额外延迟的情况下完成。

从公开调用到隐藏问题区域的调用树:

matlabpool(‘open’, ‘local’, 8)
Matlabpool.m 139: matlabpoolOut = MatlabpoolHelper.doMatlabpool(parsedArgs,parsedArgs.ActionArgs.Scheduler);
MatlabPoolHelper.m 137: MatlabpoolHelper.doOpen(sched, parsedArgs.ActionArgs);
MatlabPoolHelper.m 363: client.start('matlabpool', parsedOpenArgs.NumLabs, sched, 'nogui', parsedOpenArgs.FileDependencies);
InteractiveClient.m 279: submit(obj.ParallelJob);
Job.m 302: job.submitOneJob();
CJSCommunicatingJob.m 82: job.Parent.hSubmitCommunicatingJob( job, job.Support, job.SupportID );
hSubmitCommunicatingJob.m 27: jobSupport.prepareJobForSubmission( job, jobSupportID );
CJSSupport.m 507 : cjsPrepareForSubmission( job, obj, jobSId );
JobInitData.m 8: (HIDDEN)

最佳答案

问题是由于过时的环境变量 LM_LICENSE_FILE 指向不再在网络上的 PC。

使用进程监视器;我们已经在 MATLAB 中发现了这个问题。我们能够看到 MATLAB 在 26 分钟内尝试连接到端口 1717 上的 ip 地址。该 IP 地址最终成为另一个产品的许可证服务器的旧位置,它是通过 LM_LICENSE_FILE 设置的。一旦我们删除了 LM_LICENSE_FILE 环境变量,问题就停止了(我们的 MATLAB 通过另一种方法获得许可;许可目录中的许可文件)。

显然 MATLAB 会首先尝试使用 LM_LICENSE_FILE 中的任何服务器,如果无法访问该服务器,则超时时间会非常长——大约 26 分钟。超时后,它会搜索查找许可证定义的其他方法,然后会成功。

可以通过设置环境变量“LM_LICENSE_FILE=171​​7@137.400.200.1”来重现该问题。选择的 ip 地址是任意的,但不应连接 PC。

关于matlabpool(open...) 在开始工作之前挂起 25 分钟以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21785628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com