Matlab 函数并行执行时间

Matlab 函数并行执行时间,matlab,function,timer,parallel-processing,try-catch,Matlab,Function,Timer,Parallel Processing,Try Catch,我目前正在研究并行计时功能,作为一个计时阈值,可以应用于主功能。需要最长的运行时间。一旦达到阈值,主函数将中断并进入下一个循环。 我最初的想法是从另一个独立函数调用定时器,这样就可以实现并行函数。但它没有做到这一点 function timeStop() time = cputime; time = cputime-time; a = timer; set (a, 'executionMode', 'fixedRate') set (a,'timerfcn','disp(time)') star

我目前正在研究并行计时功能,作为一个计时阈值,可以应用于主功能。需要最长的运行时间。一旦达到阈值,主函数将中断并进入下一个循环。 我最初的想法是从另一个独立函数调用
定时器
,这样就可以实现并行函数。但它没有做到这一点

function timeStop()
time = cputime;
time = cputime-time;
a = timer;
set (a, 'executionMode', 'fixedRate')
set (a,'timerfcn','disp(time)')
start(a)
timeStop = time;
end
然后调用此
timeStop

function fucx()
for i = 1:3
    for j = 1:3
        for k = 1:3
            try
                %MainFuc()

                timeStop
                if (timeStop>60) % in seconds
                    disp('RunOutOfTime: Program terminated');
                    stop(a)
                    break;
                end;

            catch
                %%Err()
            end
        end
     end
end
end
它是
MainFunc()
中模型设置、研究和解决方案的巨大集合,没有循环。我在考虑直接将
tic/toc
函数放入
mainfoc()
。但我不确定MATLAB内部是否会按照我希望的方式工作。因为我不知道无限时间被困在
MainFunc()
的哪个步骤或代码行中。我不能简单地将
tic/toc
函数与它放在一起,如果它不是并行确定的


我曾考虑过使用
tic/toc
,但有人告诉我,在内部,只有在完全执行
mainfoc()
之后,MATLAB才会知道运行时间。我不确定这是不是真的,但在不同的位置发现了具有类似含义的帖子。

我在
parfor
循环中做了
tic/toc
:这似乎是一个合理的结果,只要你不需要毫秒精度。你当然不能在从外部调用
funcx()后中止
MainFuc()
在循环中)。因此,您必须将if语句放在
MainFunc()
的内部,并在最长执行时间结束后立即中断。此外,您必须将
timeStop()
中的
time
声明为持久变量,并在使用之前正确初始化它。现在这样做不会按照您的意愿测量两次连续调用
timeStop()
之间的运行时间。目标是创建一个并行运行计时函数,以终止无限运行循环并继续下一个循环。parfor似乎只适用于将MainFunc()划分为并发作业。不能简单地将if语句放入MainFunc()中。因为我们不知道MainFunc()中的哪一行导致了无限时间问题。我在一个
parfor
循环中做了
tic/toc
:这似乎是一个合理的结果,前提是你不需要毫秒精度。在从外部(即从
funcx()调用它之后,你当然不能中止
MainFuc()
在循环中)。因此,您必须将if语句放在
MainFunc()
的内部,并在最长执行时间结束后立即中断。此外,您必须将
timeStop()
中的
time
声明为持久变量,并在使用之前正确初始化它。现在这样做不会按照您的意愿测量两次连续调用
timeStop()
之间的运行时间。目标是创建一个并行运行计时函数,以终止无限运行循环并继续下一个循环。parfor似乎只适用于将MainFunc()划分为并发作业。不能简单地将if语句放入MainFunc()中。因为我们不知道MainFunc()中的哪一行导致了无限时间问题。