[发明专利]一种基于Kahn进程网络的程序并行框架提取技术在审
申请号: | 201410855804.X | 申请日: | 2014-12-31 |
公开(公告)号: | CN104503734A | 公开(公告)日: | 2015-04-08 |
发明(设计)人: | 李尚杰;程胜;周志军;魏明;卓保特 | 申请(专利权)人: | 北京神舟航天软件技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京世誉鑫诚专利代理事务所(普通合伙)11368 | 代理人: | 孙国栋 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kahn 进程 网络 程序 并行 框架 提取 技术 | ||
1.一种基于Kahn进程网络的程序并行框架提取技术,其特征在于:基于局部化控制和分散内存的思想,从3个步骤应用程序转化成为进程网络完成程序并行框架提取:
步骤1、预处理:预处理过程首先将每条赋值语句的所有执行压缩成为一个进程,从而形成一个初始的进程网络;
步骤2、消费者进程重构:消费者进程重构是根据Kahn进程网络之间的通信是FIFO的基本要求,将生产者进程共同具有写操作的内存数组分解为独立的内存区域,然后调整、或者新增新的消费者进程的一个过程;
步骤3、生产者进程重构:生产者进程重构是指将多个消费者进程访问的内存数组替换为独立的内存数组,然后调整生产者进程结构的过程。
2.根据权利要求1所述的基于Kahn进程网络的程序并行框架提取技术,其特征在于:所述步骤2中,消费者进程重构过程将考虑每个进程的数据消耗,并且给出独立的内存数组,使得生产者进程可以存储数据;对于每个数组,确保只有一个生产者进程;
具体的实现过程如下:
1)、识别对相同内存数据具有写操作的生产者进程组;设Sr是对内存数组r写入数据的所有生产者进程的集合,Dr是所有从内存数组r读数据的消费者进程集合;
2)、拆分内存数组;对于每个进程利用独立的内存数组ri替代r来支持其写操作;
3)、建立起消费进程和生产进程的有效链接;为了确保程序的逻辑正确性,消费进程也必须从新的内存ri中读取数据;将ri与每个r的消费者连接;但是这样的链接中,存在许多无效链接;为了消除无效链接,执行与消费进程间的数据依赖分析,对于没有数据依赖的链接,则删除之,留下确实有数据依赖的链接;
4)、确定ri的范围;根据数据依赖分析,建立起一个仿射依赖函数,该函数在输入端口域上有效;一般地说,假如每个输入端口域可以利用一个k维的综合参数化多面体表示,即对于每个生产者对P/C,它可以由一个唯一的多面体C(N)和一个仿射依赖函数f表示;一个仿射依赖函数f表示为一个积分矩阵M和一个偏移向量O:f(x)=Mx+O;通过该依赖函数,可以确定对于每个生产者/消费者对在内存ri上的输入范围;
5)、重构消费者进程;根据每个ri及其输入端口域的范围,为消费者进程声称一个新进程,其循环上下界根据输入端口的范围确定。
3.根据权利要求2所述的基于Kahn进程网络的程序并行框架提取技术,其特征在于:所述步骤3中,步骤如下:
1)、对于每一内存数组,识别出相应的消费者进程集合,设Dr是读取内存数组r的所有消费者进程的集合;
2)、为每个消费者进程设立独立的内存数组ri来替代队r的访问;
3)、确定每个ri的输入域;由于消费者进程重构过程已经完成,对于每个内存数组r仅有一个进程Pr输入数据;那么就仅需确定Pr在每个ri上的输出;其输出为
4)、确定生产者满足ri的输入域y;这需要根据生产者和消费者之间的逆向数据流分析,求解数据流函数获得;
5)、根据每个独立的内存数组的输入范围重构生产者代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神舟航天软件技术有限公司;,未经北京神舟航天软件技术有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410855804.X/1.html,转载请声明来源钻瓜专利网。