使用 C++ 提高硬件使用率

Increase hardware usage with C++

提问人:Joeger-Bahar 提问时间:11/3/2023 最后编辑:Joeger-Bahar 更新时间:11/4/2023 访问量:210

问:

我想大幅增加我的硬件使用量,部分原因是它很有趣,部分原因是为了个人项目。目前,我只是做了一堆数学运算,它有点工作:

for (int i = 1; i < 1000000; ++i)
{
    int z = sin(cos(tan(sqrt(sin(cos(tan(sqrt(tan(sqrt(cos(sin(i / 1))))))))))));
    z += sin(sqrt(sin(cos(z / 7))));
    z += sin(sqrt(sin(cos(z / Random(1, 20)))));
    z += sin(sqrt(sin(cos(z / Random(1, 20)))));
    z += sin(sqrt(sin(cos(z / Random(1, 20)))));
    z += sin(sqrt(sin(cos(z / Random(1, 20)))));
    z += sin(sqrt(sin(cos(z / Random(1, 20)))));
    z += sin(sqrt(sin(cos(z / Random(1, 20)))));
}

我意识到我可以用一个来做最后一个,但这只是一个暂时的事情。但是,当它运行时,我的 CPU 只能达到大约 75% 的使用率,其他一切都很好。我想让它让风扇立即打开,RAM 被填满(我可以使用叉子炸弹的变体),CPU 达到接近 100%,GPU 达到接近 100%(我意识到这可能不可行),等等。for loop

有没有更好的方法可以做到这一点,或者我应该添加更多的数学运算。

(上面的代码每秒运行约10次)

C++ 硬件 滞后 速度减慢

评论

3赞 Jeremy Friesner 11/3/2023
至少,您可能希望生成至少与 CPU 内核数量相同的线程数;单个线程不能消耗超过一个内核的周期,无论您投入多少数学运算。有可用的压力测试程序;也许您只想安装并运行其中之一,而不是自己滚动?
9赞 Ted Lyngmo 11/3/2023
请注意:智能(普通)编译器可能会优化所有这些,因为您不使用 .您将留下一个 no-op -loop,它也会删除它。zfor
10赞 NathanOliver 11/3/2023
如果你想减慢代码的速度,为什么不直接输入一个等待命令呢?类似于 std::this_thread::sleep_for
13赞 njuffa 11/3/2023
“减慢代码速度” != “最大限度地利用大多数硬件资源”。是哪一个?如果是后者,请说明其目的是什么。
4赞 paddy 11/3/2023
这已经闻起来像 XY 问题了。澄清请求是为了尝试深入了解您要解决的实际问题。如果不回复,您的问题将进入休眠状态并消失,或者被关闭并可能被删除。上下文就是一切。

答: 暂无答案