Borrar filtros
Borrar filtros

Hello, I am trying to suppress following output 'Evaluating tall expression using the Parallel Pool 'local':' for gather function. Unfortunately it is in a parfor loop so I can't use evalc to suppress it. Can anyone help me?

6 visualizaciones (últimos 30 días)
Hello, I am trying to suppress following output 'Evaluating tall expression using the Parallel Pool 'local':' for gather function. Unfortunately it is in a parfor loop so I can't use evalc to suppress it. Can anyone help me?

Respuesta aceptada

Preethi Ayyamperumal
Preethi Ayyamperumal el 22 de Mayo de 2018
"evalc" violates transparency in parfor loops and hence restricted. Such transparency restrictions apply only to the direct body of the parfor construct, and not to any functions called from there.
As a workaround, hide your call to evalc('gather(argument)') in a MATLAB function and call the function from "parfor" loop to suppress the output of "gather" function.
Refer to the following code for example:
ds = datastore('airlinesmall.csv');
varnames = {'ArrDelay', 'DepDelay'};
ds.SelectedVariableNames = varnames;
ds.TreatAsMissing = 'NA';
parfor i = 1:4
tt = tall(ds)
a = tt.ArrDelay;
m = mean(a,'omitnan');
s = std(a,'omitnan');
one_sigma_bounds = [m-s m m+s];
supress_gather_output(one_sigma_bounds,a);
end
function supress_gather_output(one_sigma_bounds,a)
[t,sig1] = evalc('gather(one_sigma_bounds)');
[max_delay, min_delay] = evalc('gather(max(a),min(a))');
end

Más respuestas (0)

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by