10

Sto eseguendo MATLAB da circa un anno e mezzo ora. E ho cercato di ottenere matlabpool pronto per andare una volta in quasi ogni tre mesi. Prima di arrendermi completamente, ho deciso di chiedere aiuto. :)Impossibile avviare il matlabpool

Il mio problema inizia con il comando matlabpool. Ogni volta che digito il comando dimatlabpool, ottengo questo:

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

Dopo alcune notti insonni e di ricerca, ho scoperto che si deve risolvere le cose giù con la "Cluster Profile Manager" . Ma non ho mai avuto l'opportunità di vederlo funzionare. Ecco quello che ottengo dopo aver cliccato Cluster Profile Manager da Parallel pannello:

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) 

Dopo aver ottenuto questo messaggio, il Cluster Profile Manager si apre, ma in realtà non mostra nulla oltre a "aspettare" cartello. Ho controllato la mia licenza di calcolo distribuito e anche questo va bene.

license checkout Distrib_Computing_Toolbox 

comando restituisce 1.

A proposito, c'è un altro messaggio di errore che ho sospettato di avere una connessione con il mio problema di qualche tipo. Ottengo questo in ogni inizio MATLAB:

Error using feature 
Feature isdmlworker not found 

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

In aggiunta a tutti quelli; Ricevo questo messaggio ogni volta che provo ad aprire "Preferenze" Parallel da Ambiente scheda:

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) 

ho cercato di trovare la funzione system_dependent.m ma non sembra esistere. Altri punti comuni degli errori che ottengo, la funzione "feature.m", l'opzione "isdmlworker" sono altri misteri che non sono riuscito a trovare alcun tipo di informazione.

Apprezzo davvero se qualcuno mi può aiutare con il problema che ho riscontrato all'avvio del sistema di calcolo distribuito di MATLAB.

Modifica: sto lavorando su Ubuntu 14.04 e la mia versione di MATLAB è R2014a.

+1

Quale versione di MATLAB stai utilizzando? Se 'feature ('isdmlworker')' non c'è, c'è qualcosa * seriamente * sbagliato nell'installazione ... – Edric

+0

Aggiunte le informazioni che hai richiesto signore. Pensi che sostituire la parte mancante lo farebbe? – 3yanlis1bos

+2

Ho anche la licenza per DCT, ma non la funzione 'isdmlworker'. Posso avviare il 'matlabpool', tuttavia, su Windows 7 a 64 bit R2012a – Adriaan

risposta

2

Questo sembra essere un problema con l'installazione specifica di Ubuntu 14.04. È tuttavia possibile che si riferisca al modo in cui matlabpool genera thread di lavoro in R2014a dato che l'errore si verifica in com.mathworks.jmi.NativeMatlab.dispatchMTRequests().

matlabpool è stato testato per funzionare senza problemi su Ubuntu 15.04 e 15.10. Potrebbe non essere una soluzione ideale, ma l'aggiornamento di Ubuntu a 15.04 o 15.10 e la reinstallazione di MATLAB R2014a dovrebbero risolvere il problema.