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

由序列通项表达式驱动的并行计算传输列表实时压缩方法技术

技术编号:11254894 阅读:112 留言:0更新日期:2015-04-02 03:32
本发明专利技术公开了一种由序列通项表达式驱动的并行计算传输列表实时压缩方法,包括:S1、传输列表的逻辑分解并将传输列表按对象归属地划分;S2、非线性部分优化,利用非线性部分不等式的表格化来继续缩小范围,用组内涉及的变量的范围来验证非线性部分不等式;S3、“代理”代码定制,对于只包含线性表达式的组,可以用“代理”代码;S4、消息结构化编码解码,所述消息是指为把传输列表发送给数据拥有者而所用的消息;S5、列表驱动的数据打包拆包,所述列表是指传输列表。本发明专利技术使用了表达式分析程序来自动化传输列表的压缩方案的定制,然后根据表达式分析程序的分析结果来生成能实现这些压缩方案的程序代码,具有操作容易、通信效率高的优点。

【技术实现步骤摘要】

本专利技术涉及并行计算机程序的数据通信研究领域,特别涉及一种由序列通项表达式驱动的并行计算传输列表实时压缩方法
技术介绍
以往解决并行计算的传输列表压缩问题的时候,有三种方案。这些方案不包括用传统的文件压缩算法压缩传输列表,原因是那些压缩算法的实时性达不到要求。第一种方案适用于某些特定的并行计算流程,这些流程已经有专用的软件封装数据通信过程了,例如Hypre、PESTc、ScaLAPACK等。封装的功能一般包括了传输列表的压缩,因此应用程序自身代码不用管传输列表。由于并行计算流程的特殊性,这些专用软件往往能为传输列表找到很简短的表示方式。这是因为在较窄应用范围内,传输列表往往是很有规律的,明确了规律之后就容易找到其最佳的表示方式。还有更幸运的情况,传输列表甚至不需要包含在数据通信消息中,这是因为在某些非常特殊的并行计算流程里,专用软件的程序可以在数据拥有者节点安排一段代码扮演“代理”的角色。这类“代理”可以在拥有者处通过计算生成一份一模一样的传输列表,替请求者递交给数据拥有者。第二种方案适用于某些简化的并行计算流程。这些流程非常简单,简单到可以配套“通用”软件框架来封装数据通信。典型的例子是Map-Reduce。这里“通用”打引号是因为那只是计算部分的通用,通信部分的流程则要按照简化的固定的模式来走。通信部分的简化使传输列表很结构化,有固定形式、甚至能预先确定,因此软件框架不需要知道数据的具体专业领域的信息,也不需要应用程序代码的帮助,就能做好传输列表的压缩甚至“代理”。第三种方案适用于通用的并行计算流程。这些流程通常使用通用的数据通信支持库来实现(例如MPI、PVM等),但需要程序自主管理数据传输过程。这种方法的数据传输,可以使用双边通信功能,也可以用单边通信功能。其中,双边是指数据请求者和数据拥有者两边,单边则特指数据请求者这一边。双边通信需要两边都知道传输列表。数据请求者当然是知道传输列表的,问题在于怎样让数据拥有者得到传输列表,和前面说的一样,可以把传输列表先发送给数据拥有者,也可以在拥有者处定制一份“代理”代码来计算出一份一模一样的传输列表。不管是发送还是计算,一旦应用程序的自身代码让两边都有了传输列表,双边通信就能很默契地高效完成了。单边通信实际上是由单边激发通信,真正的通信过程仍然要两边都参与。单边通信与双边通信的区别在于单边通信自动化了把传输列表发给数据拥有者的过程,因此单边通信不可能使用“代理”代码,并且对传输列表只能采取机械化的表示方式。上述第一种方案的缺点是专业领域上的适用面窄,其缺点的原因是需要针对非常特殊的并行计算流程,利用数据的专业领域信息,来定制传输列表的表示方式和“代理”代码。换到另外一种应用,专业领域上的差别可以是非常大的。上述第二种方案的缺点是计算流程上的适用面窄。其缺点的原因是并行计算流程过度简化,不能适应很多应用的计算需求。上述第三种方案的缺点是程序优化难度大,程序开发成本高。对于双边通信,应用程序要在自身代码中自主定制传输列表的表示方式和“代理”代码,过程繁琐。对于单边通信,由于传输列表已经被机械化地自动处理了,所以程序优化空间小,无法为传输列表选择较好的表示方式,也无法用“代理”代码来减少传输列表的发送。单边通信的优化,最直接的做法往往是换成合理的双边通信。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种由序列通项表达式驱动的并行计算传输列表实时压缩方法,用于实现并行计算传输列表的表示方式和“代理”代码的定制和实现。为了达到上述目的,本专利技术采用以下技术方案:由序列通项表达式驱动的并行计算传输列表实时压缩方法,包括下述步骤:S1、传输列表的逻辑分解并将传输列表按对象归属地划分,由于逻辑命题“对象在某地”在数学中可以用“对象的位置在某地范围内”这种不等式所表示,所以所述划分是通过求解由多维的不等式组得到的,而不等式组的求解可以先根据不等式之间的依赖关系拆分为相互独立的小不等式组,以降低求解的复杂度,这就是所述的逻辑分解;S2、非线性部分优化,利用非线性部分不等式的表格化来继续缩小范围,用组内涉及的变量的范围来验证非线性部分不等式;S3、“代理”代码定制,对于只包含线性表达式的组,只要该组表达式中的“常量”是在数据拥有者节点上可知的,那么该组就可以用“代理”代码;S4、消息结构化编码解码,所述消息是指为把传输列表发送给数据拥有者而所用的消息;S5、列表驱动的数据打包拆包,所述列表是指传输列表,所述数据打包是按照列表所指定的顺序,把发往某节点的数据集中放入一个消息中,以便用该消息把数据成批地发送给那个节点;数据拆包就是该消息的接收者把数据从消息中取出来;上述步骤S1-S5都和传输列表中的对象的逻辑位置有关,这些对象都存储在并行计算中逻辑概念上的共享数组时里,都被传输列表按照某种逻辑顺序来排列,假设传输列表的顺序是k维的,所请求的对象的数组是m维的,那么这段传输列表的序列的通项表达式就是关于k个变量的m维表达式,并且这k个变量变化的范围都由传输请求指定。优选的,步骤S1中,逻辑分解首先是按照上述k个变量在这m维表达式中的分布,把这m维分成若干组,使得不同组的表达式包含不同的变量,然后把每一组的有线性表达式的维找出来;按对象归属地划分是按照数组在不同节点上的分区,把传输列表分成若干个子表,每个子表中的对象都是一个节点的,不同子表的对象是不同节点的。优选的,当指定某个节点时,这m维的表达式,为了让其值落在该节点的区域内,每一维都能对应两个不等式,一个是该维表达式的值不小于该节点区域在这一维的下界,另一个是该维表达式的值不大于该节点区域在这一维的上界;所述逻辑分解,首先将这2m个不等式分成相互独立的若干组,每一组不等式的解都不会影响其它组的解;其次将容易求解的线性不等式找出来;求解这些不等式,可以把那k个变量在这个节点上指定有效对象的范围算出来,这个范围可以比变量的全局范围小很多;求解不等式的过程用的是几何方法,只处理线性表达式得到的不等式:每一个这样的线性不等式都对应一个超平面;所述超平面在多维空间中的性质和平面在三维空间中的性质类似,平面是超平面的特例,每一个这样的超平面都有可能把数据请求所用的变量的全局范围切掉一部分,所述全局范围即为一个超立方;这些超平面都切完之后,就剩下一个相对较小的有界凸集了。优选的,步骤S2中,用组本文档来自技高网
...
由序列通项表达式驱动的并行计算传输列表实时压缩方法

【技术保护点】
由序列通项表达式驱动的并行计算传输列表实时压缩方法,其特征在于,包括下述步骤:S1、传输列表的逻辑分解并将传输列表按对象归属地划分,由于逻辑命题“对象在某地”在数学中可以用“对象的位置在某地范围内”这种不等式所表示,所以所述划分是通过求解由多维的不等式组得到的,而不等式组的求解可以先根据不等式之间的依赖关系拆分为相互独立的小不等式组,以降低求解的复杂度,这就是所述的逻辑分解;S2、非线性部分优化,利用非线性部分不等式的表格化来继续缩小范围,用组内涉及的变量的范围来验证非线性部分不等式;S3、“代理”代码定制,对于只包含线性表达式的组,只要该组表达式中的“常量”是在数据拥有者节点上可知的,那么该组就可以用“代理”代码;S4、消息结构化编码解码,所述消息是指为把传输列表发送给数据拥有者而所用的消息;S5、列表驱动的数据打包拆包,所述列表是指传输列表,所述数据打包是按照列表所指定的顺序,把发往某节点的数据集中放入一个消息中,以便用该消息把数据成批地发送给那个节点;数据拆包就是该消息的接收者把数据从消息中取出来;上述步骤S1‑S5都和传输列表中的对象的逻辑位置有关,这些对象都存储在并行计算中逻辑概念上的共享数组时里,都被传输列表按照某种逻辑顺序来排列,假设传输列表的顺序是k维的,所请求的对象的数组是m维的,那么这段传输列表的序列的通项表达式就是关于k个变量的m维表达式,并且这k个变量变化的范围都由传输请求指定。...

【技术特征摘要】
1.由序列通项表达式驱动的并行计算传输列表实时压缩方法,其特征在于,
包括下述步骤:
S1、传输列表的逻辑分解并将传输列表按对象归属地划分,由于逻辑命题
“对象在某地”在数学中可以用“对象的位置在某地范围内”这种不等式所表
示,所以所述划分是通过求解由多维的不等式组得到的,而不等式组的求解可
以先根据不等式之间的依赖关系拆分为相互独立的小不等式组,以降低求解的
复杂度,这就是所述的逻辑分解;
S2、非线性部分优化,利用非线性部分不等式的表格化来继续缩小范围,
用组内涉及的变量的范围来验证非线性部分不等式;
S3、“代理”代码定制,对于只包含线性表达式的组,只要该组表达式中的
“常量”是在数据拥有者节点上可知的,那么该组就可以用“代理”代码;
S4、消息结构化编码解码,所述消息是指为把传输列表发送给数据拥有者
而所用的消息;
S5、列表驱动的数据打包拆包,所述列表是指传输列表,所述数据打包是
按照列表所指定的顺序,把发往某节点的数据集中放入一个消息中,以便用该
消息把数据成批地发送给那个节点;数据拆包就是该消息的接收者把数据从消
息中取出来;
上述步骤S1-S5都和传输列表中的对象的逻辑位置有关,这些对象都存储
在并行计算中逻辑概念上的共享数组时里,都被传输列表按照某种逻辑顺序来
排列,假设传输列表的顺序是k维的,所请求的对象的数组是m维的,那么这
段传输列表的序列的通项表达式就是关于k个变量的m维表达式,并且这k个
变量变化的范围都由传输请求指定。
2.根据权利要求1所述由序列通项表达式驱动的并行计算传输列表实时压
缩方法,其特征在于,步骤S1中,逻辑分解首先是按照上述k个变量在这m维
表达式中的分布,把这m维分成若干组,使得不同组的表达式包含不同的变量,
然后把每一组的有线性表达式的维找出来;按对象归属地划分是按照数组在不
同节点上的分区,把传输列表分成若干个子表,每个子表中的对象都是一个节
点的,不同子表的对象是不同节点的。
3.根据权利要求2所述由序列通项表达式驱动的并行计算传输列表实时压
缩方法,其特征在于,当指定某个节点时,这m维的表达式,为了让其值落在
该节点的区域内,每一维都能对应两个不等式,一个是该维表达式的值不小于

\t该节点区域在这一维的下界,另一个是该维表达式的值不大于该节点区域在这
一维的上界;所述逻辑分解,首先将这2m个不等式分成相互独立的若干组,每
一组不等式的解都不会影响其它组的解;其次将容易求解的线性不等式找出来;
求解这些不等式,可以把那k个变量在这个节点上指定有效对象的范围算出来,
这个范围可以比变量的全局范围小很多;求解不等式的过程用的是几何方法,
只处理线性表达式得到的不等式:每一个这样的线性不等式都对应一个超平面;
所述超平面在多维空间中的性质和平面在三维空间中的性质类似,平面是超平
面的特例,每一个这样的超平面都有可能把数据请求所用的变量的全局范围切
掉一部分,所述全局范围即为一个超立方;这些超平面都切完之后,就剩下一
个相对较小的有界凸集了。
4.根据权利要求1所述的由序列通项表达式驱动的并行计算传输列表实时
压缩方法,其特征在于,步骤S2中,用组内涉及的变量的范围来验证非线性部
分不等式的方法是:遍历所涉及的变量的取值范围,逐点检查非线性不等式是
否成立;当成立的点数所占比例低于事先确定的一个阈值时,就把非线性表达
式转变为表格,其中只包含非线性不等式成立的那些点,且表格的维数由非线
性不等式所涉及的变量数决定。
5.根据权利要求1所述的由序列通项...

【专利技术属性】
技术研发人员:吴峻峰许跃生张勇瑞林英展王健珊关文超何鸿恺李达超叶纬材张永东江颖
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

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

1