当前位置: 首页 > 专利查询>清华大学专利>正文

基于配置文件的并行程序自动映射实现方法技术

技术编号:2821430 阅读:318 留言:0更新日期:2012-04-11 18:40
基于配置文件的并行程序自动映射实现方法属于并行程序进程映射的技术领域,其特征是:自动获取目标平台的网络拓扑图,减少用户干预;对并行程序中每条组通信按照分解知识库中分解算法拆分成对应进程的点通信并形成组通信矩阵,把得到的组通信矩阵和并行程序中原有的点通信矩阵线性叠加得到并行程序的通信拓扑图;然后使用K-way图划分算法实现并行程序的进程映射。实验证明,通过本发明专利技术找到的最优进程映射方式,比MPI默认的进程映射方式在性能方面具有显著提高。

【技术实现步骤摘要】

本专利技术属于并行程序进程映射的
技术背景-对称多处理器(Symmetric Multi-Processor, SMP)集群系统和网格系统被广泛的使用在基 于消息传递的并行科学计算应用中。由于这些系统固有的通信异构性,映射虚拟进程到实 际的物理处理器对并行程序的性能具有显著的影响。例如,当前大量使用多核处理器构建 的集群服务器,节点内部的通信性能远大于节点之间的通信性能。对于像英特尔等公司的 多核处理器,共享第二级缓存(L2 Cache)的两个核的通信性能耍远大于节点内部其他核之 间的通信性能。在网格系统中,同一个集群服务器内部节点之间的通信带宽远大于两个集 群之间的带宽。因此,自动的映射虚拟进程到物理处理器对于提高并行程序的性能具有重 要意义。映射并行程序的任务拓扑到底层的物理拓扑的问题可以规约为图映射问题。例如,图 GKVc,Ecj)用于描述表示并行程序的通信拓扑,节点代表虚拟进程,边权重代表进程IW通信 强度。圓T(Vt, et)用于描述目标平台的物理拓扑,节点代表实际的物理节点,边的权重代 表通信性能。我假设图G和图T节点数相同,每个进程计算的负载均衡。假设F是图G映 射到图T后得到的图的边的权重之和。进程映射要解决的问题就是要找到一种映射方式, 使得得到的图的边权重和F最小,该问题已经被证明为NP完全问题。当前存在一些方法优化并行程序的进程映射问题。有些系统通过得到应用程序的通信 拓扑,通过图划分算法找到最优的并行程序进程映射,但是他们的方法需要用户预先提供 目标平台的网络拓扑。参见A. Pant, H. Jafri, Communicating efficiently on cluster based grids with MPICH-VMI (2004 CLUSTER)。也有一些研究者提出了基于配置文件Profile实现并 行程序的进程映射,但是他们的工具只能解决点通信的进程映射,不能处理组通信的映射。 参见H. Chen, W. G, Chen et. al. MPIPP: An automatic profile-guided parallel process placement toolset for SMP clusters and multi-clusters (2006 ICS )。总之,当前对于处理并行程序的进程映射问题的方法存在的缺陷包括只能解决点通 信的进程映射问题,不能处理组通信的进程问题;需要用户干预比较多,自动化程度不高。
技术实现思路
-本专利技术的目的就是寻找并行程序的最优映射,提高并行程序的性能。本专利技术的思路是自动获取目标平台的网络拓扑图,减少用户干预;对并行程序中每 条组通信按照分解知识库中分解算法拆分成对应进程的点通信并形成组通信矩阵,把得到 的组通信矩阵和并行程序中原有的点通信矩阵线性叠加得到并行程序的通信拓扑图;然后 使用K-way图划分算法实现并行程序的最优进程映射。本专利技术特征在于,所述方法是在计算机上依次按以下歩骤实现 歩骤1 )初始化建立一个通信记录动态插装库SIM-MPI,建立一个组通信分解算法知识库,其中集成了以太网、Myrinet、以及Infmiband三种 网络平台的消息通信库MPI的组通信函数分解算法,以及与所述各组通信函数算法内含的 点对点通信进程为基础的进程映射配置文件,以便把所有组通信函数分解为若千次设定的 点对点通信并映射到对应的物理计算单元中; 步骤2)获得目标平台的网络拓扑图对输入计算机的目标平台上N个节点的网络拓扑图,按下述方法使用N个进程测试, 得到一个N+N大小的网络拓扑图,其歩骤如下歩骤(2.1)每次有N/2对进程同时进行通信,用基于消息通信库MPI的乒乓测试方法 Ping-Pong,对所述目标平台上任意两点之间用不同大小的消息进行延迟测试和带宽测试, 得到一个N+N大小的网络拓扑图,步骤(2.2)按设定次数重复步骤(2.1),得到一个用测试结果平均值表示的N+N大小 的网络拓扑图NTG (Network Topology Graph); 步骤3)获得并行程序的通信配置文件用户在编译应用程序时,链接通信记录动态插装库SIM-MPI,运行插装后的并行程序, 得到并行程序的通信配置文件Profile,其中,对于点通信,至少记录有消息类型,消息大 小,消息源和目的地址,对于组通信,至少记录有消息大小,根进程,以及通信域,从而 对不同的进程创建不同的通信配置信息,并以映射表形式保存各通信配置信息; 歩骤4)提取点通信矩阵从步骤(3)得到的通信配置文件Profile中直接提取点通信信息,得到并行程序的点通 信矩阵,任意地从第M进程向第N进程发送一个消息K,则在点通信矩阵的M*N和N*M 的位置都记录K, K是一个向量序列,对于点通信,至少记录有消息类型,消息大小,消息源和目的地址,歩骤5)分解组通信函数,得到组通信矩阵 其歩骤如下步骤5.1)从通信配置文件中依次提取组通信信息,歩骤5.2)从歩骤(5.1)得到的组通信信息中,提取对应的组通信号、目标平台通信库的名称和版本号,输入所述组通信分解知识库,步骤5.3)在所述组通信分解知识库中寻找对应的组通信函数分解算法,步骤5.4)对步骤(5.2)所述的组通信按照步骤(5.3)找到的分解算法进行分解,把 分解后的结果记录到对应的组通信矩阵中,得到并行程序的组通信矩阵; 歩骤6)获得并行程序的通信拓扑图将歩骤(4),步骤(5)分别得到的并行程序的点通信矩阵和组通信矩阵线性叠加,得 到并行程序的通信拓扑图CTG (Communication Topology Graph); 歩骤7)通过图划分算法得到最优进程映射通过K-way图划分算法计算所述通信拓扑图CTG到目标平台网络拓扑图NTG的最小 通信开销的映射方式,其歩骤如下歩骤7.1)初始化,将所述通信拓扑图CTG随机映射到所述目标平台网络拓扑阁NTG, 得到映射图形CNG (Communication and Network Graph),其中映射图形CNG的每个节点对 应图CTG和图NTG中一个节点,假设CTG和NTG有相同节点个数,CTG的边的权重表 示通信频率和通信量,NTG边的权重表示通信延迟和带宽,CTG映射到NTG得到CNG的边的权重使用Hockney通信模型计算,假设CNG所有边的权重和为R ,歩骤7.2)从上述CNG图中任意取两个节点,交换对应的CTG和NTG节点,得到新的映射图C7VG',假设C」VG'所有边的权重和为^ ,其中,每个f值对应一个映射图GVG'步骤7.3)重复歩骤(7.2),直到图CNG中所有节点全交换一次,这样得到一组H直, 歩骤7.4)选取上述e值最大时对应的映射图CWG',分别记做sm和QVG ,歩骤7.5)用歩骤(7.4)得到的图CM^作为新的初始值,重复步骤(7.2)到步骤(7.4),重复次数为P/2-l次,其中P为进程数,这样得到P/2个 ,值和映射图,歩骤7.6)分别计算步骤(7.5)得到的P/2个&值的前K项和& ,其中<formula>formula see original document page 8</formula>,本文档来自技高网
...

【技术保护点】
基于配置文件的并行程序自动映射实现方法,其特征在于,所述方法是在计算机上依次按以下步骤实现的: 步骤1)初始化 建立一个通信记录动态插装库SIM-MPI, 建立一个组通信分解算法知识库,其中集成了以太网、Myrinet、以及Infiniband三种网络平台的消息通信库MPI的组通信函数分解算法,以及与所述各组通信函数算法内含的点对点通信进程为基础的进程映射配置文件,以便把所有组通信函数分解为若干次设定的点对点通信并映射到对应的物理计算单元中; 步骤2)获得目标平台的网络拓扑图 对输入计算机的目标平台上N个节点的网络拓扑图,按下述方法使用N个进程测试,得到一个N*N大小的网络拓扑图,其步骤如下: 步骤(2.1)每次有N/2对进程同时进行通信,用基于消息通信库MPI的乒乓测试方法Ping-Pong,对所述目标平台上任意两点之间用不同大小的消息进行延迟测试和带宽测试,得到一个N*N大小的网络拓扑图, 步骤(2.2)按设定次数重复步骤(2.1),得到一个用测试结果平均值表示的N*N大小的网络拓扑图NTG; 步骤3)获得并行程序的通信配置文件 用户在编译应用程序时,链接通信记录动态插装库SIM-MPI,运行插装后的并行程序,得到并行程序的通信配置文件Profile,其中,对于点通信,至少记录有消息类型,消息大小,消息源和目的地址,对于组通信,至少记录有消息大小,根进程,以及通信域,从而对不同的进程创建不同的通信配置信息,并以映射表形式保存各通信配置信息; 步骤4)提取点通信矩阵 从步骤(3)得到的通信配置文件Profile中直接提取点通信信息,得到并行程序的点通信矩阵,任意地从第M进程向第N进程发送一个消息K,则在点通信矩阵的M*N和N*M的位置都记录K,K是一个向量序列,对于点通信,至少记录有消息类型,消息大小,消息源和目的地址, 步骤5)分解组通信函数,得到组通信矩阵 其步骤如下: 步骤5.1)从通信配置文件中依次提取组通信信息, 步骤5.2)从步骤(5.1)得到的组通信信息中,提取对应的组通信号、目标平台通信库的名称和版本号,输入所述组通信分解知识库, 步骤5.3)在所述组通信分解知识库中寻找对应的组通信函数分解算法, 步骤5.4)对步骤(5.2)所述的组通信按照步骤(5.3)找到的分解算法进行分解,把分解后的结果记录到对应的组通信矩阵中,得到并行程序的组通信矩阵;步骤6)获得并行程序的通信拓扑图 将步骤(4),步...

【技术特征摘要】

【专利技术属性】
技术研发人员:郑纬民陈文光翟季冬张瑾
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利