Notice I need to have all the computed data on the same workspace, and I have to use these at each moment.
How to execute parallel functions ?
9 次查看(过去 30 天)
显示 更早的评论
Hi everyones,
I have a three buffer system and It takes 3 steps : - I need to collect data from a .txt file - I need to filter these data - I need to plot the filtered data
I want to do these three steps simultaneously ! (even if I have a delay between current data and plotted data) Should I use a parfor loop, matlabpool or multi-thread programming ?
Thanks a lot !
采纳的回答
Friedrich
2013-4-24
编辑:Friedrich
2013-4-24
Hi,
look at createTask and createJob. You create a Task for each file, let the worker process is and pass the data back to MATLAB. In MATLAB you get that data and plot it and restart the process:
c = parcluster; %or maybe c = findResource('scheduler','Configuration','local');
job = createJob(c);
for i=1:3
createTask(job,@rand,1,{i});
%create a function handle to the function you use to process the file, pass in the filename as argument to the function to be able to use the same function for all files
end
submit(job);
wait(job);
results = job.fetchOutputs %maybe you need getAllOutputArguments depends on the version you are using
job.delete
Or use SPMD (this should give a better peformance as CreateJob/CreateTask because te workers need to be started only once)
matlabpool open 3
result = cell(3,1);
spmd
switch labindex
case 1
result{1} = rand(1); %process file 1
case 2
result{2} = rand(2); %process file 2
case 3
result{3} = rand(3); %process file 3
end
end
%each worker holds its own result because result is a Composite object
result
result{:}
0 个评论
更多回答(4 个)
Paul-Henri Michel
2013-4-23
11 个评论
Friedrich
2013-4-23
Plotting doesnt take much time. Using a MATLAB for Plotting only seems a bit too much. I would do all that in one MATLAB. You can use PCT to read in the 3files and post process it. You then use these results and plot it and then start over again. This can run in 1 MATLAB.
You use the second MATLAB for your own.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Parallel Computing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!