优化程序性能 HPC Optimizing program's performance
- 优化编译器的能力和局限性
- 因为指针引用问题,无法判断函数的功能,所以无法判断是否应当优化,改变函数调用的位置和次数后是否和原来还相同。所以不同的优化等级能达到的效果是不相同的。
- 表示程序性能
- 优化基本方法
- 消除循环的低效率:把不会变化的变量移出循环
- 减少过程调用:比如不必要的边界检查
- 消除不必要的内存引用:比如用中间变量代替指针赋值,免得翻译成汇编、机器码后,反复把值从指针变量中读到寄存器,计算完后再把寄存器的值存到指针变量里
- 现代处理器
- 两个下界描述了程序的最大性能,是程序性能的终极限制
- 延迟界限(latency bound),指令必须按严格顺序执行
- 吞吐量界限(throughput bound),cpu的原始计算能力
- 并行功能
- 现代处理器采用了一种称为分支预测(branch prediction)的技术,使用投机执行(speculative execution)
- 两个下界描述了程序的最大性能,是程序性能的终极限制