云平台环境下海量文献并行挖掘的负载分配方法及系统与流程

文档序号:17536096发布日期:2019-04-29 14:00阅读:218来源:国知局
云平台环境下海量文献并行挖掘的负载分配方法及系统与流程

本发明涉及海量文献数据的并行挖掘技术,具体涉及一种云平台环境下海量文献并行挖掘的负载分配方法及系统。



背景技术:

pubmed论文库(http://pubmed.cn/)中有3000万篇的论文摘要,是生物医学领域进行文本挖掘的重要数据来源,从这些摘要数据中自动提取基因、变异、疾病等实体及实体间的关系,可为上层应用开发提供高质量的基础数据支撑。由于pubmed论文库数据集数据量庞大,对这些海量生物医学文献的挖掘工作无法在单机上完成。为了提高pubmed论文库生物医学文献的文本挖掘效率,可以采用多计算节点的并行处理方法。

现有的采用多计算节点的并行处理一般直接为根据计算节点的处理器数量或者根据计算节点的资源状况来进行负载均衡,但是由于每篇论文的长度不同,仅考虑处理器数量或者根据计算节点的资源状况,很难对任务进行均衡的分配。在高性能计算机上利用mpi并行的方式对海量文献进行并行挖掘,存在负载分配不均衡,单个节点故障导致所有计算节点上的任务都需要重新启动,传统的检测点(checkpoint)容错开销很大等缺陷。因此,如何结合被挖掘对象(论文)的情况实现负载均衡,以及确保计算节点出现故障不会影响其他计算节点的继续运行,已经成为一项亟待解决的关键技术问题。



技术实现要素:

本发明要解决的技术问题是:针对现有技术的上述问题,提供一种云平台环境下海量文献并行挖掘的负载分配方法及系统。本发明具有拓扑结构简单、扩展性好、灵活度高、可靠性好的优点,能够动态确定所分配的任务大小,从而能够更好地实现计算节点间的负载均衡。

为了解决上述技术问题,本发明采用的技术方案为:

一种云平台环境下海量文献并行挖掘的负载分配方法,实施步骤包括:

1)接收某个计算节点的计算任务请求;

2)根据单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ、故障发生后需要增加的额外开销占无故障情况下运行开销的比率α计算该计算节点的最佳文献长度x;

3)根据该计算节点的最佳文献长度x确定选择文献的篇数k;

4)选择k篇待分配文献分配给计算节点。

可选地,步骤2)中计算该计算节点的最佳文献长度x的函数表达式如式(1)所示;

式(1)中,α为故障发生后需要增加的额外开销占无故障情况下运行开销的比率,p为单位时间内计算节点发生故障的概率,m为该计算节点的cpu核数,ts为计算任务的启动时间,τ为每单位长度文献的处理时间。

可选地,式(1)所示计算该计算节点的最佳文献长度x的函数表达式的推导过程如下:

s1)针对文献长度x的文献,考虑单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ,故障发生后需要增加的额外开销占无故障情况下运行开销的比率α,确定其单位长度的论文实际处理时间t(x)的函数表达式如式(2)所示;

式(2)中,ts为计算任务的启动时间,x为文献长度,τ为每单位长度文献的处理时间,m为该计算节点的cpu核数,p为单位时间内计算节点发生故障的概率,α为故障发生后需要增加的额外开销占无故障情况下运行开销的比率;

s2)令单位长度的论文实际处理时间t(x)的一阶导数为0,求得当单位长度的论文实际处理时间t(x)取最小值时最佳文献长度x的函数表达式如式(1)所示。

可选地,步骤3)中根据该计算节点的最佳文献长度x确定选择文献的篇数k时,选择文献的篇数k满足如式(3)所示的约束;

∑1≤i≤k-1ni≤x≤∑1≤i≤kni(3)

式(3)中,x为最佳文献长度x,ni为第i篇文献的长度,k为选择文献的篇数。

可选地,步骤1)中接收某个计算节点的计算任务请求时,包括接收计算任务请求,获取计算任务请求中包含该计算节点的cpu核数m的步骤。

本发明还提供一种云平台环境下海量文献并行挖掘的负载分配系统,包括:

请求接收程序单元,用于接收某个计算节点的计算任务请求;

最佳文献长度计算程序单元,用于根据单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ计算该计算节点的最佳文献长度x;

文献篇数计算程序单元,用于根据该计算节点的最佳文献长度x确定选择文献的篇数k;

文献分配程序单元,用于选择k篇待分配文献分配给计算节点。

可选地,所述最佳文献长度计算程序单元计算该计算节点的最佳文献长度x的函数表达式如式(1)所示;

式(1)中,α为故障发生后需要增加的额外开销占无故障情况下运行开销的比率,p为单位时间内计算节点发生故障的概率,m为该计算节点的cpu核数,ts为计算任务的启动时间,τ为每单位长度文献的处理时间。

可选地,所述文献篇数计算程序单元根据该计算节点的最佳文献长度x确定选择文献的篇数k时,选择文献的篇数k满足如式(3)所示的约束;

∑1≤i≤k-1ni≤x≤∑1≤i≤kni(3)

式(3)中,x为最佳文献长度x,ni为第i篇文献的长度,k为选择文献的篇数。

本发明还提供一种云平台环境下海量文献并行挖掘的负载分配系统,包括计算机设备,所述计算机设备被编程以执行本发明前述云平台环境下海量文献并行挖掘的负载分配方法的步骤;或者所述计算机设备的存储介质中存储有被编程以执行本发明前述云平台环境下海量文献并行挖掘的负载分配方法的计算机程序。

本发明还提供一种云平台环境下海量文献并行挖掘系统,包括服务节点和计算节点,所述服务节点被编程以执行本发明前述云平台环境下海量文献并行挖掘的负载分配方法的步骤,所述计算节点对分配的负载执行文献挖掘,并将文献挖掘结果存储到云存储服务器中。

和现有技术相比,本发明具有下述优点:

1、本发明云平台环境下海量文献并行挖掘的负载分配方法采用集中式的任务分发机制,通过单一服务节点负责文本挖掘任务的分发,计算节点负责对生物医学文献进行实体和实体间关系的挖掘,计算节点间任务独立,某一个计算节点出现故障不会影响其他计算节点的继续运行,用户可以根据需要自行添加计算节点的数目来加速文本挖掘的过程,具有拓扑结构简单、扩展性好、灵活度高、可靠性好的优点。

2、本发明针对每一个计算节点根据单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ计算该计算节点的最佳文献长度x,并根据该计算节点的最佳文献长度x确定选择文献的篇数k,能够动态确定所分配的任务大小,从而能够更好地实现计算节点间的负载均衡。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例的系统拓扑结构示意图。

具体实施方式

下文将以海量生物医学文献挖掘为例,对本发明云平台环境下海量文献并行挖掘的负载分配方法及系统进行进一步的详细说明。需要说明的是,对本发明云平台环境下海量文献并行挖掘的负载分配方法及系统和具体的行业或领域无关,而且文献可以为论文数据,也可以根据需要采用专利文献。

如图1所示,本实施例云平台环境下海量文献并行挖掘的负载分配方法的实施步骤包括:

1)接收某个计算节点的计算任务请求;

2)根据单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ、故障发生后需要增加的额外开销占无故障情况下运行开销的比率α计算该计算节点的最佳文献长度x;

3)根据该计算节点的最佳文献长度x确定选择文献的篇数k;

4)选择k篇待分配文献分配给计算节点。

本实施例中,计算节点主动从服务节点获取自己的任务,每完成一个任务,将计算结果上传至aws的s3存储服务器,然后从服务节点获取新的任务。从aws的s3存储服务器的结果中可以根据需要提取感兴趣的部分,形成自己的数据库。本实施例云平台环境下海量文献并行挖掘的负载分配方法实际上是服务节点上运行的方法,服务节点维护着一个论文列表,列表里面记录的是当前尚未处理的论文编号。服务节点上有一个守护进程(serverdaemon),专门负责处理计算节点的任务请求。每接收到一个计算节点的任务请求,守护进程就计算出给该计算节点分配的论文篇数k,并从论文列表中分配相应的k个论文编号给请求的计算节点,并从论文列表中将这些论文编号删除。计算节点根据自己的节点性能,运行若干从事文本挖掘计算的进程。每个进程自行从服务节点获取新的任务,并根据获得的论文编号,对相应的论文进行文本挖掘的处理,包括基因、变异、疾病等实体的获取,以及变异和疾病间关系的获取等。完成上述文本挖掘任务后,将产生的结果上传至aws的s3存储服务器(云存储服务器),然后从服务节点获取新的计算任务。

本实施例云平台环境下海量文献并行挖掘的负载分配方法的核心是计算该计算节点的最佳文献长度x。在研究过程中,发现在对文本挖掘的过程中,计算任务的启动过程(包括请求任务,数据库导入等)需要较多时间,启动完成后,文本挖掘的处理时间与论文长度成正比,与计算节点的cpu核数成反比。在任务的运行过程中,节点发生故障的概率与任务运行时间的长短成正比。我们假设任务的启动时间为ts,每单位长度的论文处理时间为τ个单位时间,计算节点的cpu核数为m,单位时间内节点发生故障的概率为p,一旦发生故障,则需要对这些论文重新处理,产生的额外开销是正常运行时间的一半。基于上述发现,本实施例中计算该计算节点的最佳文献长度x的函数表达式的推导过程如下:

s1)针对文献长度x的文献,考虑单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ,确定其单位长度的论文实际处理时间t(x)的函数表达式如式(2)所示;

式(2)中,ts为计算任务的启动时间,x为文献长度,τ为每单位长度文献的处理时间,m为该计算节点的cpu核数,p为单位时间内计算节点发生故障的概率,α为故障发生后需要增加的额外开销占无故障情况下运行开销的比率。

s2)令单位长度的论文实际处理时间t(x)的一阶导数为0,求得当单位长度的论文实际处理时间t(x)取最小值时最佳文献长度x的函数表达式如式(1)所示。

式(1)中,α为故障发生后需要增加的额外开销占无故障情况下运行开销的比率,p为单位时间内计算节点发生故障的概率,m为该计算节点的cpu核数,ts为计算任务的启动时间,τ为每单位长度文献的处理时间。本实施例中,步骤2)中计算该计算节点的最佳文献长度x的函数表达式如式(1)所示。

本实施例中,步骤3)中根据该计算节点的最佳文献长度x确定选择文献的篇数k时,选择文献的篇数k满足如式(3)所示的约束;

∑1≤i≤k-1ni≤x≤∑1≤i≤kni(3)

式(3)中,x为最佳文献长度x,ni为第i篇文献的长度,k为选择文献的篇数。

服务节点根据上式计算得到x,然后从论文列表中依次取出k个摘要作为该计算节点本次申请的计算任务,令当前论文序列中第i篇论文的长度为ni个字符,论文摘要的篇数k满足如式(3)所示的约束即可实现良好的负载均衡。

本实施例中,步骤1)中接收某个计算节点的计算任务请求时,还包括接收计算任务请求,获取计算任务请求中包含该计算节点的cpu核数m的步骤。计算节点的机型对运行时间有重要影响,在请求任务的时候,计算节点需要将自身的cpu核数告知服务节点。此外,也可以根据需要将计算节点的cpu核数m预先配置好,但是由于这样需要额外配置,使得灵活性有所降低。本实施例中在各个计算节点的单位时间内计算节点发生故障的概率p、计算任务的启动时间ts、每单位长度文献的处理时间τ均相同的情况下,将单位时间内计算节点发生故障的概率p、计算任务的启动时间ts、每单位长度文献的处理时间τ预先在服务节点中统一配置。在各个计算节点的单位时间内计算节点发生故障的概率p、计算任务的启动时间ts、每单位长度文献的处理时间τ分别包含在计算节点的计算任务请求中,从而可以根据不同计算节点的特性来计算该计算节点的最佳文献长度x。

本实施例通过云平台环境下海量文献并行挖掘的负载分配方法对pubmed数据集中的200万篇pmc全文和1700万篇论文摘要进行了分析挖掘,共获得125万条基因变异和疾病间关系的记录,形成文本挖掘知识库,为解读基因变异提供了重要的技术支撑。

对应地,本实施例还提供一种云平台环境下海量文献并行挖掘的负载分配系统,包括:

请求接收程序单元,用于接收某个计算节点的计算任务请求;

最佳文献长度计算程序单元,用于根据单位时间内计算节点发生故障的概率p、该计算节点的cpu核数m、计算任务的启动时间ts、每单位长度文献的处理时间τ、故障发生后需要增加的额外开销占无故障情况下运行开销的比率α计算该计算节点的最佳文献长度x;

文献篇数计算程序单元,用于根据该计算节点的最佳文献长度x确定选择文献的篇数k;

文献分配程序单元,用于选择k篇待分配文献分配给计算节点。

本实施例中,最佳文献长度计算程序单元计算该计算节点的最佳文献长度x的函数表达式如式(1)所示;

式(1)中,α为故障发生后需要增加的额外开销占无故障情况下运行开销的比率,p为单位时间内计算节点发生故障的概率,m为该计算节点的cpu核数,ts为计算任务的启动时间,τ为每单位长度文献的处理时间。

本实施例中,所述文献篇数计算程序单元根据该计算节点的最佳文献长度x确定选择文献的篇数k时,选择文献的篇数k满足如式(3)所示的约束;

∑1≤i≤k-1ni≤x≤∑1≤i≤kni(3)

式(3)中,x为最佳文献长度x,ni为第i篇文献的长度,k为选择文献的篇数。

本实施例中还提供一种云平台环境下海量文献并行挖掘的负载分配系统,包括计算机设备,该计算机设备被编程以执行本实施例前述云平台环境下海量文献并行挖掘的负载分配方法的步骤。

本实施例中还提供一种云平台环境下海量文献并行挖掘的负载分配系统,包括计算机设备,该计算机设备的存储介质中存储有被编程以执行本实施例前述云平台环境下海量文献并行挖掘的负载分配方法的计算机程序

本实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程以执行本实施例前述云平台环境下海量文献并行挖掘的负载分配方法的计算机程序。

如图2所示,本实施例还提供一种云平台环境下海量文献并行挖掘系统,包括服务节点和计算节点,服务节点被编程以执行本实施例前述云平台环境下海量文献并行挖掘的负载分配方法的步骤,计算节点对分配的负载执行文献挖掘,并将文献挖掘结果存储到云存储服务器中。本实施例中,所有待处理的论文保存在awsefs(elasticfilesystem)存储中,所有计算节点共享,服务节点为ec2中的m5.large机型,计算节点为ec2中的r4.xlarge机型,每个计算节点上运行2个文本挖掘进程,计算节点完成上述文本挖掘任务后,将产生的文献挖掘结果上传至aws的s3存储服务器,然后从服务节点获取新的计算任务。

本实施例云平台环境下海量文献并行挖掘系统设置服务节点进行任务分发的机制,在aws云平台上实现了大规模分布并行文本挖掘工作,用户可以根据需要自行添加计算节点的数目来加速文本挖掘的过程。这种数据并行的方法有具有个计算节点间任务独立,某一个计算节点出现故障不会影响其他计算节点的继续运行;本实施例云平台环境下海量文献并行挖掘系统根据文本挖掘任务的具体情况,和计算节点的类型,动态确定所分配的任务块大小,从而很好地实现了计算节点间的负载均衡。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1