一种基于P2P的通用计算引擎制造技术

技术编号:34109313 阅读:9 留言:0更新日期:2022-07-12 01:04
本发明专利技术公开了一种基于P2P的通用计算引擎,包括:按需动态组网程序:由某个节点作为任务发起方节点发起计算任务,其调度服务根据计算任务信息确定各任务参与方节点,使各任务参与方节点与任务发起方节点组成一个子网络;任务启动程序:任务发起方节点的调度服务分发任务启动消息到各任务参与方节点的调度服务,各任务参与方节点的调度服务通知其内部计算服务,计算服务启动其任务引擎准备运行环境后,再启动任务进程,并在任务进程中和其它任务参与方节点建立通信通道和网络拓扑;任务执行程序:各任务参与方节点执行用户代码,并输出执行结果。本发明专利技术去中心化,通用性和安全性高。通用性和安全性高。通用性和安全性高。

【技术实现步骤摘要】
一种基于P2P的通用计算引擎


[0001]本专利技术涉及计算机软件领域,尤其涉及的是一种基于P2P的通用计算引擎。

技术介绍

[0002]我们把目前的分布式计算框架分为2类。
[0003]一种是建立在一个平的计算集群之上,即计算节点像是在同一个网络中,这样做的优点是高效,网络编程模型简单,计算模型可以很复杂。缺点是集中,门槛高,容易造成垄断,不利于计算的民主化。
[0004]另一种是像比特币网络一样的,它的计算节点分布在完全不同的地方,它鼓励参与,但为了安全考虑,每个节点上的计算任务比较单一,不能满足各种各样的计算需求。
[0005]前一种方式假设不存在安全问题,因为所有的计算节点都是受控的。第二种方式又因为假设节点都可能是恶意的而对计算的内容做了严格的限制,过分限制导致了表达能力不足。
[0006]已有技术:
[0007]Spark:通用的大数据计算框架,但一般运行在组织内部的计算集群上;Ray:简单通用的分布式计算框架,也是运行在本地或云端集群上;Hivemind:分布式深度学习框架基于P2P网络,但训练范式固定,耦合于pytorch,不考虑安全问题。
[0008]这是目前几个比较知名的有代表性的通用计算框架,其它很多框架基本上也可纳入上述泛型。但它们要么集中化,要么不通用,要么假定安全。
[0009]因此,现有技术存在缺陷,需要改进。

技术实现思路

[0010]本专利技术所要解决的技术问题是:提供一种去中心化,通用性和安全性高的基于P2P的通用计算引擎。
[0011]本专利技术的技术方案如下:一种基于P2P的通用计算引擎,包括:按需动态组网程序:由某个节点作为任务发起方节点发起计算任务,其调度服务根据计算任务信息确定各任务参与方节点,使各任务参与方节点与任务发起方节点组成一个子网络;任务启动程序:任务发起方节点的调度服务分发任务启动消息到各任务参与方节点的调度服务,各任务参与方节点的调度服务通知其内部计算服务,计算服务启动其任务引擎准备运行环境后,再启动任务进程,并在任务进程中和其它任务参与方节点建立通信通道和网络拓扑;任务执行程序:各任务参与方节点执行用户代码,并输出执行结果。
[0012]应用于上述技术方案,所述的基于P2P的通用计算引擎中,所述任务发起方节点为任务参与方节点之一。
[0013]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,还包括计算任务监控与报告程序:各任务参与方节点在执行用户代码时,还通过后台线程任务监控器监控或询问任务的状态、进度、健康信息,并由其报告引擎将信息上报给对应任务参与方节点的调
度服务。
[0014]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,还包括任务终止程序:当一个任务参与方节点发生异常或被用户主动终止时,由所述任务监控器发现并报告给本任务参与方节点的调度服务,再由其调度服务通知其它各任务参与方节点终止任务。
[0015]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,在通知其它各任务参与方节点终止任务时,是通知其他任务参与方节点的调度服务,再由其调度服务通知其对应的计算服务,在每一任务参与方节点的计算服务收到来自其调度服务的终止进程信号后,启动其任务引擎杀死进程。
[0016]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,任务引擎杀死进程后,还进行回收资源,并上报进程终止时间到其调度服务。
[0017]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,所述按需动态组网程序是在P2P网络上进行,所述任务发起方为所述P2P网络中的任意一节点。
[0018]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,所述任务执行程序中,各任务参与方节点执行的用户代码是相同的内置或经过审查的用户代码,并且,用户代码还通过Rosetta转化计算图并执行,最后输出结果。
[0019]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,所述任务执行程序中,还设置有审查所述用户代码的带激励的审查机制。
[0020]应用于上述各个技术方案,所述的基于P2P的通用计算引擎中,所述带激励的审查机制为:先通过自动化技术审查所述用户代码的安全性;如果通过,则通知若干审查者审查所述用户代码的安全性,综合若干审查者的的意见,给予审查者一定的奖励。
[0021]本专利技术的有益效果为:本专利技术可以允许用户自定义用户代码,所以具有很大的灵活性;又因为我们使用带有激励机制的人工审查制度,从而保证了代码的安全性。另外运行时的安全由Rosetta来保障;本专利技术具有:1、去中心化,鼓励参与,任何有兴趣或想获得收益的人都可贡献自己的力量,如提供数据、提供算力、提供存储、提供算法;2、通用,适合各种不同的任务,是任何缺大规模计算资源的人的一种拿来即用的选择;3、安全,因为底层的计算是基于安全多方计算(mpc)等隐私计算技术的,并且也引入有收益的人工审核者保证算法安全,从而也间接的保证了通用性。
附图说明
[0022]图1为本专利技术的按需动态组网示意图;
[0023]图2为本专利技术的任务启动和执行进程示意图;
[0024]图3为本专利技术的计算任务监控与报告进程示意图;
[0025]图4为本专利技术的任务终止进程示意图;
[0026]图5为本专利技术的带激励的审查机制流程图。
具体实施方式
[0027]以下结合附图和具体实施例,对本专利技术进行详细说明。
[0028]本实施例提供了一种基于P2P的通用计算引擎,其中,通用计算引擎包括按需动态组网程序、任务启动程序和任务执行程序。
[0029]其中,需动态组网程序是由某个节点作为任务发起方节点发起计算任务,本实施例的通用计算引擎的底层采用P2P网络,即所述按需动态组网程序是在P2P网络上进行,所述任务发起方为所述P2P网络中的任意一节点;通过任务发起方节点的调度服务根据计算任务的任务信息来确定计算任务的任务参与方节点,使各任务参与方节点组成一个子网络,其中,任务发起方节点也可以作为任务参与方节点,与其他任务参与方节点共同参与计算任务。
[0030]如图1所示,假设初始时节点以密集虚线连结,各节点为P2P邻居节点;当计算任务一过来时,节点间可能以实线连结构成一个子网,或者以较疏虚线连结构成一个子网;从一个节点发起的计算任务然后会通知子网中每个节点上的调度服务,再由调度服务通知内部的计算服务。
[0031]并且,任务启动程序是任务发起方节点的调度服务分发任务启动消息到各任务参与方节点的调度服务,各任务参与方节点的调度服务通知其内部计算服务,计算服务启动其任务引擎准备运行环境后,再启动任务进程,并在任务进程中和其它任务参与方节点建立通信通道和网络拓扑。
[0032]如图2所示,每一任务参与方节点的计算服务收到其调度服务过来的开始计算信号后,其会通知其任务引擎开始新任务,任务引擎收到信号后,任务引擎做好执行前的一系列准本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于P2P的通用计算引擎,其特征在于,包括:按需动态组网程序:由某个节点作为任务发起方节点发起计算任务,其调度服务根据计算任务信息确定各任务参与方节点,使各任务参与方节点与任务发起方节点组成一个子网络;任务启动程序:任务发起方节点的调度服务分发任务启动消息到各任务参与方节点的调度服务,各任务参与方节点的调度服务通知其内部计算服务,计算服务启动其任务引擎准备运行环境后,再启动任务进程,并在任务进程中和其它任务参与方节点建立通信通道和网络拓扑;任务执行程序:各任务参与方节点执行用户代码,并输出执行结果。2.根据权利要求1所述的基于P2P的通用计算引擎,其特征在于:所述任务发起方节点为任务参与方节点之一。3.根据权利要求1或2所述的基于P2P的通用计算引擎,其特征在于:还包括计算任务监控与报告程序:各任务参与方节点在执行用户代码时,还通过后台线程任务监控器监控或询问任务的状态、进度、健康信息,并由其报告引擎将信息上报给对应任务参与方节点的调度服务。4.根据权利要求3所述的基于P2P的通用计算引擎,其特征在于:还包括任务终止程序:当一个任务参与方节点发生异常或被用户主动终止时,由所述任务监控器发现并报告给本任务参与方节点的调度服务,再由其调度服务通知其它各任务参与方节点终止任务。5.根据权利要求4所述的基于P2P的通...

【专利技术属性】
技术研发人员:刘辉刘春明
申请(专利权)人:上海阵方科技有限公司
类型:发明
国别省市:

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

1