CN105808342B - 用于分配客户请求的方法、判断装置和系统 - Google Patents
用于分配客户请求的方法、判断装置和系统 Download PDFInfo
- Publication number
- CN105808342B CN105808342B CN201410840257.8A CN201410840257A CN105808342B CN 105808342 B CN105808342 B CN 105808342B CN 201410840257 A CN201410840257 A CN 201410840257A CN 105808342 B CN105808342 B CN 105808342B
- Authority
- CN
- China
- Prior art keywords
- client request
- processing unit
- request function
- processing
- matched
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于分配客户请求的方法、判断装置和系统,其中,当接收到客户请求函数时,判断装置从客户请求函数中提取与资源开销相关联的参数,根据参数确定与客户请求函数相匹配的处理单元,从而系统将客户请求函数发送给相匹配的处理单元以进行相应的运算处理。本发明能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于分配客户请求的方法、判断装置和系统。
背景技术
目前计算行业正在从单一使用CPU(Central Processing Unit,中央处理器)向CPU与GPU(Graphic Processing Unit,图形处理器)并用的协同处理发展,由此,英伟达公司推出了CUDA(Compute Unified Device Architecture,统一计算设备架构)这一编程模型,目的是在应用程序中充分利用CPU擅长的逻辑运算和GPU擅长的并行运算的优点。随着CPU+GPU这种混合运算模式的技术不断升级和加强,事实证明两个核心并行工作,处理各自擅长的用户请求效率更高。
而在现有的GPU虚拟机技术的设备复用方法中,CUDA技术的多用户并行模式对CPU利用率较低,用户需要通过自己判断,在编程中通过“_global_”声明来标记函数是否在GPU中运行。显然,用户不一定都知道所编写的函数是否适合在GPU中运行,容易将不适合在GPU中运行的函数送入GPU中处理,将GPU擅长处理的函数送入了CPU中处理,降低了处理速度,增加了处理时间,进而降低了处理效率。
发明内容
本发明提供了一种用于分配客户请求的方法、判断装置和系统,能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。
根据本发明的一个方面,提供了一种用于分配客户请求的方法,包括:
当接收到客户请求函数时,从客户请求函数中提取与资源开销相关联的参数;
根据参数确定与客户请求函数相匹配的处理单元;
将客户请求函数发送给相匹配的处理单元以进行相应的运算处理。
在一个实施例中,根据参数确定与客户请求函数相匹配的处理单元的步骤包括:
将参数发送给云数据库,以便在云数据库中查询与参数相匹配的历史记录对应的处理单元;
当接收到云数据库发送的查询结果时,将查询结果中指示的处理单元作为与客户请求函数相匹配的处理单元。
在一个实施例中,当接收到云数据库发送的查询结果时,将查询结果中指示的处理单元作为与客户请求函数相匹配的处理单元的步骤包括:
当接收到云数据库发送的查询结果时,判断查询结果中是否包括与参数相匹配的历史记录以及对应的处理单元指示信息;
若查询结果中包括指示信息,则将指示的处理单元作为与客户请求函数相匹配的处理单元。
在一个实施例中,若查询结果中不包括指示信息,或者在预定时间内未接收到查询结果,则进一步在本地数据库中查询是否存在与参数相匹配的历史记录;
若在本地数据库中查询到与参数相匹配的历史记录,则将查询到的匹配记录对应的处理单元作为与客户请求函数相匹配的处理单元。
在一个实施例中,若在本地数据库中未查询到与参数相匹配的历史记录,则从全部处理单元中选择与客户请求函数匹配的处理单元。
在一个实施例中,从全部处理单元中选择与客户请求函数匹配的处理单元的步骤包括:
将客户请求函数分配给每一个处理单元以进行运算处理;
将首先完成运算处理的处理单元作为与客户请求函数匹配的处理单元。
在一个实施例中,将首先完成运算处理的处理单元作为与客户请求函数匹配的处理单元的步骤之后,还包括:
指示未完成运算处理的处理单元停止运算;
将从客户请求函数中提取出的参数以及客户请求函数与匹配处理单元之间的关联关系存储到云数据库和本地数据库中。
在一个实施例中,上述任一方法,与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小。
根据本发明的另一方面,提供了一种用于分配客户请求的判断装置,包括第一接口模块、提取模块、选择模块和第二接口模块,其中:
第一接口模块,用于接收客户请求函数;
提取模块,用于从所述客户请求函数中提取与资源开销相关联的参数;
选择模块,用于根据所述参数确定与所述客户请求函数相匹配的处理单元;
第二接口模块,用于将所述客户请求函数发送给所述相匹配的处理单元以进行相应的运算处理。
在一个实施例中,还包括第三接口模块,其中:
选择模块还用于指示第三接口模块将所述参数发送给云数据库,以便在云数据库中查询与所述参数相匹配的历史记录对应的处理单元;当第三接口模块接收到云数据库发送的查询结果时,将查询结果中指示的处理单元作为与所述客户请求函数相匹配的处理单元;
第三接口模块,用于根据选择模块的指示将所述参数发送给云数据库;还用于接收云数据库发送的查询结果。
在一个实施例中,选择模块具体在第三接口模块接收到云数据库发送的查询结果时,判断查询结果中是否包括与参数相匹配的历史记录对应的处理单元指示信息;若查询结果中包括指示信息,则将指示的处理单元作为与客户请求函数相匹配的处理单元。
在一个实施例中,选择模块还用于在查询结果中不包括指示信息,或者第三接口模块在预定时间内未接收到查询结果时,进一步在本地数据库中查询是否存在与参数相匹配的历史记录;若在本地数据库中查询到与参数相匹配的历史记录,则将查询到的匹配记录对应的处理单元作为与客户请求函数相匹配的处理单元。
在一个实施例中,选择模块还用于在本地数据库中未查询到与参数相匹配的历史记录时,从全部处理单元中选择与客户请求函数匹配的处理单元。
在一个实施例中,选择模块具体在从全部处理单元中选择与所述客户请求函数匹配的处理单元时,将客户请求函数分配给每一个处理单元以进行运算处理;将首先完成运算处理的处理单元作为与客户请求函数匹配的处理单元。
在一个实施例中,选择模块还用于在将首先完成运算处理的处理单元作为与所述客户请求函数匹配的处理单元之后,指示未完成运算处理的处理单元停止运算;将从客户请求函数中提取出的参数以及客户请求函数与匹配处理单元之间的关联关系存储到云数据库和本地数据库中。
在一个实施例中,上述任一装置中,与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小。
根据本发明的又一方面,提供了一种用于分配客户请求的系统,包括判断装置和处理单元,其中:
判断装置,为上述任一项涉及的判断装置;
处理单元,用于在接收到判断装置发送的客户请求函数时,对客户请求函数进行运算处理。
在一个实施例中,处理单元包括处理模块和与处理模块一一对应的线程管理模块,其中:
线程管理模块,用于在接收到判断装置发送的客户请求函数时,将客户请求函数传送给相对应的处理模块;
处理模块,用于在接收到对应线程管理模块传送的客户请求函数时,对客户请求函数进行运算处理。
在一个实施例中,线程管理模块具体在接收到判断装置发送的客户请求函数时,根据客户请求函数的优先级对客户请求函数进行排队处理,将当前优先级最高的客户请求函数传送给相应的处理模块。
本发明提供了一种用于分配客户请求的方法、判断装置和系统,能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明用于分配客户请求的方法的一个实施例的示意图。
图2为本发明用于分配客户请求的方法的另一个实施例的示意图。
图3为本发明用于分配客户请求的判断装置的一个实施例的示意图。
图4为本发明用于分配客户请求的系统的一个实施例的示意图。
图5为本发明用于分配客户请求的系统的应用场景示意图。
图6为本发明的信息交互图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
图1为本发明用于分配客户请求的方法的一个实施例的示意图。优选的,本实施例的方法步骤可由本发明的判断装置执行,包括:
步骤101,当接收到客户请求函数时,从客户请求函数中提取与资源开销相关联的参数。
步骤102,根据参数确定与客户请求函数相匹配的处理单元。
步骤103,将客户请求函数发送给相匹配的处理单元以进行相应的运算处理。
本发明提供了一种用于分配客户请求的方法,能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。
本发明的用于分配客户请求的方法尤其适用于基于CUDA的GPU可编程技术,用户不再需要通过“_global_”声明来决定客户请求函数是否在GPU中运算。根据客户请求函数确定与客户请求函数相匹配的处理单元,提高了CPU+GPU混合运算处理的运算效率。本领域技术人员通过本发明可以了解的是,本发明也适用于其他类型的处理单元进行混合编程运算。
图2为本发明用于分配客户请求的方法的另一个实施例的示意图。优选的,本实施例的方法步骤可由本发明的判断装置执行,包括:
步骤201,当接收到客户请求函数时,从客户请求函数中提取与资源开销相关联的参数。
优选的,与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小。其中,函数代码规模可以用代码的行数表示;函数逻辑运算次数可以用for、while等逻辑运算的次数表示;时间空间复杂度可以用函数中循环的次数表示,当出现迭代算法时,会增加时间空间复杂度;需要占用资源通过综合函数代码规模、函数中逻辑运算次数和时间空间复杂度,并结合客户请求函数自身的特点,进行估算得到,可以包括占用内存大小和占用系统资源多少等。上述与资源开销相关联的参数尤其适用于基于CUDA技术的CPU+GPU混合运算处理。本领域技术人员通过本发明可以了解的是,与资源开销相关联的参数不仅限于上述内容,可以根据不同的使用场景,选择其中的一个或多个参数作为与资源开销相关联的参数,也可以加入其他与资源开销相关联的参数。
步骤202,将参数发送给云数据库,以便在云数据库中查询与参数相匹配的历史记录对应的处理单元。采用云数据库,可以实现多个用于分配客户请求的系统的数据共享。多个系统共同更新、维护云数据库中与参数相匹配的历史记录,提高了运行的效率。
优选的,通过设定阈值来确定与参数相匹配的历史记录。例如客户请求函数中的函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小与云数据库历史数据中函数的相关记录相比,分别达到相应的阈值时,则认为匹配;当出现多个匹配历史记录时,选择与各个阈值最接近的历史记录对应的处理单元。本领域技术人员通过本发明可以了解的是,也可以根据实际情况,选择相应的匹配条件。
本发明适用于CPU+GPU混合运算处理,通过查询与参数相匹配的历史记录,可以得到客户请求函数适用的处理单元是CPU处理单元还是GPU处理单元。
步骤203,当接收到云数据库发送的查询结果时,判断查询结果中是否包括与参数相匹配的历史记录以及对应的处理单元指示信息,如果存在指示信息,进入步骤204;如果不包括指定信息或者在预定时间内没有收到云数据库发送的查询结果时,进入步骤205。
具体的,当本发明应用于CPU+GPU混合运算处理时,当在云数据库中查询到与参数相匹配的历史记录后,云数据库发送查询结果,查询结果中指示了与参数相匹配的历史记录对应处理单元为CPU处理单元或GPU处理单元,进入步骤204。当在云数据库中没有查询到与参数相匹配的历史记录或者在预定时间内没有收到云数据库发送的查询结果时,进入步骤205。
步骤204,将指示的处理单元作为与客户请求函数相匹配的处理单元,进入步骤211。
例如,当本发明应用于CPU+GPU混合运算处理时,客户请求函数偏重于逻辑计算时,查询到的与参数相匹配的历史记录中指示的处理单元为CPU处理单元;客户请求函数偏重于并行计算时,查询到的与参数相匹配的历史记录中指示的处理单元为GPU处理单元。这样根据匹配的历史记录指示的处理单元,充分利用了CPU和GPU运算的不同特点,分别处理其擅长的函数运算,进而提高了运算处理的效率。
步骤205,进一步在本地数据库中查询是否存在与参数相匹配的历史记录。例如在没有到达更新周期或者与云数据库失去连接时,本地数据库中的数据与云数据库中的数据可能并不完全一致,因此,当在云数据库中没有查询到与参数相匹配的历史记录或者在预定时间内没有收到云数据库发送的查询结果时,进一步在本地数据库中进行查询。若在本地数据库中查询到与参数相匹配的历史记录,则进入步骤206;若在本地数据库中没有查询到与参数相匹配的历史记录,则进入步骤207。查询本地数据库的方法步骤与查询云数据库的方法步骤类似,这里不再赘述。
步骤206,将匹配记录对应的处理单元作为与客户请求函数相匹配的处理单元,进入步骤211。
步骤207,将客户请求函数分配给每一个处理单元以进行运算处理。例如,当本发明应用在CPU+GPU混合运算处理时,将客户请求函数分配给CPU和GPU处理单元以进行运算处理,CPU和GPU处理单元优先处理用于查找匹配处理单元的客户请求函数。当存在多个相同处理单元时,可以根据处理单元负载情况选择负载最低的处理单元进行运算处理。
步骤208,将首先完成运算处理的处理单元作为与客户请求函数匹配的处理单元。以CPU+GPU混合运算处理为例,当GPU处理单元首先完成运算时,则将GPU处理单元作为与客户请求函数匹配的处理单元。
步骤209,指示未完成运算处理的处理单元停止运算。例如,在CPU+GPU混合运算处理下,GPU处理单元首先完成运算,则指示CPU处理单元停止运算,以节省系统资源。
步骤210,将从客户请求函数中提取出的参数以及客户请求函数与匹配处理单元之间的关联关系存储到云数据库和本地数据库中。以后在处理与该客户请求函数匹配的客户请求函数时,可以直接在云数据库的历史记录中查到相应的处理单元,不需再次通过步骤207-208进行查找,从而节省了运算处理时间,提高了处理效率。
步骤211,将客户请求函数发送给相匹配的处理单元以进行相应的运算处理。
本发明的用于分配客户请求的方法,用户不需在函数中声明需要运算的处理单元,结合数据库的历史记录和本地查找方法,能够快速判断相匹配的处理单元,避免了人为设定对运算效率带来的降低,提高了运算处理速度,减少了处理时间。本领域技术人员通过本发明可以了解的是,在特定应用场景下,本发明也支持人为设定选择相应的处理单元进行运算处理。
图3为本发明的用于分配客户请求的判断装置的一个实施例的示意图。如图3所示,本发明用于分配客户请求的判断装置包括第一接口模块301、提取模块302、选择模块303和第二接口模块304,其中:
第一接口模块301,用于接收客户请求函数。
提取模块302,用于从客户请求函数中提取与资源开销相关联的参数。
优选的,与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小。其中,函数代码规模可以用代码的行数表示;函数逻辑运算次数可以用for、while等逻辑运算的次数表示;时间空间复杂度可以用函数中循环的次数表示,当出现迭代算法时,会增加时间空间复杂度;需要占用资源通过综合函数代码规模、函数中逻辑运算次数和时间空间复杂度,并结合客户请求函数自身的特点,进行估算得到,可以包括占用内存大小和占用系统资源多少等。上述与资源开销相关联的参数尤其适用于基于CUDA技术的CPU+GPU混合运算处理。本领域技术人员可以了解的是,与资源开销相关联的参数不仅限于上述内容,可以根据不同的使用场景,选择其中的一个或多个参数作为与资源开销相关联的参数,也可以加入其他与资源开销相关联的参数。
选择模块303,用于根据参数确定与客户请求函数相匹配的处理单元。
第二接口模块304,用于将所述客户请求函数发送给所述相匹配的处理单元以进行相应的运算处理。
本发明提供了一种用于分配客户请求的判断装置,能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。
本发明的用于分配客户请求的判断装置尤其适用于基于CUDA的GPU可编程技术,用户不再需要通过“_global_”声明来决定客户请求函数是否在GPU中运算。根据客户请求函数确定与客户请求函数相匹配的处理单元,提高了CPU+GPU混合运算处理的效率。
进一步的,如图3所示,本发明的判断装置还包括第三接口模块305,其中:
选择模块303还用于指示第三接口模块305将所述参数发送给云数据库,以便在云数据库中查询与所述参数相匹配的历史记录对应的处理单元;当第三接口模块305接收到云数据库发送的查询结果时,将查询结果中指示的处理单元作为与所述客户请求函数相匹配的处理单元。
第三接口模块305,用于根据选择模块303的指示将所述参数发送给云数据库;还用于接收云数据库发送的查询结果。
进一步的,选择模块303具体在第三接口模块305接收到云数据库发送的查询结果时,判断查询结果中是否包括与参数相匹配的历史记录以及对应的处理单元指示信息;若查询结果中包括指示信息,则将指示的处理单元作为与客户请求函数相匹配的处理单元。例如,在本发明应用于CPU+GPU混合运算处理时,若第三接口模块305接收到云数据库发送的查询结果中指示了与参数相匹配的历史记录对应处理单元为GPU处理单元,则选择单元303将GPU处理单元作为匹配的处理单元。第二接口模块304将客户请求函数发送给相匹配的GPU处理单元以进行相应的运算处理。
进一步的,选择模块303还用于在查询结果中不包括指示信息,或者第三接口模块305在预定时间内未接收到查询结果时,进一步在本地数据库中查询是否存在与参数相匹配的历史记录;若在本地数据库中查询到与参数相匹配的历史记录,则将查询到的匹配记录对应的处理单元作为与客户请求函数相匹配的处理单元。
例如在没有到达更新周期或者与云数据库失去连接时,本地数据库中的数据与云数据库中的数据可能并不完全一致,因此,当在云数据库中没有查询到与参数相匹配的历史记录或者在预定时间内没有收到云数据库发送的查询结果时,进一步在本地数据库中进行查询,将查询到的匹配记录对应的处理单元作为与客户请求函数相匹配的处理单元。
进一步的,选择模块303还用于在本地数据库中未查询到与参数相匹配的历史记录时,则从全部处理单元中选择与客户请求函数匹配的处理单元。
进一步的,选择模块303具体在从全部处理单元中选择与所述客户请求函数匹配的处理单元时,将客户请求函数分配给每一个处理单元以进行运算处理;将首先完成运算处理的处理单元作为与客户请求函数匹配的处理单元。以CPU+GPU混合运算处理为例,当GPU处理单元首先完成运算时,则选择模块303将GPU处理单元作为与客户请求函数匹配的处理单元。优选的,选择模块303指示每个处理单元优先处理查找匹配处理单元的客户请求函数的运算。
优选的,选择模块303还用于在将首先完成运算处理的处理单元作为与客户请求函数匹配的处理单元之后,指示未完成运算处理的处理单元停止运算;将从客户请求函数中提取出的参数以及客户请求函数与匹配处理单元之间的关联关系存储到云数据库和本地数据库中。例如,在CPU+GPU混合运算处理下,若GPU处理单元首先完成运算,则选择模块303将GPU处理单元作为与客户请求函数匹配的处理单元。此时,CPU处理单元并不需要完成运算,因此,选择模块303指示CPU处理单元停止运算,将从客户请求函数中提取出的参数以及客户请求函数与匹配处理单元之间的关联关系存储到云数据库和本地数据库中,以便下次直接查询相关的处理单元。
本发明的用于分配客户请求的判断装置,可以使得用户不需在函数中声明需要运算的处理单元,结合数据库的历史记录和本地查找方法,能够快速判断相匹配的处理单元,避免了人为设定对运算效率带来的降低,提高了运算处理速度,减少了处理时间。本领域技术人员通过本发明可以了解的是,在特定应用场景下,本发明也支持人为设定选择相应的处理单元进行运算处理。
图4为本发明的用于分配客户请求的系统的一个实施例的示意图。如图4所示,本发明用于分配客户请求的系统400包括判断装置401和处理单元402,其中:
判断装置401,为上述任一项涉及的判断装置。
处理单元402,用于在接收到判断装置401发送的客户请求函数时,对客户请求函数进行运算处理。
本发明的用于分配客户请求的系统,能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。本发明尤其适用于CPU+GPU混合运算处理,通过共享云数据库,可以实现多个系统共享历史记录,提高了处理速度,缓解了现有技术中CPU和GPU求解非擅长运算的压力,提高了CPU和GPU的利用率。
进一步的,如图4所示,处理单元402包括处理模块4022和与处理模块一一对应的线程管理模块4021,其中:
线程管理模块4021,用于在接收到判断装置401发送的客户请求函数时,将客户请求函数传送给相对应的处理模块4022。
处理模块4022,用于在接收到对应线程管理模块4021传送的客户请求函数时,对客户请求函数进行运算处理。其中,优先处理用于查询匹配处理单元的客户请求函数。处理模块4022可以是CPU和GPU,也可以是其他类型的处理模块。
优选的,线程管理模块4021具体在接收到判断装置401发送的客户请求函数时,根据客户请求函数的优先级对客户请求函数进行排队处理,将当前优先级最高的客户请求函数传送给相应的处理模块4022。线程管理模块4021缓解了处理模块4022的处理压力,解决了处理模块4022处理多个客户请求函数时易发生资源冲突的问题。
图5为本发明用于分配客户请求的系统应用于CPU+GPU混合运算处理的示意图,图6为本发明的信息交互图。下面结合图5、图6,对本发明应用于CPU+GPU混合运算处理时进行描述。
如图5、图6所示,处理单元为CPU处理单元和GPU处理单元,其中,CPU处理单元包括CPU线程管理模块和CPU;GPU处理单元包括GPU线程管理模块和GPU。
步骤601,客户1发送客户请求函数1和2,客户2发送客户请求函数3至系统的判断装置。
步骤602,判断装置从客户请求函数1、2和3中提取相应的与资源开销相关联的参数。与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小。其中,函数代码规模可以用代码的行数表示;函数逻辑运算次数可以用for、while等逻辑运算的次数表示;时间空间复杂度可以用函数中循环的次数表示,当出现迭代算法时,会增加时间空间复杂度;需要占用资源通过综合函数代码规模、函数中逻辑运算次数和时间空间复杂度,并结合客户请求函数自身的特点,进行估算得到,可以包括占用内存大小和占用系统资源多少等。
步骤603,判断装置在云数据库中查询与参数相匹配的历史记录对应的处理单元。通过设定阈值来确定与参数相匹配的历史记录。例如客户请求函数中的函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小与云数据库历史数据中函数的相关记录相比,分别达到相应的阈值时,则认为匹配;当出现多个匹配历史记录时,选择与各个阈值最接近的历史记录对应的处理单元。
本实施例中,判断装置在云数据库中查询到与客户请求函数1匹配的历史记录对应的处理单元为CPU处理单元。在云数据库中没有查询到与客户请求函数2和3匹配的历史记录。
步骤604a,判断装置将客户请求函数1发送给CPU处理单元,进入步骤611。
步骤604b,判断装置在本地数据库中查询与客户请求函数2和3匹配的到历史记录。在本地数据库中查询到与客户请求函数2匹配的历史记录对应的处理单元为GPU处理单元;没有查询到与客户请求函数3匹配的历史记录对应的处理单元。
步骤605a,判断装置将客户请求函数2发送给GPU处理单元,进入步骤611。
步骤605b,判断装置将客户请求函数3发送给CPU处理单元和GPU处理单元,CPU处理单元和GPU处理单元运算客户请求函数3,此时CPU处理单元和GPU处理单元优先处理客户请求函数3。
步骤606,GPU处理单元最先完成客户请求函数3的运算,发送消息至判断装置。
步骤607,判断装置将GPU处理单元作为与客户请求函数3匹配的处理单元。
步骤608,判断装置通知CPU处理单元停止客户请求函数3的运算。
步骤609,判断装置将从客户请求函数3中提取出的参数以及客户请求函数3与GPU处理单元之间的关联关系存储到云数据库和本地数据库中。
步骤610,判断装置将客户请求函数3发送给GPU处理单元进行运算处理。
步骤611,CPU和GPU处理单元对接收到的客户请求函数进行运算处理。其中,线程管理模块对客户请求函数按照优先级排队,优先处理优先级高的客户请求函数。例如,客户请求函数2的优先级高于客户请求函数3,当GPU处理装置同时接收到待处理的客户请求函数2和3时,GPU线程管理模块根据优先级对客户请求函数排队,将客户请求函数2优先发送给GPU进行运算处理。当客户请求函数2的优先级等于客户请求函数3时,GPU再进行处理顺序的管理,
从而缓解了GPU的压力,解决了处理多个客户请求函数时易发生资源冲突的问题。
本发明的一种用于分配客户请求的方法、判断装置和系统,能够根据客户请求函数的特点选择匹配的处理单元进行运算处理,减少运算时间,提高处理效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (13)
1.一种用于分配客户请求的方法,其特征在于,
当接收到客户请求函数时,从所述客户请求函数中提取与资源开销相关联的参数;其中,与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小;
根据所述参数确定与所述客户请求函数相匹配的处理单元,包括:将所述参数发送给云数据库,以便在云数据库中查询与所述参数相匹配的历史记录对应的处理单元,当接收到云数据库发送的查询结果时,判断查询结果中是否包括与所述参数相匹配的历史记录以及对应的处理单元指示信息;若查询结果中包括所述指示信息,则将指示的处理单元作为与所述客户请求函数相匹配的处理单元;
将所述客户请求函数发送给所述相匹配的处理单元以进行相应的运算处理。
2.根据权利要求1所述的方法,其特征在于,
若查询结果中不包括所述指示信息,或者在预定时间内未接收到查询结果,则进一步在本地数据库中查询是否存在与所述参数相匹配的历史记录;
若在本地数据库中查询到与所述参数相匹配的历史记录,则将查询到的匹配记录对应的处理单元作为与所述客户请求函数相匹配的处理单元。
3.根据权利要求2所述的方法,其特征在于,
若在本地数据库中未查询到与所述参数相匹配的历史记录,则从全部处理单元中选择与所述客户请求函数匹配的处理单元。
4.根据权利要求3所述的方法,其特征在于,
从全部处理单元中选择与所述客户请求函数匹配的处理单元的步骤包括:
将所述客户请求函数分配给每一个处理单元以进行运算处理;
将首先完成运算处理的处理单元作为与所述客户请求函数匹配的处理单元。
5.根据权利要求4所述的方法,其特征在于,
将首先完成运算处理的处理单元作为与所述客户请求函数匹配的处理单元的步骤之后,还包括:
指示未完成运算处理的处理单元停止运算;
将从所述客户请求函数中提取出的所述参数,所述客户请求函数以及匹配处理单元之间的关联关系存储到云数据库和本地数据库中。
6.一种用于分配客户请求的判断装置,其特征在于,包括第一接口模块、提取模块、选择模块和第二接口模块,其中:
第一接口模块,用于接收客户请求函数;
提取模块,用于从所述客户请求函数中提取与资源开销相关联的参数;其中,与资源开销相关联的参数包括函数代码规模、函数中逻辑运算次数、时间空间复杂度和需要占用资源的大小;
选择模块,用于根据所述参数确定与所述客户请求函数相匹配的处理单元,包括:指示第三接口模块将所述参数发送给云数据库,以便在云数据库中查询与所述参数相匹配的历史记录对应的处理单元;当第三接口模块接收到云数据库发送的查询结果时,判断查询结果中是否包括与所述参数相匹配的历史记录以及对应的处理单元指示信息;若查询结果中包括所述指示信息,则将指示的处理单元作为与所述客户请求函数相匹配的处理单元;
第二接口模块,用于将所述客户请求函数发送给所述相匹配的处理单元以进行相应的运算处理;
第三接口模块,用于根据选择模块的指示将所述参数发送给云数据库;还用于接收云数据库发送的查询结果。
7.根据权利要求6所述的判断装置,其特征在于,
选择模块还用于在查询结果中不包括所述指示信息,或者第三接口模块在预定时间内未接收到查询结果时,进一步在本地数据库中查询是否存在与所述参数相匹配的历史记录;若在本地数据库中查询到与所述参数相匹配的历史记录,则将查询到的匹配记录对应的处理单元作为与所述客户请求函数相匹配的处理单元。
8.根据权利要求7所述的判断装置,其特征在于,
选择模块还用于在本地数据库中未查询到与所述参数相匹配的历史记录时,从全部处理单元中选择与所述客户请求函数匹配的处理单元。
9.根据权利要求8所述的判断装置,其特征在于,
选择模块具体在从全部处理单元中选择与所述客户请求函数匹配的处理单元时,将所述客户请求函数分配给每一个处理单元以进行运算处理;将首先完成运算处理的处理单元作为与所述客户请求函数匹配的处理单元。
10.根据权利要求9所述的判断装置,其特征在于,
选择模块还用于在将首先完成运算处理的处理单元作为与所述客户请求函数匹配的处理单元之后,指示未完成运算处理的处理单元停止运算;将从所述客户请求函数中提取出的所述参数,所述客户请求函数以及匹配处理单元之间的关联关系存储到云数据库和本地数据库中。
11.一种用于分配客户请求的系统,其特征在于,包括判断装置和处理单元,其中:
判断装置,为权利要求6-10中任一项所述的判断装置;
处理单元,用于在接收到判断装置发送的客户请求函数时,对客户请求函数进行运算处理。
12.根据权利要求11所述的系统,其特征在于,处理单元包括处理模块和与处理模块一一对应的线程管理模块,其中:
线程管理模块,用于在接收到判断装置发送的客户请求函数时,将客户请求函数传送给相对应的处理模块;
处理模块,用于在接收到对应线程管理模块传送的客户请求函数时,对客户请求函数进行运算处理。
13.根据权利要求12所述的系统,其特征在于,
线程管理模块具体在接收到判断装置发送的客户请求函数时,根据客户请求函数的优先级对客户请求函数进行排队处理,将当前优先级最高的客户请求函数传送给相应的处理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410840257.8A CN105808342B (zh) | 2014-12-30 | 2014-12-30 | 用于分配客户请求的方法、判断装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410840257.8A CN105808342B (zh) | 2014-12-30 | 2014-12-30 | 用于分配客户请求的方法、判断装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808342A CN105808342A (zh) | 2016-07-27 |
CN105808342B true CN105808342B (zh) | 2019-12-13 |
Family
ID=56980231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410840257.8A Active CN105808342B (zh) | 2014-12-30 | 2014-12-30 | 用于分配客户请求的方法、判断装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808342B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697121B (zh) * | 2017-10-20 | 2023-05-05 | 伊姆西Ip控股有限责任公司 | 用于向应用分配处理资源的方法、设备和计算机可读介质 |
CN109002355B (zh) * | 2018-06-06 | 2022-04-05 | 创新先进技术有限公司 | 处理请求的分配方法、装置及设备 |
CN109547523A (zh) * | 2018-09-30 | 2019-03-29 | 中国农业大学 | 一种处理单元专用和偏好使用方法 |
CN109460290A (zh) * | 2018-09-30 | 2019-03-12 | 北京工业职业技术学院 | 一种过程控制方法 |
CN109918196B (zh) * | 2019-01-23 | 2022-11-29 | 深圳壹账通智能科技有限公司 | 系统资源分配方法、装置、计算机设备和存储介质 |
CN111190722A (zh) * | 2019-05-17 | 2020-05-22 | 延安大学 | 一种处理单元专用和偏好使用方法 |
CN110213623B (zh) * | 2019-06-03 | 2021-08-06 | 上海哔哩哔哩科技有限公司 | 视频上传方法、视频上传装置及计算机可读存储介质 |
CN116382881A (zh) * | 2021-11-27 | 2023-07-04 | 华为技术有限公司 | 无服务器架构下函数资源动态配置方法和函数管理平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102099788A (zh) * | 2008-06-06 | 2011-06-15 | 苹果公司 | 用于在多处理器上进行数据并行计算的应用编程接口 |
CN103164839A (zh) * | 2013-03-07 | 2013-06-19 | 华为技术有限公司 | 一种绘图方法、装置及终端 |
CN103582509A (zh) * | 2010-12-14 | 2014-02-12 | 亚马逊技术股份有限公司 | 通用处理器和图形处理器之间的负载均衡 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012141677A1 (en) * | 2011-04-11 | 2012-10-18 | Hewlett-Packard Development Company, L.P. | Performing a task in a system having different types of hardware resources |
US8982136B2 (en) * | 2011-05-16 | 2015-03-17 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
KR20130019674A (ko) * | 2011-08-17 | 2013-02-27 | 삼성전자주식회사 | 단말 및 그 단말에서 어플리케이션 수행 방법 |
-
2014
- 2014-12-30 CN CN201410840257.8A patent/CN105808342B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102099788A (zh) * | 2008-06-06 | 2011-06-15 | 苹果公司 | 用于在多处理器上进行数据并行计算的应用编程接口 |
CN103582509A (zh) * | 2010-12-14 | 2014-02-12 | 亚马逊技术股份有限公司 | 通用处理器和图形处理器之间的负载均衡 |
CN103164839A (zh) * | 2013-03-07 | 2013-06-19 | 华为技术有限公司 | 一种绘图方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN105808342A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808342B (zh) | 用于分配客户请求的方法、判断装置和系统 | |
JP6114829B2 (ja) | 仮想環境における演算インフラストラクチャのリアルタイム最適化 | |
CN109948017B (zh) | 一种信息处理方法及装置 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
TW201717066A (zh) | 叢集運算架構的資源規劃方法、系統及裝置 | |
US12001868B2 (en) | VM migration system and VM migration method | |
US10379906B2 (en) | Method and apparatus for system call command batch processing | |
CN106528065B (zh) | 一种线程获取方法及设备 | |
CN104750690A (zh) | 一种查询处理方法、装置及系统 | |
CN110162387A (zh) | 线程调度方法、装置、计算机设备及计算机可读存储介质 | |
US20160062929A1 (en) | Master device, slave device and computing methods thereof for a cluster computing system | |
CN104793982A (zh) | 一种创建虚拟机的方法和设备 | |
CN111258746A (zh) | 资源分配方法和服务设备 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN105701128B (zh) | 一种查询语句的优化方法和装置 | |
CN111143210A (zh) | 一种测试任务调度方法和系统 | |
CN108446169B (zh) | 一种作业调度方法及装置 | |
CN107169138B (zh) | 一种面向分布式内存数据库查询引擎的数据分发方法 | |
CN108228323B (zh) | 基于数据本地性的Hadoop任务调度方法及装置 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN105550025A (zh) | 分布式基础设施即服务(IaaS)调度方法及系统 | |
CN116089477B (zh) | 分布式训练方法及系统 | |
US20140047454A1 (en) | Load balancing in an sap system | |
CN107229519B (zh) | 任务调度方法和装置 | |
CN111782688A (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 |