CN116266242A - 基于进程寄生的无服务器计算的分支预测方法及装置 - Google Patents
基于进程寄生的无服务器计算的分支预测方法及装置 Download PDFInfo
- Publication number
- CN116266242A CN116266242A CN202111560316.2A CN202111560316A CN116266242A CN 116266242 A CN116266242 A CN 116266242A CN 202111560316 A CN202111560316 A CN 202111560316A CN 116266242 A CN116266242 A CN 116266242A
- Authority
- CN
- China
- Prior art keywords
- function
- server
- branch prediction
- container
- objective function
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 230000008569 process Effects 0.000 title claims abstract description 70
- 238000004364 calculation method Methods 0.000 title abstract description 27
- 230000024241 parasitism Effects 0.000 title abstract description 16
- 230000006870 function Effects 0.000 claims abstract description 155
- 230000003071 parasitic effect Effects 0.000 claims abstract description 35
- 238000012549 training Methods 0.000 claims abstract description 20
- 230000000977 initiatory effect Effects 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000013135 deep learning Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001965 increasing effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010792 warming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于进程寄生的无服务器计算的分支预测方法及装置,所述方法包括如下步骤:接收用户针对目标函数的调用请求;在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。本发明能够在不改变分支预测器硬件的情况下,提升分支预测准确率,提高无服务器计算中函数的执行性能。
Description
技术领域
本发明涉及无服务器计算技术领域,特别涉及一种基于进程寄生的无服务器计算的分支预测方法及装置、电子设备及可读存储介质。
背景技术
无服务器计算(Serverless Computing)是指在构建和运行应用时无需管理服务器等基础设施。它描述了一个更细粒度的部署模型,在该模型中,应用被拆解为一个或多个细粒度的函数被上传到一个平台,然后根据当前所需执行、扩展和计费。
无服务器计算并不意味着不再使用服务器来承载和运行代码,也不意味着不再需要运维工程师,而是指无服务器计算的消费者不再需要进行服务器配置、维护、更新、扩展和容量规划上,这些任务和功能都由无服务器平台处理,并且完全从开发人员和IT/操作团队中抽象出来。因此,开发人员专注于编写应用程序的业务逻辑,运营工程师能够将他们的重点提升到更关键的业务任务上。
在计算机体系结构中,分支预测器(Branch predictor)是一种数字电路,在分支指令执行结束之前猜测哪一路分支将会被运行,以提高处理器的指令流水线的性能。使用分支预测器的目的,在于改善指令管线化的流程。
分支预测器需要一定的训练量才能达到较为稳定的高预测准确率。因此,当无服务器计算中的函数被调度到服务器上时,最开始阶段的分支预测准确率通常十分低。而无服务器计算中函数的运行时间通常在毫秒级,高分支预测错误通常导致较多性能开销,从而降低了无服务器计算中函数的执行性能。
目前解决方案通常为重新设计分支预测器,以及重新设计分支预测器算法。通过扩大分支预测器的感知范围、时间局部性原理的充分运用,从而提升整体的分支预测准确性。然而,分支预测器是硬件设备,重新设计分支预测器要在硬件级别进行修改,将降低分支预测的通用性。
发明内容
本发明的目的在于提供一种基于进程寄生的无服务器计算的分支预测方法及装置、电子设备及可读存储介质,在不改变分支预测器硬件的情况下,提升分支预测准确率,提高无服务器计算中函数的执行性能。
本发明是这样实现的:
为达到上述目的,本发明提供一种基于进程寄生的无服务器计算的分支预测方法,包括如下步骤:
接收用户针对目标函数的调用请求;
在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;
在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;
将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。
进一步的,在接收到用户针对目标函数的调用请求之后,还包括:
判断当前计算环境中是否有未执行函数任务的实例正在运行;
如果有,则将所述目标函数调度到所述当前计算环境中未执行函数任务的实例上,该实例执行所述目标函数的计算任务。
进一步的,所述基于进程寄生的无服务器计算的分支方法还包括:
如果当前计算环境中没有未执行函数任务的实例正在运行,则判断所述当前计算环境是否需要扩容;
如果不需要扩容,则在所述当前计算环境中生成一实例,该实例执行所述目标函数的计算任务。
进一步的,所述判断所述当前计算环境是否需要扩容,包括:
判断所述当前计算环境中所有实例的CPU使用量是否超过预设值,如果是,判定所述当前计算环境需要扩容。
进一步的,所述基于进程寄生的无服务器计算的分支方法还包括:
在所述新服务器上初始化所述容器之后,生成一实例,该实例执行所述目标函数的计算任务。
进一步的,所述目标函数的类型采用python深度学习算法进行推断。
进一步的,所述目标模板函数以编程语言、if-else逻辑结构、for循环位置特征、函数特征为核心。
为达到上述目的,本发明还提供一种基于进程寄生的无服务器计算的分支预测装置,包括:
接收模块,用于接收用户针对目标函数的调用请求;
调度模块,用于在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;
调用模块,用于在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;
训练模块,用于将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。
为达到上述目的,本发明还提供一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现上文任一项所述的基于进程寄生的无服务器计算的分支预测方法的步骤。
为达到上述目的,本发明还提供一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上文任一项所述的基于进程寄生的无服务器计算的分支预测方法的步骤。
与现有技术相比,本发明具有以下有益效果:
1、相比于重新设计分支预测器,本发明具有普适性。本发明通过预执行模板函数的方法可以提升所有类型服务器的分支预测准确率,提高无服务器计算中函数的执行性能,对所有体系架构(包括ARM,RISC-V等)都适用。
2、相比于分支预测算法的时间局部性,本发明提前执行模板函数,充分利用了分支预测器的时间局部性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:
图1是本发明一实施例提供的基于进程寄生的无服务器计算的分支预测方法的整体设计架构图;
图2是本发明一实施例提供的基于进程寄生的无服务器计算的分支预测方法的流程图;
图3是本发明一具体示例中基于进程寄生的无服务器计算的分支预测方法的流程图;
图4是本发明一实施例提供的基于进程寄生的无服务器计算的分支预测装置的结构图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为解决现有技术存在的问题,本发明提供了一种基于进程寄生的无服务器计算的分支预测方法、装置、电子设备及可读存储介质。
无服务器计算中部分概念解释如下:
①无服务器计算:无服务器计算是一种按需提供后端服务的方法。无服务器提供者允许用户编写和部署代码,而不必担心底层基础设施。从无服务器提供商获得后端服务的用户将根据计算量和资源使用量来付费,由于这种服务是自动扩展的,不必预留和付费购买固定数量的带宽或服务器。
②容器:容器包含应用程序和应用程序正常运行所需的所有元素,包括***库、***设置和其他依赖项。任何类型的应用程序都可以在容器中运行,无论容器化应用程序托管在何处,它都将以相同的方式运行。同样的道理,容器同时也可以携带无服务器计算的应用(也就是函数)然后运行在云平台的任何服务器上。
③实例:实例指的是某个应用正在运行的运行时环境,例如运行着某个服务的一个容器A,可以被认为容器A是这个服务的一个实例。原理上无服务计算平台的函数可以缩减到0个。由于无服务器计算进行自动扩缩,可以在短时间之内拉起大量的无服务器函数实例。
本发明的基本思路如下:
(1)构建无服务器计算模板函数
本发明通过调研了主流无服务器函数工作负载,设计了以编程语言、if-else逻辑结构、for循环位置特征、函数特征为核心的模板函数。模板函数的代码量通常在正常函数的20-30%,不产生任何的网络请求以及磁盘操作,执行时间通常在5-10ms。例如,若多个函数使用python执行深度学习推断为同一类型的类函数,那么则多个函数对应就一个模板函数,因为它们的执行过程基本一致:加载库,加载算法模型,读取参数,进行推断,返回结果。
(2)设计寄生容器的预运行进程
本发明通过重新设计基础容器镜像,在基础镜像中添加预执行的进程。预执行的进程在容器启动之初即开始执行,提前调用***调用以触发内核复制模板函数的进程。
(3)Fork模板函数的***调用开发
本发明通过在***内核中增加一种***调用,实现对指定的模板函数的快速复制。***调用通过参数的方式传递需要复制哪一个模板函数,例如python深度学习,模板函数例如有webtemplate、bigdatatemplate、MLtemplate、Streamtemplate。以上过程的整体设计架构如图1所示。
请参考图2,本发明提供的一种基于进程寄生的无服务器计算的分支预测方法,包括如下步骤:
步骤S100,接收用户针对目标函数的调用请求;
步骤S200,在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;
步骤S300,在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;
步骤S400,将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。
以下结合图3对本发明的上述步骤进行详细说明。
在步骤S100中,用户通过客户端发起针对目标函数的调用请求,客户端可以以Web界面、命令行工具、RESTful API等形式进行请求调用。
在执行步骤S200之前,首先判断当前计算环境中是否有未执行函数任务的实例正在运行;如果有,则将所述目标函数调度到所述当前计算环境中未执行函数任务的实例上,该实例执行所述目标函数的计算任务。可以理解的是,如果环境中有函数实例正在运行,表示此时函数处于预热状态,所以将目标函数任务调度到这些机器上,分支预测的正确性是有提升效果的。如果没有,那么再考虑如何使用本发明提升性能。
如果当前计算环境中没有未执行函数任务的实例正在运行,则判断所述当前计算环境是否需要扩容;如果不需要扩容,则在所述当前计算环境中生成一实例,该实例执行所述目标函数的计算任务。具体的,根据所述当前计算环境中所有实例的CPU使用量是否超过预设值来判断是否需要扩容。例如,当所有实例的CPU使用超过的情况认为已经负载较大了,所以需要进行扩容。如果不需要扩容,可直接在当前计算环境中生成一实例,使用该实例执行所述目标函数的计算任务。
如果需要扩容,则执行步骤S200,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上(即调度容器到新服务器)。
在步骤S300中,由于所述容器的基础镜像中预先添加了一寄生进程,由此,在新服务器上初始化所述容器时,就会首先执行埋点在容器镜像中的进程(即所述寄生进程),所述寄生进程就会发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次。所述目标函数的类型采用python深度学习算法进行推断。由于一种函数类型对应一个模板函数,因此确定了目标函数类型后即可选择对应的目标模板函数。
在步骤S400中,复制出的N个目标模板函数自动执行,且执行数据可作为训练数据,对所述新服务器上的分支预测器进行训练。
可以理解的是,当容器被调度到新服务器时,由于分支预测器(硬件设计)不熟悉这种类型的函数,所以会预测错较多。因此,在本发明中,提前执行模板函数,让分支预测器熟悉这种函数起到预热效果。分支预测一般只发生在有if-else这种代码逻辑选路的情况下,因此,只要模板函数也是这种设计结果就可以提前让分支预测器熟悉这种逻辑结构。同样类型函数执行多次之后,分支预测器就会自动熟悉这种函数模型,从而做出准确的预测。分支预测器的具体训练过程属于分支预测器算法设计范畴,在此不做赘述。
进一步的,在步骤S300所述新服务器上初始化所述容器成功之后,生成一实例,该实例执行所述目标函数的计算任务。由于触发寄生进程、发起***调用、复制出N个模板进程是在容器初始化过程中进行的,生成实例以执行目标函数的计算任务是在容器初始化成功以后进行的,而在执行目标函数的计算任务之前,已经由N个目标模板函数的执行数据对分支预测器进行了训练,即当执行目标函数的计算任务时分支预测器对目标函数已具有预热效果。因此,可以提高分支预测的准确性,进而提高无服务器计算中函数的执行性能。
综上所述,本发明设计了基于函数特征的模板函数,在容器初始化时采用寄生进程调用***调用,***调用快速fork模板进程,进而通过模板进程提升分支预测准确率,提高无服务器计算中函数的执行性能。本发明进行了充分的实验,结果显示本发明提升了49%的分支预测准确率,提升了38%的整体吞吐量,说明本发明设计方案可行。
基于同一发明构思,本发明还提供一种基于进程寄生的无服务器计算的分支预测装置,如图4所示,包括:
接收模块100,用于接收用户针对目标函数的调用请求;
调度模块200,用于在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;
调用模块300,用于在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;
训练模块400,用于将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。
可选的,所述基于进程寄生的无服务器计算的分支预测装置还包括:
第一判断模块,用于在所述接收模块100接收到用户针对目标函数的调用请求之后,判断当前计算环境中是否有未执行函数任务的实例正在运行;如果有,则触发第一执行模块;
所述第一执行模块,用于将所述目标函数调度到所述当前计算环境中未执行函数任务的实例上,该实例执行所述目标函数的计算任务。
可选的,所述基于进程寄生的无服务器计算的分支预测还包括:
第二判断模块,用于如果当前计算环境中没有未执行函数任务的实例正在运行,判断所述当前计算环境是否需要扩容;如果不需要扩容,触发所述第二执行模块;
所述第二执行模块,还用于在所述当前计算环境中生成一实例,该实例执行所述目标函数的计算任务。
可选的,所述第二判模块判断所述当前计算环境是否需要扩容,具体为:
判断所述当前计算环境中所有实例的CPU使用量是否超过预设值,如果是,判定所述当前计算环境需要扩容。
可选的,所述基于进程寄生的无服务器计算的分支预测装置还包括:
第三执行模块,用于在所述新服务器上初始化所述容器之后,生成一实例,该实例执行所述目标函数的计算任务。
可选的,所述目标函数的类型采用python深度学习算法进行推断。
可选的,所述目标模板函数以编程语言、if-else逻辑结构、for循环位置特征、函数特征为核心。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
基于同一发明构思,本发明还提供一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上文所述的基于进程寄生的无服务器计算的分支预测方法的步骤。
所述处理器在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制所述电子设备的总体操作。本实施例中,所述处理器用于运行所述存储器中存储的程序代码或者处理数据,例如运行基于进程寄生的无服务器计算的分支预测方法的程序代码。
所述存储器至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器可以是所述电子设备的内部存储单元,例如该电子设备的硬盘或内存。在另一些实施例中,所述存储器也可以是所述电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器还可以既包括所述电子设备的内部存储单元也包括其外部存储设备。本实施例中,所述存储器通常用于存储安装于所述电子设备的操作方法和各类应用软件,例如基于进程寄生的无服务器计算的分支预测方法的程序代码等。此外,所述存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
基于同一发明构思,本发明还提供一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的基于进程寄生的无服务器计算的分支预测方法的步骤。
综上所述,本发明提供的一种基于进程寄生的无服务器计算的分支预测方法、装置、电子设备及可读存储介质,具有下列优点和积极效果:
1、相比于重新设计分支预测器,本发明具有普适性。本发明通过预执行模板函数的方法可以提升所有类型服务器的分支预测准确率,提高无服务器计算中函数的执行性能,对所有体系架构(包括ARM,RISC-V等)都适用。
2、相比于分支预测算法的时间局部性,本发明提前执行模板函数,充分利用了分支预测器的时间局部性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于进程寄生的无服务器计算的分支预测方法,其特征在于,包括如下步骤:
接收用户针对目标函数的调用请求;
在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;
在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;
将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。
2.如权利要求1所述的基于进程寄生的无服务器计算的分支预测方法,其特征在于,在接收到用户针对目标函数的调用请求之后,还包括:
判断当前计算环境中是否有未执行函数任务的实例正在运行;
如果有,则将所述目标函数调度到所述当前计算环境中未执行函数任务的实例上,该实例执行所述目标函数的计算任务。
3.如权利要求2所述的基于进程寄生的无服务器计算的分支预测方法,其特征在于,所述方法还包括:
如果当前计算环境中没有未执行函数任务的实例正在运行,则判断所述当前计算环境是否需要扩容;
如果不需要扩容,则在所述当前计算环境中生成一实例,该实例执行所述目标函数的计算任务。
4.如权利要求3所述的基于进程寄生的无服务器计算的分支预测方法,其特征在于,所述判断所述当前计算环境是否需要扩容,包括:
判断所述当前计算环境中所有实例的CPU使用量是否超过预设值,如果是,判定所述当前计算环境需要扩容。
5.如权利要求1所述的基于进程寄生的无服务器计算的分支预测方法,其特征在于,所述方法还包括:
在所述新服务器上初始化所述容器之后,生成一实例,该实例执行所述目标函数的计算任务。
6.如权利要求1所述的基于进程寄生的无服务器计算的分支预测方法,其特征在于,所述目标函数的类型采用python深度学习算法进行推断。
7.如权利要求1所述的基于进程寄生的无服务器计算的分支预测方法,其特征在于,所述目标模板函数以编程语言、if-else逻辑结构、for循环位置特征、函数特征为核心。
8.一种基于进程寄生的无服务器计算的分支预测装置,其特征在于,包括:
接收模块,用于接收用户针对目标函数的调用请求;
调度模块,用于在需要扩容的情况下,将执行所述目标函数的容器调度到短时间内没执行过所述目标函数的新服务器上;其中所述容器的基础镜像中预先添加了一寄生进程;
调用模块,用于在所述新服务器上初始化所述容器时触发所述寄生进程,所述寄生进程用于发起***调用,触发***内核根据所述目标函数的类型选择一目标模板函数并复制N次;
训练模块,用于将复制的N个所述目标模板函数的执行数据作为训练数据,对所述新服务器上的分支预测器进行训练。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1至7中任一项所述的基于进程寄生的无服务器计算的分支预测方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至7中任一项所述的基于进程寄生的无服务器计算的分支预测方法的步骤。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111560316.2A CN116266242A (zh) | 2021-12-18 | 2021-12-18 | 基于进程寄生的无服务器计算的分支预测方法及装置 |
AU2022416127A AU2022416127B2 (en) | 2021-12-18 | 2022-12-09 | Process parasitism-based branch prediction method and device for serverless computing |
CA3212167A CA3212167A1 (en) | 2021-12-18 | 2022-12-09 | Process parasitism-based branch prediction method and device for serverless computing, electronic device, and readable storage medium |
PCT/CN2022/138141 WO2023109700A1 (zh) | 2021-12-18 | 2022-12-09 | 基于进程寄生的无服务器计算的分支预测方法及装置 |
US18/459,397 US11915003B2 (en) | 2021-12-18 | 2023-08-31 | Process parasitism-based branch prediction method and device for serverless computing, electronic device, and non-transitory readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111560316.2A CN116266242A (zh) | 2021-12-18 | 2021-12-18 | 基于进程寄生的无服务器计算的分支预测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116266242A true CN116266242A (zh) | 2023-06-20 |
Family
ID=86743986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111560316.2A Pending CN116266242A (zh) | 2021-12-18 | 2021-12-18 | 基于进程寄生的无服务器计算的分支预测方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11915003B2 (zh) |
CN (1) | CN116266242A (zh) |
AU (1) | AU2022416127B2 (zh) |
CA (1) | CA3212167A1 (zh) |
WO (1) | WO2023109700A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817916B2 (en) * | 2013-09-16 | 2020-10-27 | Amazon Technologies, Inc. | Client-selectable power source options for network-accessible service units |
US10891153B1 (en) * | 2017-02-22 | 2021-01-12 | Virtuozzo International Gmbh | System and method for switching file systems underneath working processes |
US20200081745A1 (en) * | 2018-09-10 | 2020-03-12 | Nuweba Labs Ltd. | System and method for reducing cold start latency of serverless functions |
CN110837408B (zh) * | 2019-09-16 | 2022-06-17 | 中国科学院软件研究所 | 一种基于资源缓存的高性能无服务器计算方法及*** |
US11303534B2 (en) * | 2019-12-13 | 2022-04-12 | Hewlett Packard Enterprise Development Lp | Proactively accomodating predicted future serverless workloads using a machine learning prediction model and a feedback control system |
CN112860450B (zh) * | 2020-12-04 | 2024-04-19 | 武汉悦学帮网络技术有限公司 | 一种请求处理方法及装置 |
CN113656179B (zh) * | 2021-08-19 | 2023-10-20 | 北京百度网讯科技有限公司 | 云计算资源的调度方法及装置、电子设备和存储介质 |
-
2021
- 2021-12-18 CN CN202111560316.2A patent/CN116266242A/zh active Pending
-
2022
- 2022-12-09 CA CA3212167A patent/CA3212167A1/en active Pending
- 2022-12-09 WO PCT/CN2022/138141 patent/WO2023109700A1/zh active Application Filing
- 2022-12-09 AU AU2022416127A patent/AU2022416127B2/en active Active
-
2023
- 2023-08-31 US US18/459,397 patent/US11915003B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CA3212167A1 (en) | 2023-06-22 |
AU2022416127B2 (en) | 2024-03-07 |
US11915003B2 (en) | 2024-02-27 |
US20230409330A1 (en) | 2023-12-21 |
AU2022416127A1 (en) | 2023-09-28 |
WO2023109700A1 (zh) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754496B1 (en) | Data processing method and related products | |
CN108229686B (zh) | 模型训练、预测方法、装置、电子设备及机器学习平台 | |
Wieder et al. | Orchestrating the deployment of computations in the cloud with conductor | |
JP7086065B2 (ja) | アプリケーションリンク拡張方法、装置、及びシステム | |
RU2658190C2 (ru) | Управление доступом во время выполнения к интерфейсам прикладного программирования | |
CN111399897A (zh) | 基于kubernetes的应用发布方法以及*** | |
CN112084002A (zh) | 云环境下微服务***的弹性伸缩方法、***、介质及设备 | |
US9904574B2 (en) | Parallel computing without requiring antecedent code deployment | |
KR102298766B1 (ko) | 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법 | |
CN114816753A (zh) | 一种数据集群计算节点扩缩方法、装置、设备及介质 | |
CN110034963B (zh) | 一种应用集群自适应的弹性配置方法 | |
Harichane et al. | KubeSC‐RTP: Smart scheduler for Kubernetes platform on CPU‐GPU heterogeneous systems | |
CN111782335A (zh) | 通过进程内操作***的扩展应用机制 | |
US8850419B1 (en) | Descaling computing resources | |
CN113391921A (zh) | 一种应用实例的资源配额校验方法 | |
US20200285527A1 (en) | Determination method, information processing apparatus, and storage medium | |
CN116266242A (zh) | 基于进程寄生的无服务器计算的分支预测方法及装置 | |
CN116382713A (zh) | 构建应用镜像的方法、***、设备和存储介质 | |
Krawczyk et al. | Automated distribution of software to multi-core hardware in model based embedded systems development | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
Shmeis et al. | Fine and coarse grained composition and adaptation of spark applications | |
CN117591242B (zh) | 基于底层虚拟机的编译优化方法、***、存储介质及终端 | |
CN111580834B (zh) | 一种应用安装包的生成方法和装置 | |
CN117762564A (zh) | 函数处理方法及装置、电子设备和计算机可读存储介质 | |
CN116382771A (zh) | 一种容器云多应用升级的方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |