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

文档序号:9326738阅读:299来源:国知局
一种多终端共同处理多并行线程程序的方法和处理系统的制作方法
【技术领域】
[0001]本发明涉及信息技术领域,尤其涉及一种多终端共同处理多并行线程程序的方法和处理系统。
【背景技术】
[0002]随着科技的发展,并行编程的运用越来越广泛,因此,具有多并行线程的程序越来越多。为了提升多并行线程程序的处理速率的问题,出现了多核处理器。但是,随着社会的发展,单一的多核处理器处理多并行线程程序的速率也不能满足人们的需求。

【发明内容】

[0003]有鉴于此,实有必要提供一种通过多终端共同处理多并行线程程序,以提升处理速率的方法,以及实现该方法的处理系统。
[0004]一种多终端共同处理多并行线程程序的方法,其包括如下步骤:
[0005]主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,主终端通过网络连接多个从终端。
[0006]主终端获取每一个从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。
[0007]主终端解析待执行的应用程序得到并行线程条数。
[0008]主终端判断并行线程条数是否超过第一内核数。
[0009]若超过,主终端判断是否存在符合兼容条件且符合分配条件的从终端;兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数;分配条件为从终端CPU占用率低于第一预设值。
[0010]若存在,主终端将符合兼容条件和分配条件的从终端作为目标终端。
[0011]主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
[0012]主终端接收每一个目标终端发送的第二运算结果。
[0013]主终端判断所有的并行线程是否执行完成。
[0014]若是,主终端规整所有的第一运算结果和第二运算结果得到最终运算结果。
[0015]优选地,主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果的步骤,包括:
[0016]第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息,主终端调用数据信息执行代码,以执行并行线程,主终端根据第一运行栈按序执行并行线程,主终端执行完第一运行栈后得到第一运算结果。
[0017]第二内核数条的并行线程构成第二运行栈,目标终端调用数据信息执行代码,以执行并行线程,目标终端根据第二运行栈按序执行并行线程,目标终端执行完成第二运行栈得到第二运算结果。
[0018]优选地,主终端判断所有的并行线程是否执行完成的步骤之后,还包括:
[0019]若否,主终端在佘下的并行线程中再执行第一内核数条的并行线程,且在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。
[0020]优选地,主终端判断并行线程条数是否超过第一内核数的步骤之后,还包括:
[0021]若未超过,主终端获取主终端CPU占用率。
[0022]主终端判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值。
[0023]若超过,主终端判断是否存在符合兼容条件和分配条件的从终端。
[0024]若存在,主终端将符合兼容条件和分配条件的从终端作为目标终端。
[0025]主终端分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
[0026]主终端接收每一个目标终端发送的第二运算结果。
[0027]主终端判断所有的并行线程是否执行完成。
[0028]若是,主终端规整所有的第二运算结果得到最终运算结果。
[0029]优选地,主终端判断是否存在符合兼容条件且符合分配条件的从终端的步骤之后,还包括:
[0030]若不存在,主终端执行待执行的应用程序得到最终运算结果。
[0031]—种多并行线程程序的处理系统,其包括主终端和多个从终端,主终端分别电性连接从终端。主终端包括获取模块、解析模块、判断模块、确定模块、第一运行模块、规整模块、第一发送模块和第一接收模块。从终端包括第二接收模块、第二运行模块和第二发送模块。获取模块,用于获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及还用于获取每一个从终端的第二内核数、第二通用寄存器的第二数量和第二位数。解析模块,用于解析待执行的应用程序得到并行线程条数。判断模块,用于判断并行线程条数是否超过第一内核数,以及还用于并行线程条数超过第一内核数时,判断是否存在符合兼容条件且符合分配条件的从终端,兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数,分配条件为从终端CPU占用率低于第一预设值。确定模块,用于确定符合兼容条件和分配条件的从终端为目标终端。第一运行模块,用于执行第一内核数条的并行线程得到第一运算结果。第一发送模块,用于分别分配第二内核数条的并行线程至目标终端。第二接收模块,用于接收第二内核数条的并行线程。第二运行模块,用于执行第二内核数条的并行线程得到第二运算结果。第二发送模块,用于发送第二运算结果至主终端。第一接收模块,用于接收第二运算结果。判断模块,还用于判断所有的并行线程是否执行完成。规整模块,用于判定所有的并行线程执行完成时,规整所有的第一运算结果和第二运算结果得到最终运算结果。
[0032]优选地,第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息。第一运行模块,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第一运行栈按序执行并行线程,以致执行完第一运行栈后得到第一运算结果。第二内核数条的并行线程构成第二运行栈。第二运行模块,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第二运行栈按序执行并行线程,以致执行完成第二运行栈得到第二运算结果。
[0033]优选地,第一运行模块,还用于所有的并行线程未执行完成时,在佘下的并行线程中再执行第一内核数条的并行线程,且第一发送模块,还用于在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。
[0034]优选地,获取模块,还用于并行线程条数未超过第一内核数时,获取主终端CPU占用率。判断模块,还用于判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值,以及还用于主终端CPU占用率超过第二预设值时,判断是否存在符合兼容条件和分配条件的从终端。确定模块,还用于将符合兼容条件和分配条件的从终端作为目标终端。第一发送模块,还用于分别分配第二内核数条的并行线程至目标终端。第二接收模块,还用于接收第二内核数条的并行线程。第二运行模块,用于执行第二内核数条的并行线程得到第二运算结果。第二发送模块,用于发送第二运算结果至所述主终端。第一接收模块,用于接收第二运算结果。判断模块,还用于判断所有的并行线程是否执行完成。规整模块,用于判定所有的并行线程执行完成时,规整所有的第二运算结果得到最终运算结果。
[0035]优选地,第一运行模块,还用于不存在符合兼容条件且符合分配条件的从终端时,执行待执行的应用程序得到最终运算结果。
[0036]本发明多终端共同处理多并行线程程序的方法中,主终端判定存在第二数量大于等于第一数量、第二位数大于等于第一位数且从终端CPU占用率低于第一预设值的一个或多个从终端时,主终端与该一个从终端或多个从终端共同处理待执行的应用程序,提升了多并行线程程序的处理速度。
【附图说明】
[0037]图1为本发明一种实施方式多并行线程程序的处理系统的功能模块示意图。
[0038]图2为本发明另一种实施方式多并行线程程序的处理系统的功能模块示意图。
[0039]图3为本发明一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。
[0040]图4为本发明另一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。
【具体实施方
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1