I'm trying to deploy an application of the form;
try if(isdeployed) matfile = 'local.mat'; % can also use uigetfile to let
setmcruserdata('ParallelConfigurationFile',matfile); endif (matlabpool('size') > 0)==1 %cerrar matlabpool si está abierto
matlabpool closeendmatlabpool open 2;parfor i=1:10endmatlabpool close;uiwait(msgbox('Success'))catch ME uiwait(msgbox(ME.message))end
This works fine on Matlab, but when compiled, it successfully loads the workers, but when calling parfor it errors saying "distcomp.remoteparfor is undefined perhaps java is not running" (if I remove the setmcruserdata and directly call matlabpool the result is the same). If I change the "parfor" for a "for" it works fine, but if I don't call matlabpool which should make the program consider parfor as a for, it still gives the same error about parfor.
I've been reading the documentation: http://www.mathworks.com/help/toolbox/compiler/f12-999353.html#bsm9wmx)
which states that "Standalone executables and libraries generated from MATLAB Compiler for parallel applications can now launch up to twelve local workers without MATLAB® Distributed Computing Server™. And that is precisely what I want to do, compile this file so that it uses the local scheduler without the need of accessing a cluster. What am I getting wrong here? how can I set the envorinment correctly without using a cluster? This soluction http://www.mathworks.com/support/solutions/en/data/1-96PSJ9/index.html?solution=1-96PSJ9 says that this issue should be solved in version 2011a, but it doesen't work. I'd appreciate your help. Regards.
Best Answer