poster
2019-12-10, 20:48
我们在其中一个项目中使用了MATLAB并行计算工具箱,但间歇性地出现以下错误:
客户端失去了与实验室2的连接。这可能是由于网络问题,或者pmode并行作业可能出错。这是由于:java.io.IOException:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
使用MATLAB 2009a,所有涉及的计算机都运行32位Windows XP SP3。该错误间歇性地从不同的实验室发生。
任何想法将不胜感激。
这是关于其功能的粗略/通用代码段:
R = findResource(); matlabpool('open', 'local', R.ClusterSize); spmd ... some loadlibrary() calls ... end parfor i = 1:num ... big calculations ... end %clear matlabpool close
回答:
事实证明,该问题与Matlab完全无关。
我们正在使用/加载(通过这些loadlibrary()调用)的基础外部消息传递库,然后使用“大计算”部分通过创建/使用来耗尽Windows XP和Windows Server 2003的32位版本上的非页面缓冲池内存大小消息库的内部有大量套接字缓冲区。通过切换到64位OS(Windows Server 2008 R2),问题基本上消失了。
http://blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx
更多&回答... (https://stackoverflow.com/questions/3497837)
客户端失去了与实验室2的连接。这可能是由于网络问题,或者pmode并行作业可能出错。这是由于:java.io.IOException:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
使用MATLAB 2009a,所有涉及的计算机都运行32位Windows XP SP3。该错误间歇性地从不同的实验室发生。
任何想法将不胜感激。
这是关于其功能的粗略/通用代码段:
R = findResource(); matlabpool('open', 'local', R.ClusterSize); spmd ... some loadlibrary() calls ... end parfor i = 1:num ... big calculations ... end %clear matlabpool close
回答:
事实证明,该问题与Matlab完全无关。
我们正在使用/加载(通过这些loadlibrary()调用)的基础外部消息传递库,然后使用“大计算”部分通过创建/使用来耗尽Windows XP和Windows Server 2003的32位版本上的非页面缓冲池内存大小消息库的内部有大量套接字缓冲区。通过切换到64位OS(Windows Server 2008 R2),问题基本上消失了。
http://blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx
更多&回答... (https://stackoverflow.com/questions/3497837)