Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't Get The matlabpool Started

I'm running MATLAB on since about one and a half year now. And I've been trying to get matlabpool ready to go once in nearly every three months. Before I give up on it completely, I've decided to ask for help. :)

My problem starts with matlabpool command. Whenever I type in the matlabpool command, I get this :

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();

After some research and sleepless nights, I've found out that one has to settle the things down with the "Cluster Profile Manager". But I never did have the opportunity to see it working either. Here is what I get after clicking Cluster Profile Manager from Parallel panel :

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)

After getting this message, the Cluster Profile Manager pops up, but doesn't really shows anything besides "wait" sign. I've checked my Distributed Computing Licence and that too is looking fine.

license checkout Distrib_Computing_Toolbox

command returns 1.

By the way, there is another error message which I suspected to have a connection with my problem of some kind. I get this in every MATLAB start:

Error using feature
Feature isdmlworker not found

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

In addition to all of those; I get this message whenever I try to open "Parallel Preferences" from Environment tab :

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)

I've tried to find the function system_dependent.m but it doesn't seem to exist. Other common spots of the errors I get, the function "feature.m", the option "isdmlworker" are other mysteries that I couldn't find any kind of information about.

I really appreciate if anyone can help me with the problem I've encountered starting MATLAB's distributed computing system.

Edit: I'm working on an Ubuntu 14.04 and my MATLAB version is R2014a.

like image 505
Bedir Yilmaz Avatar asked Nov 05 '15 05:11

Bedir Yilmaz


1 Answers

This appears to be an issue with your specific installation of Ubuntu 14.04. It is possible though that it relates to how matlabpool spawns worker threads in R2014a given that the error occurs in com.mathworks.jmi.NativeMatlab.dispatchMTRequests().

matlabpool has been tested to work without issue on Ubuntu 15.04 and 15.10. It may not be an ideal solution but upgrading Ubuntu to 15.04 or 15.10 and reinstalling MATLAB R2014a should resolve the issue.

like image 106
IKavanagh Avatar answered Nov 11 '22 07:11

IKavanagh