Parallel computing corruption problem (Windows)

7 visualizaciones (últimos 30 días)
Bogdan
Bogdan el 8 de Abr. de 2014
Respondida: Matlab2010 el 27 de Oct. de 2014
Hello,
I'm having a problem with parallel computing that is driving me nuts as I feel like I've exhausted all plausible causes. When I first installed matlab, parpool worked and I was able to run a parallel for loop. After that it didn't work and keeps failing with a long chain of errors.
Warning: Failed to remove the following invalid children under the profiles node: local > In NamedNodesCollection>NamedNodesCollection.refreshCache at 302 In NamedNodesCollection>NamedNodesCollection.refreshCacheIfRequired at 267 In NamedNodesCollection>NamedNodesCollection.getAllNames at 115 In Settings.Settings>iReplaceBadDefaultProfileWithLocal at 674 In Settings.Settings>Settings.hGetProperty at 148 In Settings.Settings>Settings.buildProperties at 629 In Settings.Settings>Settings.Settings at 324 In argumentsParser>iGetClusterAndNumWorkers at 112 In argumentsParser at 43 In parpool at 91 Warning: Failed to remove the following invalid children under the profiles node: local > In NamedNodesCollection>NamedNodesCollection.refreshCache at 302 In NamedNodesCollection>NamedNodesCollection.refreshCacheIfRequired at 267 In NamedNodesCollection>NamedNodesCollection.getAll at 59 In NamedNodesCollection>NamedNodesCollection.getAllNames at 116 In Settings.Settings>iReplaceBadDefaultProfileWithLocal at 674 In Settings.Settings>Settings.hGetProperty at 148 In Settings.Settings>Settings.buildProperties at 629 In Settings.Settings>Settings.Settings at 324 In argumentsParser>iGetClusterAndNumWorkers at 112 In argumentsParser at 43 In parpool at 91 Warning: Failed to remove the following invalid children under the profiles node: local > In NamedNodesCollection>NamedNodesCollection.refreshCache at 302 In NamedNodesCollection>NamedNodesCollection.refreshCacheIfRequired at 267 In NamedNodesCollection>NamedNodesCollection.nameExists at 107 In Settings.Settings>iReplaceBadDefaultProfileWithLocal at 695 In Settings.Settings>Settings.hGetProperty at 148 In Settings.Settings>Settings.buildProperties at 629 In Settings.Settings>Settings.Settings at 324 In argumentsParser>iGetClusterAndNumWorkers at 112 In argumentsParser at 43 In parpool at 91 Warning: The local profile cannot be found. Your installation might be corrupt. Error using parpool (line 99) The operation must modify one or more Settings files for these levels: factory, user, but you do not have write permission on these levels: user.
I reinstalled matlab, and then it worked again the first time, but not again. Since then it hasn't worked even after reinstalling. Trying to open the cluster manager fails with error:
com.mathworks.jmi.MatlabException: The operation must modify one or more Settings files for these levels: factory, user, but you do not have write permission on these levels: user. 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:1541) 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 have full access to all of these places and matlab is not being very clear about what any of this means. I deleted the files that it generates in AppData/Roaming/Mathworks, but to no effect (I followed another post). All matlab-related folders have write permissions. I can't find any mention of this error while searching on Google so I'm completely stuck.
Does anyone have any idea what's going on?
Thanks!
  2 comentarios
José-Luis
José-Luis el 8 de Abr. de 2014
Have you tried to run Matlab as an administrator?
Bogdan
Bogdan el 8 de Abr. de 2014
Yup, I've tried that as well!

Iniciar sesión para comentar.

Respuestas (3)

Elwin Chan
Elwin Chan el 11 de Abr. de 2014
Hi Bogdan,
It looks like you've got corrupted settings somehow. Can you try closing MATLAB and then deleting the parallel.settings file in your preferences directory? You can find out the location of your preferences directory using this command in MATLAB
prefdir
Also, please can you check that this file exists: matlabroot \toolbox\distcomp\parallel.settings, and perhaps paste its contents or attach it so that I can check it is correct?
Finally, do you have write access to your preferences directory from inside MATLAB?
Thanks,
Elwin
  4 comentarios
Bogdan
Bogdan el 15 de Abr. de 2014
Editada: Bogdan el 15 de Abr. de 2014
Hey Elwin.
Here's a picture of the security settings for the parallel.settings file in my prefdir folder. The folder is in User(my user name)/AppData/Roaming/MathWorks/MATLAB.
Here is the matlab output for running those commands:
>> s = Settings;
>> s.parallel
ans =
Settings with no properties.
>> s.parallel.addNode('test')
>> s.parallel.test.addKey('testKey')
>> s.parallel.test.isSet('testKey')
ans =
0
>> s.parallel.removeNode('test')
I am using Matlab2014a 32bit, however I've tried 2013 as well, both 64 and 32 bit.
The strange thing is that Matlab clearly creates parallel.settings when it first runs, as I can run all the parallel computing stuff fine. If I go and delete everything in that folder, the contents are recreated, EXCEPT for parallel.settings.
At the moment I am having to completely reinstall Matlab every time I want to run it again. :(
Elwin Chan
Elwin Chan el 15 de Abr. de 2014
Hi Bogdan,
Unfortunately, I missed out a line of code from my previous comment. Apologies for that. Please can you try this:
s = Settings;
s.parallel
s.parallel.addNode('test')
s.parallel.test.addKey('testKey')
s.parallel.test.testKey = {}
s.parallel.test.isSet('testKey')
s.parallel.removeNode('test')
We are actually trying to write to the parallel.settings file in your preferences directory - it certainly seems as if you have the permissions to do so, but for some reason we aren't able to.
I'm hoping that this new code will throw some light on things.
Thanks, Elwin

Iniciar sesión para comentar.


Matlab2010
Matlab2010 el 27 de Oct. de 2014
Spoke to Matlab tech support about this. The answer is as follows. Type
which -all assert
In my case, the issue was caused by the built in ASSERT function being shadowed by something else (Kevin Murphys toolbox). Hence rename the function of concern. Solved:)

Bogdan
Bogdan el 9 de Abr. de 2014
Unfortunately after going through every folder on my PC and setting full access for all users, I reinstalled Matlab and got parpool to work once, and since than I am getting the same error. Pretty close to giving up on this. I can't load the profile manager or parallel computing options, all of which crash with the same error saying I don't have permission on the 'user' level. I doesn't say which file it wants to modify or what to do.
  1 comentario
Matlab2010
Matlab2010 el 23 de Oct. de 2014
Editada: Matlab2010 el 23 de Oct. de 2014
I am getting this error as well. It has started all of a sudden in some code that was running parfor for ages without any problem. Prior to the start of the prblem, no changes were made to any settings on my PC. Any solutions? Matlab?
Warning: Failed to remove the following invalid children under the profiles node:
local
> In NamedNodesCollection>NamedNodesCollection.refreshCache at 302
In NamedNodesCollection>NamedNodesCollection.refreshCacheIfRequired at 267
In NamedNodesCollection>NamedNodesCollection.getAllNames at 115
In Settings.Settings>iReplaceBadDefaultProfileWithLocal at 678
In Settings.Settings>Settings.hGetProperty at 148
In Settings.Settings>Settings.buildProperties at 630
In Settings.Settings>Settings.Settings at 325
In PoolArrayManager>iShouldAutoCreate at 152
In PoolArrayManager>PoolArrayManager.getOrAutoCreateWithCleanup at 42
In pctTryCreatePoolIfNecessary at 23
In remoteparfor>remoteparfor.tryRemoteParfor at 27
In parallel_function at 433
In myFun at 16
In st_NIKE_03>@(x)myFun(x,LPM{k}.Data) at 30
In st_NIKE_parameterSweep at 56
In st_NIKE_03 at 31
and my ver
K>> ver
----------------------------------------------------------------------------------------------------
MATLAB Version: 8.3.0.532 (R2014a)
MATLAB License Number:
Operating System: Microsoft Windows 7 Professional Version 6.1 (Build 7601: Service Pack 1)
Java Version: Java 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
----------------------------------------------------------------------------------------------------
MATLAB Version 8.3 (R2014a)
Simulink Version 8.3 (R2014a)
Bioinformatics Toolbox Version 4.4 (R2014a)
Control System Toolbox Version 9.7 (R2014a)
Curve Fitting Toolbox Version 3.4.1 (R2014a)
DSP System Toolbox Version 8.6 (R2014a)
Data Acquisition Toolbox Version 3.5 (R2014a)
Financial Toolbox Version 5.3 (R2014a)
Image Processing Toolbox Version 9.0 (R2014a)
Instrument Control Toolbox Version 3.5 (R2014a)
Optimization Toolbox Version 7.0 (R2014a)
Parallel Computing Toolbox Version 6.4 (R2014a)
Signal Processing Toolbox Version 6.21 (R2014a)
SimMechanics Version 4.4 (R2014a)
Simscape Version 3.11 (R2014a)
Simulink Control Design Version 4.0 (R2014a)
Stateflow Version 8.3 (R2014a)
Statistics Toolbox Version 9.0 (R2014a)
Symbolic Math Toolbox Version 6.0 (R2014a)
Wavelet Toolbox Version 4.13 (R2014a)

Iniciar sesión para comentar.

Categorías

Más información sobre Parallel Computing Fundamentals en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by