并行计算思考----回溯法求解数独问题
1.Intel Parallel Studio 环境下的并行程序设计
书官方网站的详情页:
可以下载相关代码
2.在使用并行计算来优化自己的串行程序之前,我们需要思考以下几个方面的问题
什么情况下需要并行?
并行能够带来多少性能的提升?
编码和调试的时间成本?
(串行代码早都搞出来了,并行搞出来的还不一定对,并行时间上的提升是否能够低效开发并行程序的人力资源成本?)
两个计算期望的加速比经常用到的定理Amdahl定理,和Gaustafson定理
理论上认为对于并行计算中的可扩展性(Scalability),一个程序的加速比随着处理器核数增加而变化的情况,一个完美的可扩展程序在一个四核计算机上应该是双核计算机的两倍速度。
3.实验:
并行回溯法计算数独(可能需要Intel的编译器)
资源:
编译的时候要打开vs 的openMP选项:
串行算法:可以看到速度非常快:
书上的串行算法:
openmp并行算法: