论文部分内容阅读
在快速发展的信息化社会中,需要处理的信息量越来越大,对计算能力和计算速度也提出了更高的要求,如果仅仅是通过提高计算机系统的整体性能来满足这一要求,是不太可能的。面对上述问题,人们逐渐将目光投向多核计算机的发展。现如今,将大规模复杂问题在多核平台下进行并行处理已成为一种主流发展趋势。在多核PC机下采用OpenMp并行编程模式对串行算法进行并行计算,可以充分发挥多核的优势,将计算任务进行划分后再分配给多个核并行运算,从而大大节省计算时间,提高工作效率;而且在所需资源方面不像MPP需要大型计算机或是像COW需要大量PC机组成机群进行实验,大大节省了成本。
本文针对一些经典串行公共算法(蚁群算法、Cannon算法和遗传算法)在解决大规模复杂问题时运行时间较长的不足,在多核环境下采用基于OpenMp的并行编程技术对这些算法进行一些改进,同时利用多核优势将大规模问题进行划分后分配给多核PC机的各个处理器使其并行执行,计算出改进前后各算法的运行时间和加速比并进行对比,实验证明,改进后各算法的运行时间明显缩短,程序执行效率显著提高。在实验过程中还可以看到,未使用OpenMp制导语句的算法在运行时CPU的利用率只有52%,而使用OpenMp制导语句后算法在运行时CPU的利用率达到了100%,说明经改进后的算法充分利用了计算机的多个核来并行处理算法的计算任务。Occam反演以其稳定收敛和不依赖于初始模型的特性被广泛应用于大地电磁数据的处理,但Occam反演需要计算偏导数矩阵和选取拉格朗日乘子,经分析可知这两部分在整个程序中所占的计算量非常大,利用单核PC机进行Occam反演时的计算速度很慢。针对这一问题本文在多核环境下对Occam反演程序中的偏导数计算和拉格朗日乘子计算部分进行了基于OpenMp的并行优化。在拉格朗日乘子计算过程中本文采用了扫描和一维搜索两种方式,并且比较了这两种方式各自的优缺点。通过实验表明,经并行优化后Occam反演程序运行时间大大减少,程序加速比和执行效率都能取得比较理想的效果。