声明:这个问题我并没有解决,只是说找到了一个让他不那么快报错的一个方法。
问题描述:
(834):connection to proxy 0 at host DESKTOP-0VQN failed
(103): callback returned error status
(507): error waiting for event
(1148): process manager error waiting for completion
[mpiexec@DESKTOP-0VQN] ..\hydra\pm\pmiserv\pmiserv_cb.c (834): connection to proxy 0 at host DESKTOP-0VQN failed
[mpiexec@DESKTOP-0VQN] ..\hydra\tools\demux\demux_select.c (103): callback returned error status
[mpiexec@DESKTOP-0VQN] ..\hydra\pm\pmiserv\pmiserv_pmci.c (507): error waiting for event
[mpiexec@DESKTOP-0VQN] ..\hydra\ui\mpich\mpiexec.c (1148): process manager error waiting for completion
错误使用feof,文件标识符无效,使用fopen生成有效的文件标识符。
这个语句是在一个for循环里面,在报错之前,我已经成功跑了n个点,所以并不是“错误使用 feof
文件标识符无效。使用 fopen 生成有效的文件标识符。”这个问题导致的。
我在网上查了一下,这个问题似乎是有关MPI库本身的问题。建议检查运算过程中是否耗尽了RAM,通常这会导致一些MPI系统中的问题。因为有时候确实是很多个软件同时在运行,虽然不一定耗尽了RAM,但可能确实其他软件影响到了matlab程序的运行。
所以我就试着在跑程序时,关闭其他不必要的软件,另外需要特别注意的是,点了start之后尽量不要切换页面,也不要频繁点一些其他乱七八糟的东西,这会加速ERROR的到来!反之,如果start之后就不碰电脑,他可能会运行的比较久,虽然不一定会完美运行到最后一行代码,但至少确实让这个ERROR来的更晚!
(我也尝试把循环数尽量减少,或者并行循环。尝试把其中一个关键的for循环改成了parfor,基本上也没有再报错了)
当然也可以重新下载安装MS-MPI库,这个可能比较麻烦,我没有尝试,我放个链接,有需要可以自己摸索着下载安装。Microsoft MPI - Message Passing Interface | Microsoft Learn