10

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)
            obj@parallel.internal.ui.AbstractValidationManager();

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.

IKavanagh
  • 6,089
  • 11
  • 42
  • 47
Bedir Yilmaz
  • 3,823
  • 5
  • 34
  • 54
  • 1
    Which version of MATLAB are you using? If `feature('isdmlworker')` isn't there, there's something *seriously* wrong with your installation... – Edric Nov 05 '15 at 08:57
  • Added the information that you've requested sir. Do you think that replacing the missing part would do it? – Bedir Yilmaz Nov 05 '15 at 11:22
  • 2
    I have the license for the DCT as well, but not the `isdmlworker` feature either. I can launch the `matlabpool` however, on Windows 7 64bit R2012a – Adriaan Nov 05 '15 at 11:36
  • Can you try restoring your default `PATH` with `restoredefaultpath`? If you want to keep your current path you should save it beforehand. – IKavanagh Nov 05 '15 at 11:53
  • `feature` and `system_dependent` are both implemented deep in the guts of MATLAB. There can be some weirdness when using the `feature` version, but if the `system_dependent` version isn't working right - well, I'm stumped (and I can see the source code for this...). I suggest you contact MathWorks support - maybe they've seen this before. – Edric Nov 05 '15 at 11:55
  • @Edric `system_dependent('isdlmworker')` nor `system_dependent 'isdlmworker'` doesn't return anything, not even `ans = 0` or a syntax error. Should I call it differently? – Adriaan Nov 05 '15 at 12:02
  • 1
    @IKavanagh I did that before. I even tried reinstalling it a couple of times to be honest. :) – Bedir Yilmaz Nov 05 '15 at 12:31
  • 1
    I just tested this on R2014a and Ubuntu 15.04. `matlabpool` starts without issue. – IKavanagh Nov 09 '15 at 09:14
  • @IKavanagh maybe i should do the same. – Bedir Yilmaz Nov 09 '15 at 21:51
  • Maybe. It sounds like an issue with your specific installation than a MATLAB issue. – IKavanagh Nov 12 '15 at 12:14
  • @IKavanagh i did the something relevant to yours. Tried R2014a on 15.10, and voila. I guess it was all because of my Ubuntu installation. I think you deserve the bounty. :) – Bedir Yilmaz Nov 12 '15 at 15:32
  • @3yanlis1bos I'm glad you've got it working and thank you for offering me the bounty. I've posted an answer with as much information as I can glean from the comments. – IKavanagh Nov 12 '15 at 20:08

1 Answers1

2

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.

IKavanagh
  • 6,089
  • 11
  • 42
  • 47