如何使用matlab积极地提高我的cpu使用率

时间:2017-07-01 13:51:10

标签: matlab

为了检查我的cpu,我需要一种方法来提高它的使用率。一路攀升。 到70%-100%之间的某个地方。它需要使用所有核心, 如果有办法让我可以控制使用量,那就太好了。

所以,我正在寻找一个matlab代码/想法来实现它

1 个答案:

答案 0 :(得分:2)

在我的电脑上它的工作原理如下。 f是暂停的因素。如果我将其设置为0,我将获得100%的负载,如果它设置为0.25,我将获得90%的负载。 0.5 50%

所以它不是lineair,但确实提供了控制

A=rand(1000);
f=0.25;
for ct = 1:1000
    tic
    hess(A);
    pause(toc*f)
end

您可以使用ctrl-c课程突破循环。

您还可以直接读出进程的CPU使用情况,并将其用作暂停时间的反馈,但对于您想要执行的操作,这可能会不必要地复杂化。

CPUs=double(System.Environment.ProcessorCount);
P = System.Diagnostics.PerformanceCounter('Process', '% Processor Time', 'MATLAB'); %perforamce counter
A=rand(1000);N=1000;
p_goal = 50; %desired CPU usage in percentage
f=1;
p=nan([1,N]);
for ct = 1:N
    tic
    hess(A);
    if f>0
    p(ct)=P.NextValue/CPUs; %percentage of CPU used by matlab
    if p(ct)<p_goal,f=f-0.01;end
    if p(ct)>p_goal,f=f+0.01;end
    pause(toc*f)
    plot(p);ylabel('cpu usage');title(sprintf('f=%.2f',f));drawnow;
    end
end