【发布时间】:2013-07-11 00:58:38
【问题描述】:
为了获取数据,我正在尝试并行运行两个 while 循环。
该程序将运行“n”个num_trials,每次试用都有特定的试用期。
在每次试用期间,该程序将在跟踪试用时长的同时收集数据。例如,第一个试验在 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
【问题讨论】:
-
你指的是哪两个while循环?我认为您需要重新考虑如何存储数据。
-
@jdero 代码中只有while循环。第一个是计时器,第二个是数据收集。我暂时不关心存储数据。
-
你看过并行工具箱吗?
-
@Marcin 我已经尝试过 parfor 循环,但这不适用于此应用程序。我正在查看 SPMD,但我不确定它们是否在单独的工作节点上独立计算。我需要第一个 while 循环在几秒钟后停止第二个 while 循环。
标签: multithreading matlab parallel-processing multiprocessing matlab-guide