一种适用于机群OpenMP系统的有效调度算法
An Effective Loop Scheduling Algorithm for OpenMP on Cluster Systems
-
摘要: OpenMP作为共享存储并行编程标准 ,以其良好的易用性、支持增量并行等特点成为并行程序设计的主流模型之一 OpenMP标准是针对UMA共享存储结构制定的 ,其循环调度机制只考虑了负载平衡而无须考虑数据分布 然而在机群OpenMP系统中 ,数据局部性是影响性能的关键因素 针对OpenMP标准中静态调度策略不适合机群计算的缺点 ,提出了一个充分体现拥有者计算原则的LBS调度算法 ,并通过扩展制导的方式在机群OpenMP系统 (OpenMP/JIA JIA)上加以实现 测试结果表明 ,LBS算法对于机群OpenMP系统很有效Abstract: OpenMP provides a standardized interface for shared memory parallel programming across a wide range of shared memory architectures. It is widely accepted because of good programability and incremental parallelization of sequential programs. The shared memory programming model assumes uniform memory access times for the entire address space. Unfortunately,this is not true for software DSM which OpenMP is targeted. On cluster the owner-computing principle is important to get high performance,which means that the placement of data and computations is such that the data accessed by each process is local to the processor that the process is running. Many loop scheduling mechanisms in OpenMP consider only load balancing,not data locality. A locality-based scheduling(LBS) algorithm is proposed to use the information of data distribution to guide loop scheduling according to the owner-computing principle. It is implemented by OpenMP language extensions on the OpenMP/JIAJIA system. The experimental results show that LBS is an effective loop scheduling algorithm for the OpenMP on cluster.
下载: