首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlabpool(打开...)在启动工作进程前挂起25+分钟

matlabpool(打开...)在启动工作进程前挂起25+分钟
EN

Stack Overflow用户
提问于 2014-02-15 01:21:08
回答 1查看 2.4K关注 0票数 2

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

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

有人能找出为什么会发生这种挂起吗?

我使用的是带有Java1.6.0_25-b0的matlab版本8.1.0.604 (R2013a)。我在使用Java 1.6.0_17-b04时也看到过这个问题。运行Windows 7企业版6.1.7601 Service Pack 1 Build 7601。PC具有双Intel Xeon CPU (12核)和24 GB RAM。

我使用调试器单步执行,并确定没有延迟,直到它到达CJSSupport.m文件中507行的cjsPrepareForSubmission调用。如果在这一点上,我执行了一次“step in”,除了“execution pointer”从绿色箭头变为白色箭头之外,显示没有任何变化。第二个“step in”打开包含class def (Hidden, Sealed) JobInitData的JobInitData.m文件,该文件隐藏了实际的实现。

将变量plainTextForBatchJobplainTextForInteractiveJob添加到工作区中,"Step In“7次都可以毫无延迟地工作。在第8次"step in“时,matlab主窗口中显示的状态变为busy,并在25+分钟内保持这种状态。在调试器中的状态最终更改为“已停止”后,您可以单击“继续”,工作进程将立即启动,并且进程将完成,而不会出现额外的延迟。

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

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2014-02-18 23:49:46

问题是由于环境变量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=1717@137.400.200.1“来重复。选择的ip地址是任意的,但不应该有PC连接到它。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21785628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档