CN105045652A - 一种多终端共同处理多并行线程程序的方法和处理系统 - Google Patents

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

Info

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
Application number
CN201510394708.4A
Other languages
English (en)
Other versions
CN105045652B (zh
Inventor
代豪
刘晓宁
包健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd filed Critical SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd
Priority to CN201510394708.4A priority Critical patent/CN105045652B/zh
Publication of CN105045652A publication Critical patent/CN105045652A/zh
Application granted granted Critical
Publication of CN105045652B publication Critical patent/CN105045652B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的多并行线程程序的处理系统,其特征在于,所述第一运行模块,还用于不存在符合兼容条件且符合分配条件的所述从终端时,执行所述待执行的应用程序得到最终运算结果。
CN201510394708.4A 2015-07-07 2015-07-07 一种多终端共同处理多并行线程程序的方法和处理系统 Expired - Fee Related CN105045652B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 百度在线网络技术(北京)有限公司 终端应用程序的迁移方法、装置及终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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