论文部分内容阅读
随着微处理器和高速网络技术的发展,机群由于性能价格比高和可扩展性好等特点,正逐渐成为并行计算的主流平台。适合机群的并行编程模型能够促进机群的广泛应用,从而促进并行应用的发展普及,成为当前关注热点。目前消息传递是机群上主流的并行编程模型。但是程序员在机群上使用消息传递编程相当困难,这一点阻碍了机群的广泛应用。一般认为,共享存储比消息传递易于编程。OpenMP作为当前共享存储的事实编程标准,具有易于编程和支持增量并行的特点。机群OpenMP系统在机群上提供了共享存储的OpenMP计算环境,它结合了OpenMP的易编程性和机群的可扩展性,引起了广泛的研究。由于机群通常采用廉价的商业网络互连,通信开销较大,机群OpenMP系统要想获得理想的性能较为困难,而具有良好的性能是它能否得到广泛应用的关键,因此如何有效提高机群OpenMP系统的性能成为当前研究热点。 本文研究了提高机群OpenMP系统性能的关键技术,并利用扩展OpenMP制导的方式进行了实现。机群OpenMP系统通过将OpenMP程序转换成软件DSM程序在机群上运行。基于Home的软件DSM系统在机群上构造了类似NUMA结构的共享存储抽象,针对这个特点,并借鉴了HPF语言,本文提出了数据分布制导扩展和充分利用拥有者计算原则的基于局部性的循环调度模式LBS和LBDS。由于数据分布制导扩展只适用于访存规则的程序,对于访存非规则的应用起不到作用。针对采用稀疏矩阵运算的一大类非规则应用,本文提出了indirect制导扩展以改善该类应用的性能。 本文对所提出的制导扩展进行了应用评测。测试结果表明使用这些制导扩展编程,既保持了OpenMP的易编程性,编程难度与循环级编程方式相似,又获得了与SPMD编程方式相当的性能,是机群上一种有效的编程方式。为了评价改进后机群OpenMP系统性能,本文在PC机群上将机群OpenMP系统OpenMP/JIAJIA与目前机群上主流的消息传递库MPI进行了比较。比较结果表明:在8个处理机运行时,相对于所测试的七个应用,机群OpenMP系统获得了相当于MPI的81%的性能。这个结果在一定程度上反映了机群OpenMP系统获得了与MPI可比的性能,但是采用OpenMP编程却比MPI要容易得多。