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?
    4 views (last 30 days)
  
       Show older comments
    
    Angelo Scacciavillani
 on 19 May 2018
  
    
    
    
    
    Commented: Angelo Scacciavillani
 on 22 May 2018
            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?
0 Comments
Accepted Answer
  Preethi Ayyamperumal
    
 on 22 May 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
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!