【发布时间】:2014-02-13 04:14:44
【问题描述】:
我正在使用 Matlab R2010b 作为一堆外部工具的驱动程序。基本上,Matlab 会进行一些数据转换,将内容写入磁盘,使用 system 调用外部脚本等等。
我从来没有遇到过在 Matlab 中需要几天的批处理计算问题,但显然我现在做错了。不时地,不定期地,管道完全堵塞。什么都没有发生,没有调用外部脚本,爱的劳动丢失了。在 Matlab 中按下 ctrl+c 会让事情再次发生。因此,我认为问题出在 Matlab 上。
管道中没有暂停,我也没有使用任何睡眠排序变体。阻塞发生在代码中完全随机的位置,并且似乎在完美运行至少一小时后开始发生。由于 Matlab 代码基本上是一个巨大的循环,这对我来说完全是个谜(逻辑假设,如果循环体工作一次,它应该继续工作)。
它似乎与电源管理没有任何关系(就像我说的,我过去成功地完成了许多长时间的计算)。这就是为什么我认为它与 Matlab + 脚本的组合有关。
有没有人经历过类似的事情(并且希望能够解决它)?
【问题讨论】:
-
好吧,阅读您的描述,我不会为此责怪 Matlab。这是系统中Matlab进程的一些问题(它正在等待一些资源或类似的东西)。系统中的事件有什么异常吗?您是否测试过系统病毒、测试内存、测试磁盘?你能把整个系统放在另一台机器上吗?
-
@hesar 我找不到任何异常事件。我有足够的可用内存/硬盘空间,当管道停止时,所有内核上的 CPU 使用率都会下降到空闲水平(例如,没有竞争进程)。也没有发现病毒。我认为内存和磁盘都很好,因为我使用 Matlab 以外的其他东西作为驱动程序的类似过程可以正常工作(Python)。
-
某处是否存在 java 泄漏? IE。当您增加 Java 堆内存时,问题是否会消失/需要更长时间才能出现?
-
@Jonas 好主意!我会试试看会发生什么。
-
这是什么操作系统?计算机是否在网络上?还有什么在运行?如果它再次发生,您应该检查 Matlab 的内存和 CPU 使用情况(大概这些不应该在您的脚本运行时发生太大变化)。当然,当涉及到现实世界中真实硬件上的真实软件时,“逻辑假设循环体一旦工作就应该继续工作”远非如此。
标签: matlab