Ошибки работы сокетов с MATLAB и Parallel Computing Toolbox - PullRequest
1 голос
/ 17 августа 2010

Мы используем MATLAB Parallel Computing Toolbox для одного из наших проектов, и мы периодически получаем следующую ошибку:

Клиент потерял связь с лабораторией 2. Это может быть связано с сетевыми проблемами или ошибкой задания параллельной работы pmode. Это вызывает: java.io.IOException: Операция над сокетом не может быть выполнена, потому что системе не хватило буферного пространства или потому что очередь была заполнена

Все задействованные машины работают под управлением Windows XP с пакетом обновления 3 (SP3) 32-разрядной версии, используя MATLAB 2009a. Ошибка происходит периодически в разных лабораториях.

Любые идеи будут высоко оценены.

Вот примерный / общий фрагмент кода о том, что он делает:

R = findResource();
matlabpool('open', 'local', R.ClusterSize);
spmd
... some loadlibrary() calls ...
end

parfor i = 1:num
  ... big calculations ...
end
%clear
matlabpool close  

1 Ответ

0 голосов
/ 11 февраля 2013

Оказалось, что проблема вообще не имеет ничего общего с Matlab.

Базовая библиотека внешних сообщений, которую мы использовали / загружали (через эти вызовы loadlibrary ()), а затем использовали раздел «большие вычисления»исчерпал объем памяти невыгружаемого пула в 32-разрядных версиях Windows XP и Windows Server 2003, создав / используя большое количество буферов сокетов в недрах библиотеки сообщений.Проблема в основном ушла при переходе на 64-битную ОС (Windows Server 2008 R2).

http://blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx

...