论文部分内容阅读
随着多核处理器越来越成为微处理器发展的主流,并行编程越来越受到人们的关注。如何在目前的多核处理器上进行简单高效的并行程序设计以利用多核所带来的性能优势成为了研究的热点。传统的并行编程语言(如OpenMP、MPI、多线程库等)都只是用于解决某一些领域的问题,并且多数并行编程语言编程复杂,描述层次相对较低,致使并行应用的开发效率低下,不适合于进行并行开发的推广。为了更好地利用和推广并行,新型的并行编程模型和并行编程语言相继出现。本文选择IBM开发的X10语言作为研究对象。X10语言是IBM在美国DARPA的HPCS(High Productivity Computing Systems)项目中开发的一种新型的面向对象的并行编程语言。它的主要目的是降低并行编程的难度,提高应用开发的效率,并提供高性能、可移植和健壮性的支持。本文的主要工作如下:1、研究X10的语言机制。将X10语言与主流的并行编程语言(OpenMP、MPI等)、其他HPCS语言和新型的Go语言进行了比较分析,指出X10语言存在的部分问题。2、X10语言的运用。运用X10语言实现跟踪界面活动网格法YGX程序,对实现的程序进行正确性的验证,并将X10语言实现的YGX程序与OpenMP版本的YGX程序进行实现及性能上的比较。3、对X10语言的优化。设计并实现基于程序特性的循环展开因子确定算法,实现了循环展开的循环优化。实验表明:经过优化后的X10语言的YGX程序性能提高大约10%。4、针对X10语言的并行递归程序,在并行度较高时,X10派生的activity过多致使程序的并行性得不到很好实现的问题,通过限制activity的派生来降低activity的派生开销对程序性能的影响,并通过计算斐波那契数的程序进行了模拟。实验表明:限制activity的派生数目确实能够提高程序性能。