一种多终端共同处理多并行线程程序的方法和处理系统技术方案

技术编号:12309673 阅读:55 留言:0更新日期:2015-11-11 18:24
本发明专利技术公开了一种多终端共同处理多并行线程程序的方法,其包括如下步骤:主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及获取每一个从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。主终端解析待执行的应用程序得到并行线程条数。主终端判定并行线程条数超过第一内核数,且判定存在第二数量大于等于第一数量、第二位数大于等于第一位数且从终端CPU占用率低于第一预设值的一个或多个从终端时,主终端与该一个从终端或多个从终端共同处理待执行的应用程序。本发明专利技术还公开一种实现该方法的处理系统。本发明专利技术通过多终端处理待执行的应用程序,提升了多并行线程程序的处理速度。

【技术实现步骤摘要】

本专利技术涉及信息
,尤其涉及一种多终端共同处理多并行线程程序的方法和处理系统
技术介绍
随着科技的发展,并行编程的运用越来越广泛,因此,具有多并行线程的程序越来越多。为了提升多并行线程程序的处理速率的问题,出现了多核处理器。但是,随着社会的发展,单一的多核处理器处理多并行线程程序的速率也不能满足人们的需求。
技术实现思路
有鉴于此,实有必要提供一种通过多终端共同处理多并行线程程序,以提升处理速率的方法,以及实现该方法的处理系统。一种多终端共同处理多并行线程程序的方法,其包括如下步骤:主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,主终端通过网络连接多个从终端。主终端获取每一个从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。主终端解析待执行的应用程序得到并行线程条数。主终端判断并行线程条数是否超过第一内核数。若超过,主终端判断是否存在符合兼容条件且符合分配条件的从终端;兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数;分配条件为从终端CPU占用率低于第一预设值。若存在,主终端将符合兼容条件和分配条件的从终端作为目标终端。主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。主终端接收每一个目标终端发送的第二运算结果。主终端判断所有的并行线程是否执行完成。若是,主终端规整所有的第一运算结果和第二运算结果得到最终运算结果。优选地,主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果的步骤,包括:第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息,主终端调用数据信息执行代码,以执行并行线程,主终端根据第一运行栈按序执行并行线程,主终端执行完第一运行栈后得到第一运算结果。第二内核数条的并行线程构成第二运行栈,目标终端调用数据信息执行代码,以执行并行线程,目标终端根据第二运行栈按序执行并行线程,目标终端执行完成第二运行栈得到第二运算结果。优选地,主终端判断所有的并行线程是否执行完成的步骤之后,还包括:若否,主终端在佘下的并行线程中再执行第一内核数条的并行线程,且在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。优选地,主终端判断并行线程条数是否超过第一内核数的步骤之后,还包括:若未超过,主终端获取主终端CPU占用率。主终端判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值。若超过,主终端判断是否存在符合兼容条件和分配条件的从终端。若存在,主终端将符合兼容条件和分配条件的从终端作为目标终端。主终端分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。主终端接收每一个目标终端发送的第二运算结果。主终端判断所有的并行线程是否执行完成。若是,主终端规整所有的第二运算结果得到最终运算结果。优选地,主终端判断是否存在符合兼容条件且符合分配条件的从终端的步骤之后,还包括:若不存在,主终端执行待执行的应用程序得到最终运算结果。—种多并行线程程序的处理系统,其包括主终端和多个从终端,主终端分别电性连接从终端。主终端包括获取模块、解析模块、判断模块、确定模块、第一运行模块、规整模块、第一发送模块和第一接收模块。从终端包括第二接收模块、第二运行模块和第二发送模块。获取模块,用于获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及还用于获取每一个从终端的第二内核数、第二通用寄存器的第二数量和第二位数。解析模块,用于解析待执行的应用程序得到并行线程条数。判断模块,用于判断并行线程条数是否超过第一内核数,以及还用于并行线程条数超过第一内核数时,判断是否存在符合兼容条件且符合分配条件的从终端,兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数,分配条件为从终端CPU占用率低于第一预设值。确定模块,用于确定符合兼容条件和分配条件的从终端为目标终端。第一运行模块,用于执行第一内核数条的并行线程得到第一运算结果。第一发送模块,用于分别分配第二内核数条的并行线程至目标终端。第二接收模块,用于接收第二内核数条的并行线程。第二运行模块,用于执行第二内核数条的并行线程得到第二运算结果。第二发送模块,用于发送第二运算结果至主终端。第一接收模块,用于接收第二运算结果。判断模块,还用于判断所有的并行线程是否执行完成。规整模块,用于判定所有的并行线程执行完成时,规整所有的第一运算结果和第二运算结果得到最终运算结果。优选地,第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息。第一运行模块,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第一运行栈按序执行并行线程,以致执行完第一运行栈后得到第一运算结果。第二内核数条的并行线程构成第二运行栈。第二运行模块,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第二运行栈按序执行并行线程,以致执行完成第二运行栈得到第二运算结果。优选地,第一运行模块,还用于所有的并行线程未执行完成时,在佘下的并行线程中再执行第一内核数条的并行线程,且第一发送模块,还用于在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。优选地,获取模块,还用于并行线程条数未超过第一内核数时,获取主终端CPU占用率。判断模块,还用于判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值,以及还用于主终端CPU占用率超过第二预设值时,判断是否存在符合兼容条件和分配条件的从终端。确定模块,还用于将符合兼容条件和分配条件的从终端作为目标终端。第一发送模块,还用于分别分配第二内核数条的并行线程至目标终端。第二接收模块,还用于接收第二内核数条的并行线程。第二运行模块,用于执行第二内核数条的并行线程得到第二运算结果。第二发送模块,用于发送第二运算结果至所述主终端。第一接收模块,用于接收第二运算结果。判断模块,还用于判断所有的并行线程是否执行完成。规整模块,用于判定所有的并行线程执行完成时,规整所有的第二运算结果得到最终运算结果。优选地,第一运行模块,还用于不存在符合兼容条件且符合分配条件的从终端时,执行待执行的应用程序得到最终运算结果。本专利技术多终端共同处理多并行线程程序的方法中,主终端判定存在第二数量大于等于第一数量、第二位数大于等于第一位数且从终端CPU占用率低于第一预设值的一个或多个从终端时,主终端与该一个从终端或多个从终端共同处理待执行的应用程序,提升了多并行线程程序的处理速度。【附图说明】图1为本专利技术一种实施方式多并行线程程序的处理系统的功能模块示意图。图2为本专利技术另一种实施方式多并行线程程序的处理系统的功能模块示意图。图3为本专利技术一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。图4为本专利技术另一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。【具体实施方当前第1页1 2 3 4 本文档来自技高网...
一种多终端共同处理多并行线程程序的方法和处理系统

【技术保护点】
一种多终端共同处理多并行线程程序的方法,其特征在于,其包括如下步骤:主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,所述主终端通过网络连接多个从终端;所述主终端获取每一个所述从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数;所述主终端解析待执行的应用程序得到并行线程条数;所述主终端判断所述并行线程条数是否超过所述第一内核数;若超过,所述主终端判断是否存在符合兼容条件且符合分配条件的所述从终端;所述兼容条件为所述第二数量大于等于所述第一数量且所述第二位数大于等于所述第一位数;所述分配条件为所述从终端CPU占用率低于第一预设值;若存在,所述主终端将符合所述兼容条件和所述分配条件的所述从终端作为目标终端;所述主终端执行所述第一内核数条的并行线程得到第一运算结果,且分别分配所述第二内核数条的并行线程至所述目标终端,以供所述目标终端执行得到第二运算结果;所述主终端接收每一个所述目标终端发送的第二运算结果;所述主终端判断所有的并行线程是否执行完成;若是,所述主终端规整所有的所述第一运算结果和所述第二运算结果得到最终运算结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:代豪刘晓宁包健
申请(专利权)人:深圳市云舒网络技术有限公司
类型:发明
国别省市:广东;44

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

1