Не удалось запустить Matlabpool

Я запускаю MATLAB уже около полутора лет. И я пытался получить Matlabpool, готовый идти один раз почти каждые три месяца. Прежде чем полностью отказаться от него, я решил обратиться за помощью.:)

Моя проблема начинается с команды matlabpool. Всякий раз, когда я ввожу команду matlabpool, я получаю следующее:

One or more output arguments not assigned during call to "system_dependent".

Error in matlabpool>iIsOnClient (line 73)
onclient = ~system_dependent('isdmlworker');

Error in matlabpool>iVerifyJava (line 64)
if iIsOnClient()

Error in matlabpool (line 10)
iVerifyJava();

После некоторых исследований и бессонных ночей я обнаружил, что нужно решить проблему с помощью "Диспетчера профилей кластеров" . Но у меня никогда не было возможности увидеть, как он работает. Вот что я получаю после нажатия Диспетчера профилей кластера из панели Параллельный:

com.mathworks.jmi.MatlabException: Feature isdmlworker not found
    at com.mathworks.jmi.NativeMatlab.SendMatlabMessage(Native Method)
    at com.mathworks.jmi.NativeMatlab.sendMatlabMessage(NativeMatlab.java:266)
    at com.mathworks.jmi.MatlabLooper.sendMatlabMessage(MatlabLooper.java:120)
    at com.mathworks.jmi.Matlab.mtFeval(Matlab.java:1710)
    at com.mathworks.jmi.MatlabWorker.feval(MatlabWorker.java:197)
    at com.mathworks.toolbox.distcomp.ui.profile.model.MatlabProfileManager$1.runOnMatlabThread(MatlabProfileManager.java:80)
    at com.mathworks.jmi.MatlabWorker$2.run(MatlabWorker.java:79)
    at com.mathworks.jmi.NativeMatlab.dispatchMTRequests(NativeMatlab.java:475)
Attempt to reference field of non-structure array.

Error in parallel.internal.ui.AbstractValidationManager (line 20)
            obj.Validator.addlistener('ValidationStarted', ...

Error in parallel.internal.ui.ValidationManager (line 21)
            [email protected]();

com.mathworks.jmi.MatlabException: Attempt to reference field of non-structure array.
    at com.mathworks.jmi.NativeMatlab.SendMatlabMessage(Native Method)
    at com.mathworks.jmi.NativeMatlab.sendMatlabMessage(NativeMatlab.java:266)
    at com.mathworks.jmi.MatlabLooper.sendMatlabMessage(MatlabLooper.java:120)
    at com.mathworks.jmi.Matlab.mtFevalConsoleOutput(Matlab.java:1778)
    at com.mathworks.jmi.MatlabWorker.feval(MatlabWorker.java:195)
    at com.mathworks.jmi.MatlabWorker.feval(MatlabWorker.java:172)
    at com.mathworks.toolbox.distcomp.ui.profile.model.ValidationManager$1.runOnMatlabThread(ValidationManager.java:45)
    at com.mathworks.jmi.MatlabWorker$2.run(MatlabWorker.java:79)
    at com.mathworks.jmi.NativeMatlab.dispatchMTRequests(NativeMatlab.java:475)

После получения этого сообщения появляется Диспетчер профилей кластера, но на самом деле ничего не показывает, кроме знака "wait". Я проверил мою Распределенную вычислительную лицензию, и это тоже выглядит нормально.

license checkout Distrib_Computing_Toolbox
Команда

возвращает 1.

Кстати, есть еще одно сообщение об ошибке, которое, как я подозревал, связано с моей проблемой. Я получаю это в каждом запуске MATLAB:

Error using feature
Feature isdmlworker not found

Error in matlabrc (line 187)
if ~(ismcc || isdeployed || feature('isdmlworker')) && usejava('jvm')

В дополнение ко всем этим; Я получаю это сообщение всякий раз, когда пытаюсь открыть "Параллельные настройки" на вкладке Среда:

com.mathworks.jmi.MatlabException: Feature isdmlworker not found
    at com.mathworks.jmi.NativeMatlab.SendMatlabMessage(Native Method)
    at com.mathworks.jmi.NativeMatlab.sendMatlabMessage(NativeMatlab.java:265)
    at com.mathworks.jmi.MatlabLooper.sendMatlabMessage(MatlabLooper.java:120)
    at com.mathworks.jmi.Matlab.mtFeval(Matlab.java:1619)
    at com.mathworks.jmi.MatlabWorker.feval(MatlabWorker.java:197)
    at com.mathworks.toolbox.distcomp.ui.profile.model.MatlabProfileManager$1.runOnMatlabThread(MatlabProfileManager.java:72)
    at com.mathworks.jmi.MatlabWorker$2.run(MatlabWorker.java:79)
    at com.mathworks.jmi.NativeMatlab.dispatchMTRequests(NativeMatlab.java:440)

Я попытался найти функцию system_dependent.m, но она, похоже, не существует. Другими распространенными точками ошибок, которые я получаю, является функция "feature.m" , опция "isdmlworker" - это другие загадки, которые я не мог найти никакой информации о.

Я очень ценю, может ли кто-нибудь помочь мне с проблемой, с которой я столкнулся, начиная с распределенной вычислительной системы MATLAB.

Изменить: я работаю над Ubuntu 14.04, а моя версия MATLAB - R2014a.

Ответ 1

Это, по-видимому, проблема с вашей конкретной установкой Ubuntu 14.04. Возможно, это связано с тем, что matlabpool порождает рабочие потоки в R2014a, учитывая, что ошибка возникает в com.mathworks.jmi.NativeMatlab.dispatchMTRequests().

matlabpool был протестирован для работы без проблем на Ubuntu 15.04 и 15.10. Это может быть не идеальное решение, но обновление Ubuntu до 15.04 или 15.10 и повторная установка MATLAB R2014a должны решить проблему.