2.7 程序性能优化 串行程序性能优化
调用高性能库,比如优化的BLAS,FFTW等 选择适当的编译器优化选项 合理定义数组维数
注意嵌套循环的顺序,尽量改善数据访问的局部性 循环展开
并行程序性能优化
减少通信量、提高通信粒度
全局通信尽量利用高效集合通信算法 挖掘算法的并行度,减少CPU空闲等待 负载平衡
通信、计算的重叠
通过引入重复计算来减少通信,即以计算换通信 技术先行,缺乏理论指导
程序的语法/语义复杂, 需要用户自已处理 任务/数据的划分/分配 数据交换 同步和互斥 性能平衡
并行语言缺乏代可扩展和异构可扩展, 程序移植困难, 重写代码难度太大 环境和工具缺乏较长的生长期, 缺乏代可扩展和异构可扩展 3 并行程序设计模型
3.1 计算圆周率的样本程序
计算圆周率的c语言代码段(串行程序) #define N 1000000 main() { double local, pi = 0.0, w; long i;
w=1.0/N;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库并行程序设计(19)在线全文阅读。
相关推荐: