MATLAB Answers

Bogdan
0

Parallel computing corruption problem (Windows)

Asked by Bogdan
on 8 Apr 2014
Latest activity Answered by Matlab2010 on 27 Oct 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 Comments

Have you tried to run Matlab as an administrator?
Yup, I've tried that as well!

Sign in to comment.

3 Answers

Answer by Elwin Chan on 11 Apr 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 Comments

Show 1 older comment
Hi Bogdan,
That file all looks fine, so it's not a corruption problem. It looks like you might not be able to write to your user preferences to store your parallel settings, since the parallel.settings file should be created in there once you used a PCT command such as parpool.
Please can you try the following in MATLAB and let me know what happens:
s = Settings;
s.parallel
s.parallel.addNode('test')
s.parallel.test.addKey('testKey')
s.parallel.test.isSet('testKey')
s.parallel.removeNode('test')
Also, it would be good to find out where your preferences directory is located in both the Windows and Linux case. Finally, can you please confirm which release of MATLAB you are using?
Regards, Elwin
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. :(
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

Sign in to comment.


Answer by Matlab2010 on 27 Oct 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:)

  0 Comments

Sign in to comment.


Answer by Bogdan
on 9 Apr 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 Comment

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)

Sign in to comment.