Avoid memory copy in thread-based environment (parfeval)
古いコメントを表示
Is it possible to avoid memory copy of the input data to each individual worker when using a thread based environment (thus with shared memory)? Here a very simple example on what I'm intended to do:
function compMat()
m = rand(1000000000, 1);
c1 = f1(m);
c2 = f2(m);
fprintf("%f %f\n", c1, c2);
p1 = parfeval(backgroundPool, @f1, 1, m);
p2 = parfeval(backgroundPool, @f2, 1, m);
c1 = fetchOutputs(p1);
c2 = fetchOutputs(p2);
fprintf("%f %f\n", c1, c2);
end
function x = f1(m)
x = mean(sin(m));
end
function x = f2(m)
x = mean(cos(m));
end
The input data is quite large, but the two operations f1 and f2 on this data don't need a copy of the data. Is it possible to reimplement the above example such that all the time there is only one instance of the input vector in memory and the operations f1 and f2 run in parallel on it?
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!