引用:
原帖由 840834 于 2008-7-10 16:46 发表 
CPU的指令处理方式和应用环境决定了它的并行处理能力较低,所以非常倚重各种设备的latency,其重要度远远高于带宽。latency本就不是一个固定的数值,或者说只有其中的硬件固有latency才是固定的,其余的部分就会 ...
希望你看懂了我前面所说的关于操作系统进程切换和调度部分的内容。
在同一平台和硬件设置相同的情况下跑superpi,为达到成绩最快,建立在几个前提之下:
1. 系统中开启的其他进程和服务尽可能少。
2. superpi优先级设置尽可能高。
3. superpi运行过程中尽可能少的进行其他操作。例如不要尝试去打开一个浏览器等等。
你说的latency我前文的分析当然有考虑。现在说的再明白一点。在以上前提达到的时候,跑superpi会有几个事实存在:
1. 跑superpi时,关闭完所有其他可关闭的服务和程序后,系统中的进程只有个位数。而这些系统进程并不会主动引发设备lantency,因为它们是系统daemon。
2. 只有少数设备会引发中断,或者DMA传输,但是无法调整。例如RTC时钟每秒引发18.2次中断,这个不是软件可以干涉的内容。再例如显示DMA传输,最高也是PCI 16X可以达到的上限,无法用软件的方法再去提高效率。内存控制器的参数不可能在跑superpi时调整,否则只会引发效率的降低甚至不稳定。
3. 基于我前面的分析,在进程数量如此少而superpi运行nice值设置为实时的情况下,其他进程很少会被切换到,对于CPU的占用的影响不可能超过1%。
再重申一遍,只有硬盘的访问可以造成3%以上的影响。因为硬盘时间是IO时间。但是我很想知道,如何通过调整系统,去使得硬盘IO最优化?