CN105045652A - 一种多终端共同处理多并行线程程序的方法和处理系统 - Google Patents
一种多终端共同处理多并行线程程序的方法和处理系统 Download PDFInfo
- Publication number
- CN105045652A CN105045652A CN201510394708.4A CN201510394708A CN105045652A CN 105045652 A CN105045652 A CN 105045652A CN 201510394708 A CN201510394708 A CN 201510394708A CN 105045652 A CN105045652 A CN 105045652A
- Authority
- CN
- China
- Prior art keywords
- terminal
- master terminal
- module
- parallel thread
- operation result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种多终端共同处理多并行线程程序的方法,其包括如下步骤:主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及获取每一个从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。主终端解析待执行的应用程序得到并行线程条数。主终端判定并行线程条数超过第一内核数,且判定存在第二数量大于等于第一数量、第二位数大于等于第一位数且从终端CPU占用率低于第一预设值的一个或多个从终端时,主终端与该一个从终端或多个从终端共同处理待执行的应用程序。本发明还公开一种实现该方法的处理系统。本发明通过多终端处理待执行的应用程序,提升了多并行线程程序的处理速度。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种多终端共同处理多并行线程程序的方法和处理系统。
背景技术
随着科技的发展,并行编程的运用越来越广泛,因此,具有多并行线程的程序越来越多。为了提升多并行线程程序的处理速率的问题,出现了多核处理器。但是,随着社会的发展,单一的多核处理器处理多并行线程程序的速率也不能满足人们的需求。
发明内容
有鉴于此,实有必要提供一种通过多终端共同处理多并行线程程序,以提升处理速率的方法,以及实现该方法的处理系统。
一种多终端共同处理多并行线程程序的方法,其包括如下步骤:
主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,主终端通过网络连接多个从终端。
主终端获取每一个从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。
主终端解析待执行的应用程序得到并行线程条数。
主终端判断并行线程条数是否超过第一内核数。
若超过,主终端判断是否存在符合兼容条件且符合分配条件的从终端;兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数;分配条件为从终端CPU占用率低于第一预设值。
若存在,主终端将符合兼容条件和分配条件的从终端作为目标终端。
主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
主终端接收每一个目标终端发送的第二运算结果。
主终端判断所有的并行线程是否执行完成。
若是,主终端规整所有的第一运算结果和第二运算结果得到最终运算结果。
优选地,主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果的步骤,包括:
第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息,主终端调用数据信息执行代码,以执行并行线程,主终端根据第一运行栈按序执行并行线程,主终端执行完第一运行栈后得到第一运算结果。
第二内核数条的并行线程构成第二运行栈,目标终端调用数据信息执行代码,以执行并行线程,目标终端根据第二运行栈按序执行并行线程,目标终端执行完成第二运行栈得到第二运算结果。
优选地,主终端判断所有的并行线程是否执行完成的步骤之后,还包括:
若否,主终端在佘下的并行线程中再执行第一内核数条的并行线程,且在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。
优选地,主终端判断并行线程条数是否超过第一内核数的步骤之后,还包括:
若未超过,主终端获取主终端CPU占用率。
主终端判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值。
若超过,主终端判断是否存在符合兼容条件和分配条件的从终端。
若存在,主终端将符合兼容条件和分配条件的从终端作为目标终端。
主终端分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
主终端接收每一个目标终端发送的第二运算结果。
主终端判断所有的并行线程是否执行完成。
若是,主终端规整所有的第二运算结果得到最终运算结果。
优选地,主终端判断是否存在符合兼容条件且符合分配条件的从终端的步骤之后,还包括:
若不存在,主终端执行待执行的应用程序得到最终运算结果。
一种多并行线程程序的处理系统,其包括主终端和多个从终端,主终端分别电性连接从终端。主终端包括获取模块、解析模块、判断模块、确定模块、第一运行模块、规整模块、第一发送模块和第一接收模块。从终端包括第二接收模块、第二运行模块和第二发送模块。获取模块,用于获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及还用于获取每一个从终端的第二内核数、第二通用寄存器的第二数量和第二位数。解析模块,用于解析待执行的应用程序得到并行线程条数。判断模块,用于判断并行线程条数是否超过第一内核数,以及还用于并行线程条数超过第一内核数时,判断是否存在符合兼容条件且符合分配条件的从终端,兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数,分配条件为从终端CPU占用率低于第一预设值。确定模块,用于确定符合兼容条件和分配条件的从终端为目标终端。第一运行模块,用于执行第一内核数条的并行线程得到第一运算结果。第一发送模块,用于分别分配第二内核数条的并行线程至目标终端。第二接收模块,用于接收第二内核数条的并行线程。第二运行模块,用于执行第二内核数条的并行线程得到第二运算结果。第二发送模块,用于发送第二运算结果至主终端。第一接收模块,用于接收第二运算结果。判断模块,还用于判断所有的并行线程是否执行完成。规整模块,用于判定所有的并行线程执行完成时,规整所有的第一运算结果和第二运算结果得到最终运算结果。
优选地,第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息。第一运行模块,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第一运行栈按序执行并行线程,以致执行完第一运行栈后得到第一运算结果。第二内核数条的并行线程构成第二运行栈。第二运行模块,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第二运行栈按序执行并行线程,以致执行完成第二运行栈得到第二运算结果。
优选地,第一运行模块,还用于所有的并行线程未执行完成时,在佘下的并行线程中再执行第一内核数条的并行线程,且第一发送模块,还用于在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。
优选地,获取模块,还用于并行线程条数未超过第一内核数时,获取主终端CPU占用率。判断模块,还用于判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值,以及还用于主终端CPU占用率超过第二预设值时,判断是否存在符合兼容条件和分配条件的从终端。确定模块,还用于将符合兼容条件和分配条件的从终端作为目标终端。第一发送模块,还用于分别分配第二内核数条的并行线程至目标终端。第二接收模块,还用于接收第二内核数条的并行线程。第二运行模块,用于执行第二内核数条的并行线程得到第二运算结果。第二发送模块,用于发送第二运算结果至所述主终端。第一接收模块,用于接收第二运算结果。判断模块,还用于判断所有的并行线程是否执行完成。规整模块,用于判定所有的并行线程执行完成时,规整所有的第二运算结果得到最终运算结果。
优选地,第一运行模块,还用于不存在符合兼容条件且符合分配条件的从终端时,执行待执行的应用程序得到最终运算结果。
本发明多终端共同处理多并行线程程序的方法中,主终端判定存在第二数量大于等于第一数量、第二位数大于等于第一位数且从终端CPU占用率低于第一预设值的一个或多个从终端时,主终端与该一个从终端或多个从终端共同处理待执行的应用程序,提升了多并行线程程序的处理速度。
附图说明
图1为本发明一种实施方式多并行线程程序的处理系统的功能模块示意图。
图2为本发明另一种实施方式多并行线程程序的处理系统的功能模块示意图。
图3为本发明一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。
图4为本发明另一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用来限定本发明。
如图1所示,其为一种实施方式多并行线程程序的处理系统的功能模块示意图。该多并行线程程序的处理系统包括一个主终端和多个从终端。此外,包括一个主终端和一个从终端的并行线程程序的处理系统也在本发明的保护范围内。为了更加详细的说明本发明专利,以下对包括一个主终端和一个从终端的多并行线程程序的处理系统进行详细描述。
该多并行线程程序的处理系统包括一个主终端和一个从终端,该主终端与从终端电性连接。主终端包括获取模块11、解析模块12、判断模块13、确定模块14、第一运行模块15、规整模块16、第一发送模块17和第一接收模块10。从终端包括第二接收模块22、第二运行模块21和第二发送模块20。主终端的获取模块11,用于获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及还用于获取每一个从终端的第二内核数、第二通用寄存器的第二数量和第二位数。主终端的解析模块12,用于解析待执行的应用程序得到并行线程条数。主终端的判断模块13,用于判断并行线程条数是否超过第一内核数,以及还用于并行线程条数超过第一内核数时,判断从终端是否符合兼容条件且符合分配条件,兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数,分配条件为从终端CPU占用率低于第一预设值。主终端的确定模块14,用于确定符合兼容条件和分配条件的从终端为目标终端。第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息。主终端的第一运行模块15,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第一运行栈按序执行并行线程,以致执行完第一运行栈后得到第一运算结果。主终端的第一发送模块17,用于分配第二内核数条的并行线程至目标终端。从终端的第二接收模块22,用于接收第二内核数条的并行线程。第二内核数条的并行线程构成第二运行栈。从终端的第二运行模块21,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第二运行栈按序执行并行线程,以致执行完成第二运行栈得到第二运算结果。从终端的第二发送模块20,用于发送第二运算结果至主终端。主终端的第一接收模块10,用于接收第二运算结果。主终端的判断模块13,还用于判断所有的并行线程是否执行完成。主终端的规整模块16,用于判定所有的并行线程执行完成时,规整所有的第一运算结果和第二运算结果得到最终运算结果。
此外,主终端的第一运行模块15,还用于所有的并行线程未执行完成时,在佘下的并行线程中再执行第一内核数条的并行线程,且主终端的第一发送模块17,还用于在佘下的并行线程中分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。
此外,主终端的获取模块11,还用于并行线程条数未超过第一内核数时,获取主终端CPU占用率。主终端的判断模块13,还用于判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值,以及还用于主终端CPU占用率超过第二预设值时,判断从终端是否符合兼容条件和分配条件。主终端的确定模块14,还用于将符合兼容条件和分配条件的从终端作为目标终端。主终端的第一发送模块17,还用于分配待执行的应用程序至目标终端。从终端的第二接收模块22,还用于接收待执行的应用程序。从终端的第二运行模块21,还用于执行待执行的应用程序得到最终运算结果。从终端的第二发送模块20,还用于发送最终运算结果至主终端。主终端的第一接收模块10,还用于接收最终运算结果。
此外,第一运行模块15,还用于不存在符合兼容条件且符合分配条件的从终端时,执行待执行的应用程序得到最终运算结果。
上述的多并行线程程序的处理系统中,主终端处理待执行的应用程序时,解析该程序包括多个并行线程,在判定从终端符合兼容条件和分配条件的情况下,主终端和从终端共同处理该待执行的应用程序,提升了该待执行的应用程序的处理速度。此外。在主终端的CPU占用率较高时,主终端将待执行的应用程序交互给从终端执行,进一步的解决了主终端处理速率较低的问题。
如图2所示,其为另一种实施方式多并行线程程序的处理系统的功能模块示意图。该多并行线程程序的处理系统包括一个主终端和多个从终端。为了更加详细的说明本发明专利,假设包括4个从终端,以下对包括一个主终端和4个从终端的多并行线程程序的处理系统进行详细描述。此外,假设上述4个从终端为第一从终端、第二从终端、第三从终端和第四从终端。其中第一从终端不符合兼容条件,其他的均符合兼容条件。第二从终端符合兼容条件但不符合分配条件。第三从终端和第四从终端符合兼容条件和分配条件。
该多并行线程程序的处理系统,其包括一个主终端和4个从终端,主终端分别电性连接第一从终端、第二从终端、第三从终端和第四从终端。主终端包括获取模块11、解析模块12、判断模块13、确定模块14、第一运行模块15、规整模块16、第一发送模块17和第一接收模块10。第一从终端、第二从终端、第三从终端和第四从终端均包括第二接收模块22、第二运行模块21和第二发送模块20。
主终端的获取模块11,用于获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及还用于获取每一个从终端的第二内核数、第二通用寄存器的第二数量和第二位数。主终端的解析模块12,用于解析待执行的应用程序得到并行线程条数。主终端的判断模块13,用于判断并行线程条数是否超过第一内核数,以及还用于并行线程条数超过第一内核数时,判断是否存在符合兼容条件且符合分配条件的从终端,兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数,分配条件为从终端CPU占用率低于第一预设值。主终端的确定模块14,用于确定符合兼容条件和分配条件的第三从终端和第四从终端为目标终端。第一内核数条的并行线程构成第一运行栈,每一条并行线程包括代码和数据信息。主终端的第一运行模块15,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第一运行栈按序执行并行线程,以致执行完第一运行栈后得到第一运算结果。主终端的第一发送模块17,用于分配第二内核数条的并行线程至目标终端。目标终端的第二接收模块22,用于接收第二内核数条的并行线程。第二内核数条的并行线程构成第二运行栈。目标终端的第二运行模块21,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第二运行栈按序执行并行线程,以致执行完成第二运行栈得到第二运算结果。目标终端的第二发送模块20,用于发送第二运算结果至主终端。主终端的第一接收模块10,用于接收第三从终端和第四从终端分别发送的第二运算结果。主终端的判断模块13,还用于判断所有的并行线程是否执行完成。主终端的规整模块16,用于判定所有的并行线程执行完成时,规整所有的第一运算结果和第二运算结果得到最终运算结果。
此外,主终端的第一运行模块15,还用于所有的并行线程未执行完成时,在佘下的并行线程中再执行第一内核数条的并行线程,且主终端的第一发送模块17,还用于在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,即第三从终端和第四从终端,以供目标终端执行,直至所有的并行线程执行完成。
此外,主终端的获取模块11,还用于并行线程条数未超过第一内核数时,获取主终端CPU占用率。主终端的判断模块13,还用于判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值,以及还用于主终端CPU占用率超过第二预设值时,判断是否存在符合兼容条件和分配条件的从终端。主终端的确定模块14,还用于将符合兼容条件和分配条件的第三从终端和第四从终端作为目标终端。主终端的判断模块13,还用于判断是否存在第二内核数超过并行线程条数的目标终端。假设第四从终端的第二内核数超过并行线程条数。主终端的第一发送模块17,还用于判定存在第二内核数超过并行线程条数的目标终端时,分配待执行的应用程序至第四从终端。第四从终端的第二接收模块22,还用于接收待执行的应用程序。第四从终端第二运行模块21,还用于执行待执行的应用程序得到最终运算结果。第四从终端第二发送模块20,还用于发送最终运算结果至主终端。主终端的第一接收模块10,还用于接收最终运算结果。
此外,主终端的第一发送模块17,还用于判定不存在第二内核数超过并行线程条数的目标终端时,分别分配第二内核数条的并行线程至目标终端。目标终端的第二接收模块22,还用于接收第二内核数条的并行线程。第二内核数条的并行线程构成第二运行栈。目标终端的第二运行模块21,用于调用数据信息执行代码,以执行并行线程,以及还用于根据第二运行栈按序执行并行线程,以致执行完成第二运行栈得到第二运算结果。主终端的第一接收模块10,用于接收第三从终端和第四从终端分别发送的第二运算结果。主终端的判断模块13,还用于判断所有的并行线程是否执行完成。主终端的规整模块16,用于判定所有的并行线程执行完成时,规整所有的第二运算结果得到最终运算结果。
此外,主终端的第一运行模块15,还用于所有的并行线程未执行完成时,主终端的第一发送模块17,还用于在佘下的并行线程中分别分配第二内核数条的并行线程至目标终端,以供目标终端执行,直至所有的并行线程执行完成。
此外,主终端的第一运行模块15,还用于不存在符合兼容条件且符合分配条件的从终端时,执行待执行的应用程序得到最终运算结果。
上述的多并行线程程序的处理系统中,主终端处理待执行的应用程序时,解析该程序包括多个并行线程,在判定多个从终端符合兼容条件和分配条件的情况下,主终端和多个从终端共同处理该待执行的应用程序,提升了该待执行的应用程序的处理速度。此外。在主终端的CPU占用率较高时,主终端将待执行的应用程序交互给一个从终端或多个从终端执行,进一步的解决了主终端处理速率较低的问题。
如图3所示,其为一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。该多终端共同处理多并行线程程序的方法包括一个主终端和多个从终端。此外,通过一个主终端和一个从终端实现的多终端共同处理多并行线程程序的方法也在本发明的保护范围以内。为了更加详细的说明本发明专利,以下对通过一个主终端和一个从终端实现的多终端共同处理多并行线程程序的方法进行详细的描述。该多终端共同处理多并行线程程序的方法包括如下步骤:
步骤S1,主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数。
步骤S2,主终端获取从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。
步骤S3,主终端解析待执行的应用程序得到并行线程条数。
步骤S4,主终端判断并行线程条数是否超过第一内核数。若是,执行步骤S5。若否,执行步骤S11。
步骤S5,主终端判断从终端是否符合兼容条件且符合分配条件。兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数。分配条件为从终端CPU占用率低于第一预设值。若符合,执行步骤S6。若不符合,执行步骤S17。
步骤S6,主终端将符合兼容条件和分配条件的从终端作为目标终端。
步骤S7,主终端执行第一内核数条的并行线程得到第一运算结果,且分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
步骤S8,主终端接收目标终端发送的第二运算结果。
步骤S9,主终端判断所有的并行线程是否执行完成。若是,执行步骤S10。若否,执行步骤S7。
步骤S10,主终端规整所有的第一运算结果和第二运算结果得到最终运算结果。
步骤S11,主终端获取主终端CPU占用率。
步骤S12,主终端判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值。若超过,执行步骤S13。若未超过,执行步骤S17。
步骤S13,主终端判断从终端是否符合兼容条件和分配条件。若符合,执行步骤S14。若不符合,执行步骤S17。
步骤S14,主终端将符合兼容条件和分配条件的从终端作为目标终端。
步骤S15,主终端分配待执行的应用程序至目标终端,以供目标终端执行得到最终运算结果。
步骤S16,主终端接收所需目标终端发送的最终运算结果。
步骤S17,主终端执行待执行的应用程序得到最终运算结果。
如图4所示,其为另一种实施方式多终端共同处理多并行线程程序的方法的流程示意图。该多并行线程程序的处理系统包括一个主终端和多个从终端。为了更加详细的说明本发明专利,以下对通过一个主终端和多个从终端实现的多终端共同处理多并行线程程序的方法进行详细的描述。该多终端共同处理多并行线程程序的方法包括如下步骤:
步骤S1,主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,主终端通过网络连接多个从终端。
步骤S2,主终端获取每一个从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数。
步骤S3,主终端解析待执行的应用程序得到并行线程条数。
步骤S4,主终端判断并行线程条数是否超过第一内核数。若超过,执行步骤S5。若未超过,执行步骤S11。
步骤S5,主终端判断是否存在符合兼容条件且符合分配条件的从终端。兼容条件为第二数量大于等于第一数量且第二位数大于等于第一位数。分配条件为从终端CPU占用率低于第一预设值。若存在,执行步骤S6。若不存在,执行步骤S19。
步骤S6,主终端将符合兼容条件和分配条件的从终端作为目标终端。
步骤S7,主终端执行第一内核数条的并行线程得到第一运算结果,且分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
步骤S8,主终端接收每一个目标终端发送的第二运算结果。
步骤S9,主终端判断所有的并行线程是否执行完成。若是,执行步骤S10。若否,执行步骤S7。
步骤S10,主终端规整所有的第一运算结果和第二运算结果得到最终运算结果。
步骤S11,主终端获取主终端CPU占用率。
步骤S12,主终端判断主终端CPU占用率是否超过第二预设值,第二预设值大于第一预设值。若超过,执行步骤S13。若未超过,执行步骤S19。
步骤S13,主终端判断是否存在符合兼容条件和分配条件的从终端。若存在,执行步骤S14。若不存在,执行步骤S19。
步骤S14,主终端将符合兼容条件和分配条件的从终端作为目标终端。
步骤S15,主终端分别分配第二内核数条的并行线程至目标终端,以供目标终端执行得到第二运算结果。
步骤S16,主终端接收每一个目标终端发送的第二运算结果。
步骤S17,主终端判断所有的并行线程是否执行完成。若是,执行步骤S18。若否,执行步骤S15。
步骤S18,主终端规整所有的所述第二运算结果得到最终运算结果。
步骤S19,主终端执行待执行的应用程序得到最终运算结果。
以上对发明的具体实施方式进行了详细说明,但其只作为范例,本发明并不限制与以上描述的具体实施方式。对于本领域的技术人员而言,任何对该发明进行的等同修改或替代也都在本发明的范畴之中,因此,在不脱离本发明的精神和原则范围下所作的均等变换和修改、改进等,都应涵盖在本发明的范围内。
Claims (10)
1.一种多终端共同处理多并行线程程序的方法,其特征在于,其包括如下步骤:
主终端获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,所述主终端通过网络连接多个从终端;
所述主终端获取每一个所述从终端的第二内核数、从终端CPU占用率、第二通用寄存器的第二数量和第二位数;
所述主终端解析待执行的应用程序得到并行线程条数;
所述主终端判断所述并行线程条数是否超过所述第一内核数;
若超过,所述主终端判断是否存在符合兼容条件且符合分配条件的所述从终端;所述兼容条件为所述第二数量大于等于所述第一数量且所述第二位数大于等于所述第一位数;所述分配条件为所述从终端CPU占用率低于第一预设值;
若存在,所述主终端将符合所述兼容条件和所述分配条件的所述从终端作为目标终端;
所述主终端执行所述第一内核数条的并行线程得到第一运算结果,且分别分配所述第二内核数条的并行线程至所述目标终端,以供所述目标终端执行得到第二运算结果;
所述主终端接收每一个所述目标终端发送的第二运算结果;
所述主终端判断所有的并行线程是否执行完成;
若是,所述主终端规整所有的所述第一运算结果和所述第二运算结果得到最终运算结果。
2.根据权利要求1所述的多终端共同处理多并行线程程序的方法,其特征在于,所述主终端执行所述第一内核数条的并行线程得到第一运算结果,且分别分配所述第二内核数条的并行线程至所述目标终端,以供所述目标终端执行得到第二运算结果的步骤,包括:
所述第一内核数条的并行线程构成第一运行栈,每一条所述并行线程包括代码和数据信息,所述主终端调用所述数据信息执行所述代码,以执行所述并行线程,所述主终端根据所述第一运行栈按序执行所述并行线程,所述主终端执行完所述第一运行栈后得到第一运算结果;
所述第二内核数条的并行线程构成第二运行栈,所述目标终端调用所述数据信息执行所述代码,以执行所述并行线程,所述目标终端根据所述第二运行栈按序执行所述并行线程,所述目标终端执行完成所述第二运行栈得到第二运算结果。
3.根据权利要求1或2所述的多终端共同处理多并行线程程序的方法,其特征在于,所述主终端判断所有的并行线程是否执行完成的步骤之后,还包括:
若否,所述主终端在余下的并行线程中再执行所述第一内核数条的并行线程,且在余下的并行线程中分别分配所述第二内核数条的并行线程至所述目标终端,以供所述目标终端执行,直至所有的并行线程执行完成。
4.根据权利要求1所述的多终端共同处理多并行线程程序的方法,其特征在于,所述主终端判断所述并行线程条数是否超过所述第一内核数的步骤之后,还包括:
若未超过,所述主终端获取主终端CPU占用率;
所述主终端判断所述主终端CPU占用率是否超过第二预设值,所述第二预设值大于所述第一预设值;
若超过,所述主终端判断是否存在符合所述兼容条件和所述分配条件的所述从终端;
若存在,所述主终端将符合所述兼容条件和所述分配条件的所述从终端作为目标终端;
所述主终端分别分配所述第二内核数条的并行线程至所述目标终端,以供所述目标终端执行得到第二运算结果;
所述主终端接收每一个所述目标终端发送的第二运算结果;
所述主终端判断所有的并行线程是否执行完成;
若是,所述主终端规整所有的所述第二运算结果得到最终运算结果。
5.根据权利要求1或4所述的多终端共同处理多并行线程程序的方法,其特征在于,所述主终端判断是否存在符合兼容条件且符合分配条件的所述从终端的步骤之后,还包括:
若不存在,所述主终端执行所述待执行的应用程序得到最终运算结果。
6.一种多并行线程程序的处理系统,其特征在于,所述处理系统包括主终端和多个从终端,所述主终端分别电性连接所述从终端;所述主终端包括获取模块、解析模块、判断模块、确定模块、第一运行模块、规整模块、第一发送模块和第一接收模块,所述从终端包括第二接收模块、第二运行模块和第二发送模块;所述获取模块,用于获取自身的第一内核数、第一通用寄存器的第一数量和第一位数,以及还用于获取每一个所述从终端的第二内核数、第二通用寄存器的第二数量和第二位数;所述解析模块,用于解析待执行的应用程序得到并行线程条数;所述判断模块,用于判断所述并行线程条数是否超过所述第一内核数,以及还用于所述并行线程条数超过所述第一内核数时,判断是否存在符合兼容条件且符合分配条件的所述从终端,所述兼容条件为所述第二数量大于等于所述第一数量且所述第二位数大于等于所述第一位数,所述分配条件为所述从终端CPU占用率低于第一预设值;所述确定模块,用于确定符合所述兼容条件和所述分配条件的所述从终端为目标终端;所述第一运行模块,用于执行所述第一内核数条的并行线程得到第一运算结果;所述第一发送模块,用于分别分配所述第二内核数条的并行线程至所述目标终端;所述第二接收模块,用于接收所述第二内核数条的并行线程;所述第二运行模块,用于执行所述第二内核数条的并行线程得到第二运算结果;所述第二发送模块,用于发送所述第二运算结果至所述主终端;所述第一接收模块,用于接收所述第二运算结果;所述判断模块,还用于判断所有的并行线程是否执行完成;所述规整模块,用于判定所有的并行线程执行完成时,规整所有的所述第一运算结果和所述第二运算结果得到最终运算结果。
7.根据权利要求6所述的多并行线程程序的处理系统,其特征在于,所述第一内核数条的并行线程构成第一运行栈,每一条所述并行线程包括代码和数据信息,所述第一运行模块,用于调用所述数据信息执行所述代码,以执行所述并行线程,以及还用于根据所述第一运行栈按序执行所述并行线程,以致执行完所述第一运行栈后得到第一运算结果;所述第二内核数条的并行线程构成第二运行栈,所述第二运行模块,用于调用所述数据信息执行所述代码,以执行所述并行线程,以及还用于根据所述第二运行栈按序执行所述并行线程,以致执行完成所述第二运行栈得到第二运算结果。
8.根据权利要求6或7所述的多并行线程程序的处理系统,其特征在于,所述第一运行模块,还用于所有的并行线程未执行完成时,在余下的并行线程中再执行所述第一内核数条的并行线程,且所述第一发送模块,还用于在余下的并行线程中分别分配所述第二内核数条的并行线程至所述目标终端,以供所述目标终端执行,直至所有的并行线程执行完成。
9.根据权利要求6所述的多并行线程程序的处理系统,其特征在于,所述获取模块,还用于所述并行线程条数未超过所述第一内核数时,获取主终端CPU占用率;所述判断模块,还用于判断所述主终端CPU占用率是否超过第二预设值,所述第二预设值大于所述第一预设值,以及还用于所述主终端CPU占用率超过第二预设值时,判断是否存在符合所述兼容条件和所述分配条件的所述从终端;所述确定模块,还用于将符合所述兼容条件和所述分配条件的所述从终端作为目标终端;所述第一发送模块,还用于分别分配所述第二内核数条的并行线程至所述目标终端;所述第二接收模块,还用于接收所述第二内核数条的并行线程;所述第二运行模块,用于执行所述第二内核数条的并行线程得到第二运算结果;所述第二发送模块,用于发送所述第二运算结果至所述主终端;所述第一接收模块,用于接收所述第二运算结果;所述判断模块,还用于判断所有的并行线程是否执行完成;所述规整模块,用于判定所有的并行线程执行完成时,规整所有的所述第二运算结果得到最终运算结果。
10.根据权利要求6或9所述的多并行线程程序的处理系统,其特征在于,所述第一运行模块,还用于不存在符合兼容条件且符合分配条件的所述从终端时,执行所述待执行的应用程序得到最终运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510394708.4A CN105045652B (zh) | 2015-07-07 | 2015-07-07 | 一种多终端共同处理多并行线程程序的方法和处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510394708.4A CN105045652B (zh) | 2015-07-07 | 2015-07-07 | 一种多终端共同处理多并行线程程序的方法和处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105045652A true CN105045652A (zh) | 2015-11-11 |
CN105045652B CN105045652B (zh) | 2018-11-13 |
Family
ID=54452216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510394708.4A Expired - Fee Related CN105045652B (zh) | 2015-07-07 | 2015-07-07 | 一种多终端共同处理多并行线程程序的方法和处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045652B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694698A (zh) * | 2017-04-01 | 2018-10-23 | 英特尔公司 | 针对执行块的分层通用寄存器堆(grf) |
CN109508239A (zh) * | 2017-09-15 | 2019-03-22 | 北京国双科技有限公司 | 进程的控制方法及装置 |
CN110753200A (zh) * | 2019-09-30 | 2020-02-04 | 北京智明星通科技股份有限公司 | 多媒体信息录入方法及装置、终端和计算机可读存储介质 |
WO2023109338A1 (zh) * | 2021-12-14 | 2023-06-22 | 中兴通讯股份有限公司 | 内核的负荷控制方法及装置、计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520915A (zh) * | 2011-11-25 | 2012-06-27 | 华为技术有限公司 | 非统一内存访问系统中线程化串行程序的方法及装置 |
CN102609316A (zh) * | 2012-02-07 | 2012-07-25 | 中山爱科数字科技股份有限公司 | 一种网络计算资源的管理系统及方法 |
CN103428217A (zh) * | 2013-08-19 | 2013-12-04 | 中国航空动力机械研究所 | 分布式并行计算的作业分配方法及分配系统 |
US20140122844A1 (en) * | 2012-11-01 | 2014-05-01 | International Business Machines Corporation | Intelligent context management |
CN103793270A (zh) * | 2012-10-26 | 2014-05-14 | 百度在线网络技术(北京)有限公司 | 终端应用程序的迁移方法、装置及终端 |
-
2015
- 2015-07-07 CN CN201510394708.4A patent/CN105045652B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520915A (zh) * | 2011-11-25 | 2012-06-27 | 华为技术有限公司 | 非统一内存访问系统中线程化串行程序的方法及装置 |
CN102609316A (zh) * | 2012-02-07 | 2012-07-25 | 中山爱科数字科技股份有限公司 | 一种网络计算资源的管理系统及方法 |
CN103793270A (zh) * | 2012-10-26 | 2014-05-14 | 百度在线网络技术(北京)有限公司 | 终端应用程序的迁移方法、装置及终端 |
US20140122844A1 (en) * | 2012-11-01 | 2014-05-01 | International Business Machines Corporation | Intelligent context management |
CN103428217A (zh) * | 2013-08-19 | 2013-12-04 | 中国航空动力机械研究所 | 分布式并行计算的作业分配方法及分配系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694698A (zh) * | 2017-04-01 | 2018-10-23 | 英特尔公司 | 针对执行块的分层通用寄存器堆(grf) |
CN109508239A (zh) * | 2017-09-15 | 2019-03-22 | 北京国双科技有限公司 | 进程的控制方法及装置 |
CN110753200A (zh) * | 2019-09-30 | 2020-02-04 | 北京智明星通科技股份有限公司 | 多媒体信息录入方法及装置、终端和计算机可读存储介质 |
WO2023109338A1 (zh) * | 2021-12-14 | 2023-06-22 | 中兴通讯股份有限公司 | 内核的负荷控制方法及装置、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105045652B (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4053711A1 (en) | Consensus method for blockchain, and consensus node, electronic device and storage medium | |
CN110716796B (zh) | 智能任务调度方法及装置、存储介质、电子设备 | |
CN105045652A (zh) | 一种多终端共同处理多并行线程程序的方法和处理系统 | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN110474903B (zh) | 可信数据获取方法、装置及区块链节点 | |
CN108255602B (zh) | 任务组合方法及终端设备 | |
CN109544439B (zh) | 一种基于多核处理器的解码方法、终端设备及存储介质 | |
CN106874100B (zh) | 计算资源分配方法及装置 | |
CN105138693A (zh) | 一种访问数据库的方法及装置 | |
CN107589990B (zh) | 一种基于线程池的数据通讯的方法及系统 | |
CN106339802A (zh) | 任务分配的方法和装置、电子设备 | |
CN114529413A (zh) | 一种区块链交易的处理方法、区块链节点及电子设备 | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN110968411A (zh) | 定时任务调度方法、装置、服务器及存储介质 | |
CN108170493B (zh) | 一种系统模块的加载方法、系统及装置 | |
CN115408173A (zh) | 一种事件处理方法、装置、电子设备及存储介质 | |
CN106156169B (zh) | 离散数据的处理方法和装置 | |
CN109033189B (zh) | 链路结构日志的压缩方法、装置、服务器及可读存储介质 | |
CN106385385B (zh) | 资源分配方法及装置 | |
CN110780988B (zh) | 一种任务触发方法、装置及计算机可读存储介质 | |
CN113835862B (zh) | 任务处理方法及装置 | |
CN110876852A (zh) | 微服务的网络游戏数据处理方法及系统 | |
CN112819358B (zh) | 数据处理方法、装置及设备 | |
US11916792B2 (en) | Vehicle communication control device and method | |
CN109542456B (zh) | 一种应用相似度的获得方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181113 Termination date: 20190707 |