[发明专利]一种通过函数编程模型支持大规模分布式并行计算的方法无效
申请号: | 200810235435.9 | 申请日: | 2008-12-02 |
公开(公告)号: | CN101446898A | 公开(公告)日: | 2009-06-03 |
发明(设计)人: | 吕琦;李文中;陆桑璐;陈道蓄 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 南京苏高专利商标事务所(普通合伙) | 代理人: | 柏尚春 |
地址: | 210093*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种通过函数编程模型支持大规模分布式并行计算的方法,首先将基于过程的实现代码转换成函数式,然后消除函数的边际效应,再构造fork和forkout函数,进行模拟执行过程,当遇到函数调用时,将函数调用转换为将函数和其参数作为参数,传入伪调用函数。利用VOID的感染特性来对函数调用进行染色获取函数的调用关系。当到达程序的终点则产生一系列的函数执行序列,根据执行序列以及参数进行一次分布式计算,将结果缓冲起来,并对代码进行第二次执行,在此过程,遇到函数调用,直接返回已经缓冲的数据。本发明通过建立基于通用语言的并自动化归纳问题分割的模型,实现函数的分布调度执行算法,适合应用于大规模分布式系统。 | ||
搜索关键词: | 一种 通过 函数 编程 模型 支持 大规模 分布式 并行 计算 方法 | ||
【主权项】:
1、一种通过函数编程模型支持大规模分布式并行计算的方法,其特征在于包括以下步骤:1)首先,将过程式的程序代码转换为函数式代码,过程是:消除变量的存在,对于每一个变量的引用,用该变量赋值式右边的函数部分取代;2)然后,消除函数的边际效应,过程是:利用python代码的code对象的global字段,得到全局变量的访问信息,将对全局变量的读取转换为传入的参数,对全局变量的写入转换成返回值;3)通过fork和forkout函数,对消除了边际效用的函数进行两次执行过程,步骤是:复制frame对象,包括其本地变量和堆栈,随后把被复制的frame交给python虚拟机模拟执行,并且每当遇到函数调用的时候,将代码替换成伪调用代码;4)构造VOID类,使得任何对这个类的实例的任何操作都会返会这个类本身,通过此染色机制获知函数调用的依赖关系;5)利用伪调用函数,去执行原本需要执行的函数,传入的参数是一个任何对该类实例的操作都会返回这个实例本身的VOID类;6)执行到forkout函数时,将执行结果通过forkout函数返回,并将被复制的frame对象抛弃,将全局环境复原到执行之前的状态,并正常执行;7)forkout函数返回的是在模拟执行过程中产生的一系列可以并行执行的函数执行序列,根据这个执行序列以及参数进行一次分布式计算,将结果缓冲起来,并对代码进行第二次执行,在第二次执行的过程中,遇到函数调用,直接返回已经缓冲的数据。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200810235435.9/,转载请声明来源钻瓜专利网。