Transparency violation error when using 'parfor'
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Eric Hong
el 14 de Ag. de 2015
Comentada: Walter Roberson
el 26 de Ag. de 2015
I am trying to take advantage of multiple processor with the following codes:
mfile_name = run_sims_func();
parfor i=1:length(mfile_name)
run(mfile_name{i});
end
I understand everything should be known or defined to Matlab to use 'parfor', but I don't know why the cell array of script names is considered undefined or unknown.
I have a function 'run_sims_func()' which creates a script in the same directory of 'run_sims_main.m' based on some other information. The cell array of the script names is returned to the main function as shown below:
mfile_name = run_sims_func();
For example,
mfile_name = {'eric.m';'hong.m'};
Then, I want to run them simultaneously with 'parfor' command as attempted below:
parfor i=1:length(mfile_name)
run(mfile_name{i});
end
Then I get the subject error. Surely enough, if I just use 'for', then it works just fine.
Why is this and how can I get it work?
Your help will save me ^_^
Thank you in advance,
Eric
0 comentarios
Respuesta aceptada
Walter Roberson
el 14 de Ag. de 2015
scripts are essentially not compatible with parfor if the scripts create any variables or use any values from the workspace that the parfor is executing in.
If you can, convert the scripts to functions and pass any necessary values into the functions, and instead of using run() use a cell array of function handles.
6 comentarios
Walter Roberson
el 26 de Ag. de 2015
Are you possibly writing them somewhere on your path instead of into your current directory?
Más respuestas (0)
Ver también
Categorías
Más información sobre Parallel for-Loops (parfor) en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!