Multithreading 嵌套并行While循环
我试图并行运行两个while循环,以便进行数据采集。 该程序将运行“n”Multithreading 嵌套并行While循环,multithreading,matlab,parallel-processing,multiprocessing,matlab-guide,Multithreading,Matlab,Parallel Processing,Multiprocessing,Matlab Guide,我试图并行运行两个while循环,以便进行数据采集。 该程序将运行“n”num_试验,每个试验都有特定的试验持续时间 在每次试验期间,程序将收集数据,同时跟踪试验持续时间。例如,第一次试验在1秒时开始收集数据,在10秒时停止。这一过程将在剩余的试验中重复 如何并行运行这两个while循环 基本上,我只想要一个方法,一旦指定的试用期完成,它将打破第二个while循环 提前谢谢 count = 0; num_trials = 5; % Number of Trials = 5 Trials tria
num_试验
,每个试验都有特定的试验持续时间
在每次试验期间,程序将收集数据,同时跟踪试验持续时间。例如,第一次试验在1秒时开始收集数据,在10秒时停止。这一过程将在剩余的试验中重复
如何并行运行这两个while循环
基本上,我只想要一个方法,一旦指定的试用期完成,它将打破第二个while循环
提前谢谢
count = 0;
num_trials = 5; % Number of Trials = 5 Trials
trial_duration = 10; % Trial Duration = 10 Seconds
global check
check = 0;
% Number of Trials
for i = 1:num_trials
fprintf('Starting Trial %i\n', i);
t_start = tic;
% Start counting and Collecting Data
while toc(t_start) < trial_duration
% Data Collection
while (check ~= 1)
count = count +1;
end
end
fprintf('Ending Trial %i\n', i);
end
count=0;
试验次数=5;%试验次数=5次试验
试验持续时间=10;%试验持续时间=10秒
全局检查
检查=0;
%审判次数
对于i=1:num_试验
fprintf('开始试用%i\n',i);
t_start=tic;
%开始计数和收集数据
而toc(试验开始)<试验持续时间
%数据收集
while(检查~=1)
计数=计数+1;
结束
结束
fprintf('结束试验%i\n',i);
结束
您是否尝试过使用带有&&
的单个循环
while (toc(t_start) < trial_duration) && (check ~= 1)
% Data Collection
count = count +1;
end
while(toc(测试开始)
您指的是哪两个while循环?我认为您需要重新考虑如何存储数据。@jdero代码中只有while循环。第一个是定时器,第二个是数据采集。我现在不担心存储数据。你看过并行工具箱吗?@Marcin我试过parfor循环,但这对这个应用程序不起作用。我正在查看SPMD,但我不确定它们是否在单独的工作节点上独立计算。我需要第一个while循环在秒后停止第二个while循环。