有目的地具有高CPU负载的功能?

时间:2011-03-05 23:06:00

标签: c algorithm operating-system load

我正在制作一个控制其他进程的程序(就已停止和启动状态而言)。 其中一个标准是计算机上的负载低于一定值。

所以我需要一个函数或小程序,这会导致负载非常高,以便进行测试。你能想到什么吗?

感谢。

3 个答案:

答案 0 :(得分:4)

我能想到这个:

for(;;);

答案 1 :(得分:3)

如果你想在CPU上实际产生峰值负载,你通常需要一个适度大小(以便工作集完全适合缓存)平凡的可并行化任务,有人手动优化以使用矢量单元处理器。常见的选择包括FFT,矩阵乘法和数学向量的基本运算。

这些几乎总是产生比更多数量理论任务(如素性测试)更高的功率和计算负载,因为它们基本上是无分支的(除了循环),并且非常均匀,因此它们可以设计为使用完整的一直在计算机器的带宽。

应该用于生成真正最大负载的确切函数与处理器微架构的确切细节有很大不同(不同的机器具有与乘法和添加的数量和宽度成比例的不同负载/存储带宽功能单元),但数值软件库(和信号处理库)是很好的开始。看看是否有任何为您的平台手动调整过的。

答案 2 :(得分:2)

如果您需要控制CPU突发的时间长度,您可以使用类似Sieve of Eratosthenes(算法查找素数直到某个数字)并为短突发提供小整数(10000),以及长爆发的一个大整数(100000000)。

如果您考虑负载的I / O,您可以在筛子中为每个测试写入一个文件。