请求处理方法、装置、电子设备及计算机可读存储介质制造方法及图纸

技术编号:24330745 阅读:35 留言:0更新日期:2020-05-29 19:31
本申请提供一种请求处理方法、装置、电子设备及计算机可读存储介质,涉及数据处理技术领域。该方法包括:获取n个请求;其中,每个请求分别对应线程上的一个协程,n为大于0的整数、且小于或等于预设阈值;根据预设竞争规则,在n个协程中确定一个主导协程、其余n‑1个协程均为跟随协程;通过主导协程合并n个请求,获取合并请求数据;向计算设备提交合并请求数据。本申请实施例中,使用请求处理方法在对用户输入的多个请求进行处理时,通过引入协程作为执行单元,将获取到的n个请求分别对应到每个协程,且根据预设竞争规则确定主导协程来合并n个请求,减少了由于跨线程竞争所带来的服务器资源消耗,从而能够充分发挥服务器的计算性能。

【技术实现步骤摘要】
请求处理方法、装置、电子设备及计算机可读存储介质
本申请涉及数据处理
,具体而言,涉及一种请求处理方法、装置、电子设备及计算机可读存储介质。
技术介绍
随着海量数据的出现,人们倾向于使用机器学习技术来从数据中挖掘出价值。机器学习能够通过模拟或实现人类的学习行为,获取新的知识或技能,重新组织已有的知识结构而不断改善系统自身的性能,其为人工智能研究发展到一定阶段的必然产物,应用遍及人工智能的各个领域。由于机器学习的使用离不开必要的机器学习框架,因此,机器学习的爆炸性增长也推动了许多开源工具的发展,使得开发人员更容易学习其技术。例如,关于机器学习研究的深度学习领域中,谷歌公司所推出的张量流服务(TensorFlowServing)为目前性能较为优异的典型机器学习框架之一。为了提升数据处理性能,现有的机器学习框架中使用了多线程技术来对多个并发请求进行处理,即机器学习框架中开启批处理策略、处理一批并发请求时,基于多个线程同时对一批请求进行处理。但是,上述现有机器学习框架中通过多线程技术对多个并发请求进行处理时,一批请求会同时占用多个线程,而不同线程之间存在跨核调度和跨线程竞争,消耗了服务器的大量资源,从而导致服务器的计算性能无法充分发挥。
技术实现思路
有鉴于此,本申请实施例的目的在于提供一种请求处理方法、装置、电子设备及计算机可读存储介质,能够在进行请求处理时,减少由于跨线程竞争所带来的服务器资源消耗,从而更好地发挥服务器的计算性能。第一方面,本申请实施例提供一种请求处理方法,包括:获取n个请求,其中,每个请求分别对应线程上的一个协程,一个所述线程包含一个或多个所述协程,n为大于0的整数、且小于或等于预设阈值;根据预设竞争规则,在n个协程中确定一个主导协程、其余n-1个协程均为跟随协程;通过主导协程合并n个请求,获取合并请求数据;向计算设备提交合并请求数据。可选地,根据预设竞争规则,在n个协程中确定一个主导协程、其余n-1个协程均为跟随协程,包括:根据n个请求写入队列的顺序,确定队列中第一个请求对应的协程为主导协程、其他请求对应的协程均为跟随协程。可选地,向计算设备提交合并请求数据之后,还包括:接收计算设备返回的计算结果;拆分计算结果,获取每个请求对应的响应结果。可选地,主导协程为运行状态、跟随协程为等待状态;拆分计算结果,获取每个请求对应的响应结果之后,还包括:通过主导协程唤醒每个请求对应的跟随协程,并向跟随协程反馈对应的响应结果。可选地,通过主导协程唤醒每个请求对应的跟随协程,并向跟随协程反馈对应的响应结果,包括:根据n个请求写入队列的顺序,通过主导协程依次唤醒每个请求对应的跟随协程,并向跟随协程反馈对应的响应结果。可选地,通过主导协程唤醒每个请求对应的跟随协程,并向跟随协程反馈对应的响应结果,包括:确定每个线程中跟随协程的唤醒顺序,根据唤醒顺序通过主导协程唤醒其他跟随协程,并向其他跟随协程反馈对应的响应结果。可选地,获取n个请求,包括:若当前未处理的请求个数大于或等于预设阈值,获取预设阈值个请求;或者,若当前未处理的请求个数小于预设阈值,则获取所有当前未处理的请求。可选地,主导协程为获取到锁的协程;向计算设备提交合并请求数据之前,还包括:通过主导协程释放锁。可选地,拆分计算结果,获取每个请求对应的响应结果之后,还包括:通过主导协程获取锁。可选地,计算设备为机器学习处理器MLU。第二方面,本申请实施例还提供一种请求处理装置,包括:获取模块、第一处理模块、合并模块和提交模块。获取模块,用于获取n个请求,其中,每个请求分别对应线程上的一个协程,一个线程包含一个或多个协程,n为大于0的整数、且小于或等于预设阈值;第一处理模块,用于根据预设竞争规则,在n个协程中确定一个主导协程、其余n-1个协程均为跟随协程;合并模块,用于通过主导协程合并n个请求,获取合并请求数据;提交模块,用于向计算设备提交合并请求数据。可选地,第一处理模块,具体用于根据n个请求写入队列的顺序,确定队列中第一个请求对应的协程为主导协程、其他请求对应的协程均为跟随协程。可选地,该装置还包括:接收模块和第二处理模块;接收模块,用于接收计算设备返回的计算结果;第二处理模块,用于拆分计算结果,获取每个请求对应的响应结果。可选地,主导协程为运行状态、跟随协程为等待状态;第二处理模块,还用于在拆分计算结果,获取每个请求对应的响应结果之后,通过主导协程唤醒每个请求对应的跟随协程,并向跟随协程反馈对应的响应结果。可选地,第二处理模块,具体用于根据n个请求写入队列的顺序,通过主导协程依次唤醒每个请求对应的跟随协程,并向跟随协程反馈对应的响应结果。可选地,第二处理模块,具体用于确定每个线程中跟随协程的唤醒顺序,根据唤醒顺序通过主导协程唤醒其他跟随协程,并向其他跟随协程反馈对应的响应结果。可选地,获取模块,具体用于若当前未处理的请求个数大于或等于预设阈值,则获取预设阈值个请求;或者,若当前未处理的请求个数小于预设阈值,则获取所有当前未处理的请求。可选地,主导协程为获取到锁的协程;第一处理模块,还用于在提交模块向计算设备提交合并请求数据之前,通过主导协程释放锁。可选地,第二处理模块,还用于在拆分计算结果,获取每个请求对应的响应结果之后,通过主导协程获取锁。可选地,计算设备为机器学习处理器MLU。第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储介质和总线。存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如上述第一方面提供的请求处理方法的步骤。第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面提供的请求处理方法的步骤。基于上述任一方面,本申请的有益效果是:本申请实施例中,在对多个请求进行处理时,每次从未处理的请求中获取n个请求,通过引入协程作为执行单元,将所获取的n个请求分别对应到每个协程,并根据预设竞争规则,在n个请求所对应的n个协程中确定一个主导协程,通过该主导协程合并n个请求,将得到的合并请求数据提交到计算设备进行计算,避免了多个线程之间的竞争,减少了由于跨线程竞争所带来的服务器资源消耗,从而能够更好地发挥服务器的计算性能。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的请求处理方法的一流程示意图;图2为本申请实施例提供的请求处理方法的另一流程示本文档来自技高网...

【技术保护点】
1.一种请求处理方法,其特征在于,所述方法包括:/n获取n个请求,其中,每个请求分别对应线程上的一个协程,一个所述线程包含一个或多个所述协程,n为大于0的整数、且小于或等于预设阈值;/n根据预设竞争规则,在n个所述协程中确定一个主导协程、其余n-1个所述协程均为跟随协程;/n通过所述主导协程合并n个所述请求,获取合并请求数据;/n向计算设备提交所述合并请求数据。/n

【技术特征摘要】
1.一种请求处理方法,其特征在于,所述方法包括:
获取n个请求,其中,每个请求分别对应线程上的一个协程,一个所述线程包含一个或多个所述协程,n为大于0的整数、且小于或等于预设阈值;
根据预设竞争规则,在n个所述协程中确定一个主导协程、其余n-1个所述协程均为跟随协程;
通过所述主导协程合并n个所述请求,获取合并请求数据;
向计算设备提交所述合并请求数据。


2.根据权利要求1所述的方法,其特征在于,所述根据预设竞争规则,在n个所述协程中确定一个主导协程、其余n-1个所述协程均为跟随协程,包括:
根据n个所述请求写入队列的顺序,确定队列中第一个请求对应的协程为主导协程、其他请求对应的协程均为跟随协程。


3.根据权利要求1所述的方法,其特征在于,所述向计算设备提交所述合并请求数据之后,还包括:
接收计算设备返回的计算结果;
拆分所述计算结果,获取每个所述请求对应的响应结果。


4.根据权利要求3所述的方法,其特征在于,所述主导协程为运行状态、所述跟随协程为等待状态;
所述拆分所述计算结果,获取每个所述请求对应的响应结果之后,还包括:
通过主导协程唤醒每个所述请求对应的跟随协程,并向所述跟随协程反馈对应的所述响应结果。


5.根据权利要求4所述的方法,其特征在于,所述通过主导协程唤醒每个所述请求对应的跟随协程,并向所述跟随协程反馈对应的所述响应结果,包括:
根据n个所述请求写入队列的顺序,通过主导协程依次唤醒每个所述请求对应的跟随协程,并向所述跟随协程反馈对应的所述响应结果。


6.根据权利要求4所述的方法,其特征在于,所述通过主导协程唤醒每个所述请求对应的跟随协程,并向所述跟随协程反馈对应的所述响应结果,包括:
确定每个所述线程中跟随协程的唤醒顺序,根据所述唤醒顺序通过主导协程唤醒其他跟随协程,并向其他跟随协程反馈对应的所述响应结果。


7.根据权利要求1所述的方法,其特征在于,所述获取n个请求,包括:
若当前未处理的请求个数大于或等于所述预设阈值,获取预设阈值个所述请求;或者,
若当前未处理的请求个数小于所述预设阈值,则获取所有当前未处理的所述请求。


8.根据权利要求1所述的方法,其特征在于,所述主导协程为获取到锁的协程;
所述向计算设备提交所述合并请求数据之前,还包括:
通过所述主导协程释放所述锁。


9.根据权利要求4所述的方法,其特征在于,所述拆分所述计算结果,获取每个所述请求对应的响应结果之后,还包括:
通过所述主导协程获取锁。


10.根据权利要求1-9任一项所述的方法,其特征在于,所述计算设备为机器学习处理器MLU。


11.一种请求处理装置,其特征在于,包括:获取模块、第一处理模块、合并模块和提交模块;
所述获取模块,用于获取n个请求,其中,每个请求分别对应线程上的一个协程,一个所述线程包含一个或多个所述协程,n为大...

【专利技术属性】
技术研发人员:杨江华裴文谦
申请(专利权)人:北京小桔科技有限公司
类型:发明
国别省市:北京;11

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

1