WO2020238720A1 - 计算资源分配系统和方法 - Google Patents

计算资源分配系统和方法 Download PDF

Info

Publication number
WO2020238720A1
WO2020238720A1 PCT/CN2020/091231 CN2020091231W WO2020238720A1 WO 2020238720 A1 WO2020238720 A1 WO 2020238720A1 CN 2020091231 W CN2020091231 W CN 2020091231W WO 2020238720 A1 WO2020238720 A1 WO 2020238720A1
Authority
WO
WIPO (PCT)
Prior art keywords
serverless
fpga
service
server
identification information
Prior art date
Application number
PCT/CN2020/091231
Other languages
English (en)
French (fr)
Inventor
李峰
龙欣
张振祥
张军
Original Assignee
阿里巴巴集团控股有限公司
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
Priority claimed from CN201910439929.7A external-priority patent/CN111984397B/zh
Application filed by 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Publication of WO2020238720A1 publication Critical patent/WO2020238720A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Definitions

  • This application relates to the computer field, and specifically to a computing resource allocation system and method.
  • Serviceless architecture refers to a structure that replaces servers with services. In this architecture, developers do not need to consider server issues too much, and use computing resources as services. Server management and resource allocation are invisible to users.
  • the serviceless architecture can provide SaaS (Software-as-Service) services. SaaS services can provide customers with a better experience and at the same time increase the stickiness of the platform to customers.
  • FPGA Field Programmable Gate Arrays
  • on the cloud can be used to provide customers with FPGA computing capabilities, which are suitable for computing-intensive business scenarios, but the threshold for FPGA development is high.
  • the embodiments of the present application provide a computing resource allocation system and method to at least solve the technical problem that the prior art cannot provide serverless services to clients through FPGA boards.
  • a computing resource allocation system including: a management server for responding to a serverless serverless service request initiated by a client, determining the field programmable gate array FPGA computing resources to be used, and The command business server provides serverless services to the client based on FPGA computing resources; the business server is used to provide FPGA computing resources to be used for serverless services through the built-in FPGA board.
  • a method for allocating computing resources including: receiving a serverless serverless service request initiated by a client; responding to the serverless service request and determining the field programmable gate array FPGA computing resource to be used ; Command the business server to provide serverless services to the client based on FPGA computing resources.
  • a computing resource allocation method including: receiving a command issued by a management server to provide a serverless service to a client, wherein the identification information of the client is pre-stored in the information storage server ; Create an application operating environment according to the commands of the management server, and provide serverless services to the client through the application operating environment.
  • a storage medium includes a stored program, wherein the device where the storage medium is located is controlled to execute a computing resource allocation method when the program runs.
  • a processor is also provided, the processor is configured to run a program, wherein the method for allocating computing resources is executed when the program is running.
  • the method of providing FPGA computing resources based on serverless services is adopted.
  • the management server responds to the serverless service request initiated by the client, determines the FPGA computing resources to be used, and instructs the business server to create an application operating environment, so that The business server provides serverless services to the client through the application operating environment based on FPGA computing resources.
  • the FPGA board can provide serverless services with FPGA computing resources to be used, achieving the goal of providing serverless services to the client through the FPGA board.
  • the purpose is to achieve the technical effect of expanding the application range and technical dividends of the FPGA board and improving the user experience, thereby solving the technical problem that the existing technology cannot provide serverless services to the client through the FPGA board.
  • Fig. 1 is a schematic diagram of a computing resource allocation system according to an embodiment of the present application
  • Fig. 2 is a schematic diagram of an optional service server and FPGA board according to an embodiment of the present application
  • Fig. 3 is a schematic diagram of an optional dynamic area according to an embodiment of the present application.
  • FIG. 4 is a block diagram of the hardware structure of an optional computer terminal according to an embodiment of the present application.
  • Fig. 5 is a flowchart of a method for allocating computing resources according to an embodiment of the present application
  • Fig. 6 is a flowchart of a computing resource allocation method according to an embodiment of the present application.
  • Fig. 7 is a schematic diagram of a computing resource allocation device according to an embodiment of the present application.
  • Fig. 8 is a schematic diagram of a computing resource allocation device according to an embodiment of the present application.
  • Fig. 9 is a structural block diagram of a computer terminal according to an embodiment of the present application.
  • a computing resource allocation system is provided. It should be noted that in the prior art, FPGA on the cloud and serverless serverless services can be realized, but currently, serverless services and pooling based on FPGA cannot be realized. Take the application range of FPGA in cargo station.
  • the embodiment of the present application provides a computing resource allocation system, as shown in FIG. 1, the system includes: an information storage server 101, a management server 103, a business server 105, and a field programmable gate array FPGA board 107 .
  • the field programmable gate array FPGA board card 107 is set on the business server 105.
  • the business server provides the FPGA computing resources to be used for serverless serverless services through the built-in field programmable gate array FPGA board card; the information storage server 101, Used to store the function identification information corresponding to the serverless service request sent by the client, where the function identification information can be IP (Intellectual Property) identification information, and different service functions correspond to different function identifications, for example, access to DDR memory
  • the function identification information is different from the function identification information of the picture encoding and decoding.
  • IP1, IP2, IPN-1, and IPN respectively represent different function identification information.
  • the management server 103 is configured to respond to serverless service requests initiated by the client, determine FPGA computing resources to be used, and instruct the business server to provide serverless services to the client based on the FPGA computing resources.
  • the management server communicates with the client, and the client sends a serverless service request to the management server through the network, and the management server responds to the request after receiving the serverless service request.
  • the serverless service request includes at least the relevant information of the FPGA computing resource requested by the client, including but not limited to the identification information (for example, name) and type of the FPGA computing resource.
  • the management server analyzes the request, determines the FPGA board that provides serverless services through the optimal scheduling method, and sends the function identification information to the service server so that the service server provides computing resources corresponding to the FPGA board.
  • the business server 105 is also used to create an application operating environment according to the commands of the management server, and provide serverless services to the client through the application operating environment.
  • the application operating environment may include an application operating environment.
  • the application operating environment may be, but is not limited to Docker runtime environment, developers can use the application runtime environment to package applications into portable containers, and then release or virtualize.
  • the FPGA board is used as a carrier to provide computing resources, and it can also be used through time division multiplexing (TDM, Time Division Multiplexing) and space division multiplexing (SDM, Space Division Multiplexing). FPGA computing resources.
  • TDM Time Division Multiplexing
  • SDM Space Division Multiplexing
  • the management server responds to the serverless service request initiated by the client, determines the FPGA computing resources to be used, and instructs the business server to create an application operating environment so that the business server is based on FPGA computing resources provide serverless services to clients through the application operating environment.
  • the FPGA board can provide the FPGA computing resources to be used for the serverless service, and achieve the serverless service provided to the client through the FPGA board.
  • the purpose of this method is to expand the application scope and technical dividends of the FPGA board, and improve the technical effect of the user experience, thereby solving the technical problem that the existing technology cannot provide serverless services to the client through the FPGA board.
  • the management server is also used to respond to serverless service requests, and determine the FPGA computing resources to be used according to the best-fit algorithm best-fit and the usage of dynamic areas on all FPGA boards, where, The computing resources on each FPGA board are divided into multiple dynamic regions based on the minimum computing resource usage requirements of the function identification information corresponding to the serverless service request.
  • FIG. 2 a schematic diagram of a business server and an FPGA board card, where the CPU is a processor of the business server, and the business server is connected via a PCIe bus (ie, PCIe BUS in FIG. 2).
  • the analysis unit (SHELL) of the FPGA board corresponds to multiple dynamic regions, and the analysis unit is used to parse the command sent by the service server, as shown in Figure 3.
  • Each dynamic area includes an identification storage area for storing function identification information and a content storage area.
  • the content storage area can be a DDR (Double Data Rate) storage unit.
  • IP1 and DDR1 form a dynamic area
  • IP2 And DDR2 form another dynamic area.
  • the dynamic area on the FPGA board is divided based on the minimum computing resource usage requirements.
  • the number of FPGA dynamic areas is N
  • N is a power of 2
  • N meets the minimum computing resource usage For example, if the number of clients is 5, the minimum value of N is 8.
  • the management server when it is detected that a client sends a serverless service request, analyzes the service request sent by the client, determines the FPGA computing resources that can be used by the client, and then according to the available The use of the dynamic area of the FPGA board corresponding to the FPGA computing resources, based on the best adaptive algorithm, determines the FPGA board that provides serverless services, and sends the index of the function identification information requested for the service or the function identification information to the FPGA providing the service In the business server corresponding to the board, the business server refreshes the dynamic area of the FPGA board.
  • the optimal adaptation algorithm can meet the needs of the system when performing tasks during memory allocation, and can also allocate the smallest free area to the system to perform tasks.
  • the management server manages the dynamic resources of the FPGA board to minimize the fragmentation of computing resources in the dynamic area of the FPGA board.
  • the management server may also send the index of the function identification information to the service server when the backup of the function identification information corresponding to the serverless service request is stored in the service server; or, the service server is not stored in the service server.
  • the function identification information is sent to the service server.
  • the function identification information is stored in the information storage server, and the business server backs up the function identification information locally.
  • the management server can issue the index corresponding to the function identification information to the business server. Find the corresponding function identification information locally through the index. If the service server cannot save the function identification information, the management server obtains the corresponding function identification information from the information storage server, and transmits the function identification information to the service server via the network.
  • the service server can configure the index of the function identification information or the dynamic area corresponding to the function identification information as the computing resources required to provide serverless services through a partial reconfiguration (PR) manner.
  • partial reconfiguration can be achieved by downloading some files without hindering the operation of other logic.
  • the service server after receiving the command sent by the management server, performs a partial reconfiguration operation on the FPGA board, and provides serverless services based on the proxy function component.
  • the business server performs data interactions associated with serverless services in the application operating environment and the configured dynamic area by setting the proxy function component.
  • the application operating environment uses commands set between the proxy function component and the FPGA board.
  • the queue transfers operation instructions, and executes the data receiving and sending operations corresponding to the operation instructions through the data queue set between the agent function component and the FPGA board.
  • Fig. 2 docker is the application running environment, and Agency is the agent function component.
  • Agency is the agent function component.
  • the business server receives the command sent by the management node, it creates multiple application operating environments (docker1, docker2, and dockerN in Figure 2).
  • multiple application operating environments provide serverless services to the outside world and pass an agent at the software layer
  • the functional component agency realizes many-to-one data transmission and reception.
  • the management server when the client initiates an FPGA serverless service request, the management server first determines the resources available in the computing resource allocation system according to the configuration information of the client, and then uses best-fit based on the usage of all FPGA dynamic areas The method selects the appropriate FPGA from all FPGAs to provide computing resources. Then, the management server will issue the function identification information or the function identification information index to the business server, and the proxy function component in the business server refreshes the designated dynamic area of the FPGA through partial reconfiguration, thereby realizing the FPGA to provide serverless services.
  • the management server notifies the business server to stop the work of the application operating environment, recovers the FPGA computing resources to be used, and merges the recovered FPGA computing resources to be used. Specifically, after the serverless service ends, the management server notifies the corresponding business server to stop the corresponding docker work, reclaims the related FPGA non-dynamic area, and merges the FPGA dynamic area to meet possible subsequent work needs.
  • the solution provided in this application allows the FPGA board to provide serverless services with FPGA computing resources to be used by the management server and business server processing serverless service requests, and achieves the realization of the FPGA board to the client
  • the purpose of providing serverless services has achieved the technical effect of expanding the application range and technical dividends of FPGA boards and improving the user experience.
  • an embodiment of a computing resource allocation method is also provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and Although the logical sequence is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than here.
  • FIG. 4 shows a block diagram of the hardware structure of a computer terminal (or mobile device) for implementing a computing resource allocation method.
  • the computer terminal 10 may include one or more (shown in the figure as 102a, 102b, ..., 102n) processor 102 (the processor 102 may include but is not limited to a micro A processing device such as a processor MCU or a programmable logic device FPGA), a memory 104 for storing data, and a transmission device 106 for communication functions.
  • the computer terminal 10 can also include: display, input/output interface (I/O interface), universal serial bus (USB) port (can be included as one of the ports of I/O interface), network interface, power supply And/or camera.
  • I/O interface input/output interface
  • USB universal serial bus
  • FIG. 4 is merely illustrative, and does not limit the structure of the above electronic device.
  • the computer terminal 10 may also include more or fewer components than those shown in FIG. 4, or have a different configuration from that shown in FIG.
  • the aforementioned one or more processors 102 and/or other data processing circuits may generally be referred to as "data processing circuits" herein.
  • the data processing circuit can be embodied in whole or in part as software, hardware, firmware or any other combination.
  • the data processing circuit may be a single independent processing module, or be fully or partially integrated into any one of the other elements in the computer terminal 10 (or mobile device).
  • the data processing circuit is used as a kind of processor control (for example, selection of a variable resistance terminal path connected to an interface).
  • the memory 104 can be used to store software programs and modules of application software, such as a program instruction/data storage device corresponding to the computing resource allocation method in the embodiment of the present application.
  • the processor 102 runs the software programs and modules stored in the memory 104 to thereby Perform various functional applications and data processing, that is, realize the aforementioned computing resource allocation method.
  • the memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory.
  • the memory 104 may further include a memory remotely provided with respect to the processor 102, and these remote memories may be connected to the computer terminal 10 via a network. Examples of the aforementioned networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
  • the transmission device 106 is used to receive or send data via a network.
  • the above-mentioned specific examples of the network may include a wireless network provided by the communication provider of the computer terminal 10.
  • the transmission device 106 includes a network adapter (Network Interface Controller, NIC), which can be connected to other network devices through a base station to communicate with the Internet.
  • the transmission device 106 may be a radio frequency (RF) module, which is used to communicate with the Internet in a wireless manner.
  • RF radio frequency
  • the display may be, for example, a touch screen liquid crystal display (LCD), which may enable a user to interact with the user interface of the computer terminal 10 (or mobile device).
  • LCD liquid crystal display
  • the computer device (or mobile device) shown in FIG. 4 may include hardware elements (including circuits) and software elements (including computer-readable media stored on a computer-readable medium). Code), or a combination of hardware and software components.
  • FIG. 4 is only one example of a specific specific example, and is intended to show the types of components that may be present in the above-mentioned computer device (or mobile device).
  • Fig. 5 is a flowchart of a computing resource allocation method according to an embodiment of the present application. As shown in Fig. 5, the method includes the following steps:
  • Step S502 receiving a serverless serverless service request initiated by the client;
  • Step S504 In response to the serverless service request, determine the field programmable gate array FPGA computing resources to be used;
  • Step S506 Instruct the service server to provide serverless services to the client based on FPGA computing resources.
  • the management server communicates with the client, and the client sends a serverless service request to the management server through the network, and the management server responds to the request after receiving the serverless service request.
  • the serverless service request includes at least the relevant information of the FPGA computing resource requested by the client, including but not limited to the identification information (for example, name) and type of the FPGA computing resource.
  • the management server analyzes the request, determines the FPGA board that provides the serverless service through the optimal scheduling method, and sends the function identification information corresponding to the serverless service request to the business server, so that the business server provides the FPGA board corresponding to the FPGA board. Computing resources, where the function identification information is stored in the information storage server.
  • the method of providing FPGA computing resources based on serverless services is adopted. After receiving the serverless service request initiated by the client, the serverless service request is responded to and the FPGA to be used is determined Computing resources, and then instruct the business server to provide serverless services to clients based on FPGA computing resources.
  • the FPGA board can provide the FPGA computing resources to be used for the serverless service, and achieve the serverless service provided to the client through the FPGA board.
  • the purpose of this method is to expand the application scope and technical dividends of the FPGA board, and improve the technical effect of the user experience, thereby solving the technical problem that the existing technology cannot provide serverless services to the client through the FPGA board.
  • the management server is also used to respond to serverless service requests, and determine the FPGA computing resources to be used according to the best-fit algorithm best-fit and the usage of dynamic areas on all FPGA boards, where, The computing resources on each FPGA board are divided into multiple dynamic regions based on the minimum computing resource usage requirements of the function identification information corresponding to the serverless service request.
  • the dynamic area on the FPGA board is divided based on the minimum computing resource usage requirements.
  • the number of FPGA dynamic areas is N
  • N is a power of 2
  • N meets the minimum computing resource usage For example, if the number of clients is 5, the minimum value of N is 8.
  • the management server when it is detected that a client sends a serverless service request, analyzes the service request sent by the client, determines the FPGA computing resources that can be used by the client, and then according to the available The use of the dynamic area of the FPGA board corresponding to the FPGA computing resources, based on the best adaptive algorithm, determines the FPGA board that provides serverless services, and sends the index of the function identification information requested for the service or the function identification information to the FPGA providing the service In the business server corresponding to the board, the business server refreshes the dynamic area of the FPGA board.
  • the optimal adaptation algorithm can meet the needs of the system when performing tasks during memory allocation, and can also allocate the smallest free area to the system to perform tasks.
  • the management server manages the dynamic resources of the FPGA board to minimize the fragmentation of computing resources in the dynamic area of the FPGA board.
  • the management server before instructing the service server to provide serverless services to the client based on FPGA computing resources, the management server also stores a backup of the function identification information corresponding to the serverless service request in the service server, and then sets the function identification The index of the information is sent to the service server; or, when the backup of the function identification information is not stored in the service server, the function identification information is sent to the service server.
  • the function identification information is stored in the information storage server, and the business server backs up the function identification information locally.
  • the management server can issue the index corresponding to the function identification information to the business server. Find the corresponding function identification information locally through the index. If the service server cannot save the function identification information, the management server obtains the corresponding function identification information from the information storage server, and transmits the function identification information to the service server via the network.
  • the management server after instructing the business server to provide serverless services to the client based on FPGA computing resources, notifies the business server to stop the application operating environment when the serverless service ends, and reclaim the FPGA computing to be used Resources, and merge the recovered FPGA computing resources to be used. Specifically, after the serverless service ends, the management server notifies the corresponding business server to stop the corresponding docker work, reclaims the related FPGA non-dynamic area, and merges the FPGA dynamic area to meet possible subsequent work needs.
  • the application operating environment may include an application operating environment.
  • the application operating environment may be, but is not limited to, the Docker operating environment. Developers can use the application operating environment to package the application into a portable container and then release it, or Virtualization processing.
  • the computing resource allocation method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases The former is a better implementation.
  • the technical solution of this application essentially or the part that contributes to the existing technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium (such as ROM/RAM, magnetic disk, The optical disc) includes several instructions to enable a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the method described in each embodiment of the present application.
  • FIG. 6 shows a flowchart of a computing resource allocation method. As shown in FIG. 6, the method includes the following steps:
  • Step S602 Receive a command issued by the management server to provide serverless services to the client.
  • Step S604 Create an application operating environment according to the command of the management server, and provide serverless services to the client through the application operating environment.
  • the application operating environment may include an application operating environment.
  • the application operating environment may be, but is not limited to, a Docker operating environment. Developers can use the application operating environment to package the application into a portable container and then release it, or virtualize it. ⁇ Treatment.
  • the management server can respond to the serverless serverless service request initiated by the client, and then determine the field programmable gate array FPGA computing resource to be used, and instruct the business server associated with the FPGA computing resource to provide the client based on the FPGA computing resource serverless service.
  • the business server After receiving the command, the business server creates an application operating environment and provides serverless services to the client through the application operating environment.
  • the application operating environment may be, but not limited to, the Docker operating environment. Developers can use the application operating environment to package the application into a portable container and then release it, or perform virtualization processing.
  • the management server communicates with the client, and the client sends a serverless service request to the management server through the network, and the management server responds to the request after receiving the serverless service request.
  • the serverless service request includes at least the relevant information of the FPGA computing resource requested by the client, including but not limited to the identification information (for example, name) and type of the FPGA computing resource.
  • the management server analyzes the request, determines the FPGA board that provides the serverless service through the optimal scheduling method, and sends the function identification information corresponding to the serverless service request to the business server, so that the business server provides the FPGA board corresponding to the FPGA board. Computing resources, where the function identification information is stored in the information storage server.
  • the FPGA board can provide the FPGA computing resources to be used for the serverless service, and achieve the serverless service provided to the client through the FPGA board.
  • the purpose of this method is to expand the application scope and technical dividends of the FPGA board, and improve the technical effect of the user experience, thereby solving the technical problem that the existing technology cannot provide serverless services to the client through the FPGA board.
  • the service server configures the index of the function identification information or the dynamic area corresponding to the function identification information to provide the computing resources required for serverless services through partial reconfiguration, and then sets the proxy function component In the application operating environment and the configured dynamic area, the data interaction associated with the serverless service is carried out.
  • the application operating environment transmits operation instructions through the command queue set between the proxy function component and the FPGA board, and through the proxy function component
  • the data queue set between the FPGA board and the FPGA board executes the data receiving and sending operations corresponding to the operation instructions.
  • the service server after receiving the command sent by the management server, performs a partial reconfiguration operation on the FPGA board, and provides serverless services based on the proxy function component.
  • the business server conducts data interaction associated with serverless services in the application operating environment and the configured dynamic area by setting the proxy function component.
  • the application operating environment transfers operations through the command queue set between the proxy function component and the FPGA board. Instructions, and execute data receiving and sending operations corresponding to the operating instructions through the data queue set up between the proxy function component and the FPGA board.
  • the management server when the client initiates an FPGA serverless service request, the management server first determines the resources available in the computing resource allocation system according to the configuration information of the client, and then uses best-fit based on the usage of all FPGA dynamic areas The method selects the appropriate FPGA from all FPGAs to provide computing resources. Then, the management server will issue the function identification information or the function identification information index to the business server, and the proxy function component in the business server will configure the designated dynamic area of the FPGA as the computing resource required to provide serverless services through partial reconfiguration. So as to realize that FPGA provides serverless service.
  • the management server notifies the business server to stop the work of the application operating environment, recovers the FPGA computing resources to be used, and merges the recovered FPGA computing resources to be used. Specifically, after the serverless service ends, the management server notifies the corresponding business server to stop the corresponding docker work, reclaims the related FPGA non-dynamic area, and merges the FPGA dynamic area to meet possible subsequent work needs.
  • the device 70 includes: a first receiving module 701, a determining module 703, and a first processing module 705.
  • the first receiving module 701 is used to receive serverless serverless service requests initiated by the client; the determining module 703 is used to respond to serverless service requests and determine the field programmable gate array FPGA computing resources to be used; the first processing module 705 , Used to instruct the business server to provide serverless services to the client based on FPGA computing resources.
  • first receiving module 701, determining module 703, and first processing module 705 correspond to steps S502 to S506 in Embodiment 2.
  • Examples and application scenarios implemented by the three modules and corresponding steps The same, but not limited to the content disclosed in the above embodiment 2.
  • a computing resource allocation device for implementing the foregoing computing resource allocation method is also provided.
  • the device 80 includes a second receiving module 801 and a second processing module 803.
  • the second receiving module 801 is used to receive a command issued by the management server to provide serverless services to the client;
  • the second processing module 803 is used to create an application running environment according to the command of the management server, and provide the client with Provide serverless services at the end.
  • second receiving module 801 and second processing module 803 correspond to steps S602 to S604 in Embodiment 3.
  • the two modules implement the same examples and application scenarios as the corresponding steps, but they are not It is limited to the content disclosed in Example 3 above.
  • the embodiments of the present application may provide a computer terminal, and the computer terminal may be any computer terminal device in a computer terminal group.
  • the above-mentioned computer terminal may also be replaced with a terminal device such as a mobile terminal.
  • the foregoing computer terminal may be located in at least one network device among multiple network devices in the computer network.
  • the above-mentioned computer terminal can execute the program code of the following steps in the computing resource allocation method: receiving a serverless serverless service request initiated by the client; responding to the serverless service request, determining the field programmable gate array FPGA computing resource to be used ; Command the business server to provide serverless services to the client based on FPGA computing resources.
  • FIG. 9 is a structural block diagram of a computer terminal according to an embodiment of the present application.
  • the computer terminal 10 may include: one or more (only one is shown in the figure) processor 902, memory 904, and transmission device 906.
  • the memory can be used to store software programs and modules, such as the program instructions/modules corresponding to the computing resource allocation method and device in the embodiments of the present application.
  • the processor executes various functions by running the software programs and modules stored in the memory.
  • Application and data processing that is, to realize the aforementioned computing resource allocation method.
  • the memory may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memories.
  • the memory may further include a memory remotely provided with respect to the processor, and these remote memories may be connected to the computer terminal 10 via a network. Examples of the aforementioned networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
  • the processor can call the information and application programs stored in the memory through the transmission device to perform the following steps: receiving a serverless serverless service request initiated by the client; responding to the serverless service request, and determining the field programmable gate array FPGA computing resources to be used;
  • the command business server provides serverless services to clients based on FPGA computing resources.
  • the above-mentioned processor may also execute the program code of the following steps: in response to serverless service requests, determine the FPGA computing resources to be used according to the best-fit algorithm best-fit and the usage of the dynamic area on all FPGA boards, where , The computing resources on each FPGA board are divided into multiple dynamic regions based on the minimum computing resource usage requirements of the function identification information corresponding to the serverless service request.
  • the above-mentioned processor may also execute the program code of the following steps: when the backup of the function identification information corresponding to the serverless service request is stored in the service server, the index of the function identification information is sent to the service server; or, in the service server When the backup of the function identification information is not stored in the file, the function identification information is sent to the service server.
  • the above-mentioned processor may also execute the program code of the following steps: at the end of the serverless service, notify the business server to stop the work of the application operating environment, reclaim the FPGA computing resources to be used, and check the recovered FPGA computing resources to be used Perform merge processing.
  • the above-mentioned processor may also execute the program code of the following steps: receiving a command issued by the management server to provide serverless services to the client, wherein the identification information of the client is pre-stored in the information storage server; according to the command of the management server Create an application operating environment, and provide serverless services to the client through the application operating environment.
  • the above-mentioned processor may also execute the program code of the following steps: configure the index of the function identification information or the dynamic area corresponding to the function identification information as the computing resources needed to provide serverless services through partial reconfiguration;
  • the function component is used to interact with the serverless service in the application operating environment and the configured dynamic area.
  • the application operating environment transmits operation instructions through the command queue set between the proxy function component and the FPGA board, and through the The data queue set up between the proxy function component and the FPGA board executes the data receiving and sending operations corresponding to the operation instructions.
  • the structure shown in Figure 9 is only for illustration, and the computer terminal can also be a smart phone (such as an Android phone, an iOS phone, etc.), a tablet computer, an applause computer, and a mobile Internet Device (MID). ), PAD and other terminal equipment.
  • FIG. 9 does not limit the structure of the above electronic device.
  • the computer terminal 10 may also include more or fewer components (such as a network interface, a display device, etc.) than those shown in FIG. 9 or have a configuration different from that shown in FIG. 9.
  • the program can be stored in a computer-readable storage medium, which can be Including: flash disk, read-only memory (Read-Only Memory, ROM), random access device (Random Access Memory, RAM), magnetic disk or optical disk, etc.
  • the embodiment of the present application also provides a storage medium.
  • the foregoing storage medium may be used to store the program code executed by the computing resource allocation method provided in the foregoing embodiment 1.
  • the foregoing storage medium may be located in any computer terminal in a computer terminal group in a computer network, or located in any mobile terminal in a mobile terminal group.
  • the storage medium is set to store program code for performing the following steps: receiving a serverless serverless service request initiated by the client; responding to the serverless service request, determining the field programmable gate array to be used FPGA computing resources; the command service server provides serverless services to clients based on FPGA computing resources.
  • the storage medium is set to store the program code used to perform the following steps: respond to serverless service requests, according to the best-fit algorithm best-fit and the usage of dynamic areas on all FPGA boards Determine the FPGA computing resources to be used, where the computing resources on each FPGA board are divided into multiple dynamic regions based on the minimum computing resource usage requirements of the function identification information corresponding to the serverless service request.
  • the storage medium is set to store the program code used to perform the following steps: when the backup of the function identification information corresponding to the serverless service request is stored in the service server, the index of the function identification information is sent To the service server; or, when the backup of the function identification information is not stored in the service server, the function identification information is sent to the service server.
  • the storage medium is configured to store the program code used to perform the following steps: when the serverless service ends, notify the business server to stop the work of the application running environment, reclaim the FPGA computing resources to be used, and Combine the recovered FPGA computing resources to be used.
  • the storage medium is configured to store program code for performing the following steps: receiving a command issued by the management server to provide serverless services to the client, wherein the identification information of the client is pre-stored in the information In the storage server; create an application operating environment according to the commands of the management server, and provide serverless services to the client through the application operating environment.
  • the storage medium is set to store the program code used to perform the following steps: configure the index of the function identification information or the dynamic area corresponding to the function identification information to provide serverless service providers through partial reconfiguration.
  • the computing resources to be used; the data interaction associated with the serverless service is carried out between the application operating environment and the configured dynamic area by setting the proxy function component.
  • the application operating environment is set between the proxy function component and the FPGA board.
  • the command queue transfers operation instructions, and executes the data receiving and sending operations corresponding to the operation instructions through the data queue set between the proxy function component and the FPGA board.
  • the disclosed technical content can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division.
  • multiple units or components may be combined or may be Integrate into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of units or modules, and may be in electrical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • each unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application essentially or the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , Including several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage media include: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, magnetic disk or optical disk and other media that can store program code .

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种计算资源分配系统和方法,其中,该系统包括:管理服务器(103),用于响应客户端发起的无服务器serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源,并命令业务服务器(105)基于FPGA计算资源向客户端提供serverless服务;业务服务器(105),用于通过内置的FPGA板卡(107)为serverless服务提供待使用的FPGA计算资源。解决了现有技术无法通过FPGA板卡向客户端提供无服务器的服务的技术问题。

Description

计算资源分配系统和方法
本申请要求2019年05月24日递交的申请号为201910439929.7、发明名称为“计算资源分配系统和方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,具体而言,涉及一种计算资源分配系统和方法。
背景技术
无服务架构(即serverless架构)是指用服务代替服务器的结构,在该架构中,开发者无需过多的考虑服务器问题,将计算资源作为服务,其中,服务器管理与资源分配对用户不可见。无服务架构可提供SaaS(Software-as-Service,软件即服务)服务,SaaS服务能为客户提供更好的体验,同时还能增加平台对客户的粘性。云上FPGA(Field Programmable Gate Arrays,现场可编程门阵列)可用来为客户提供FPGA计算能力,适用于计算密集型业务场景,但FPGA的开发门槛较高。
然而现有技术无法通过FPGA板卡向客户端提供无服务器的服务,也不存在基于FPGA的无服务器的服务、池化等方案,以提高客户的使用体验,扩展FPGA板卡的应用范围。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种计算资源分配系统和方法,以至少解决现有技术无法通过FPGA板卡向客户端提供无服务器的服务的技术问题。
根据本申请实施例的一个方面,提供了一种计算资源分配系统,包括:管理服务器,用于响应客户端发起的无服务器serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源,并命令业务服务器基于FPGA计算资源向客户端提供serverless服务;业务服务器,用于通过内置的FPGA板卡为serverless服务提供待使用的FPGA计算资源。
根据本申请实施例的另一方面,还提供了一种计算资源分配方法,包括:接收客户端发起的无服务器serverless服务请求;响应serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
根据本申请实施例的另一方面,还提供了一种计算资源分配方法,包括:接收管理服务器下发的向客户端提供serverless服务的命令,其中,客户端的标识信息预先存储在信息存储服务器中;按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行计算资源分配方法。
根据本申请实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行计算资源分配方法。
在本申请实施例中,采用基于无服务器服务提供FPGA计算资源的方式,通过管理服务器响应客户端发起的无服务器服务请求,确定待使用的FPGA计算资源,并命令业务服务器创建应用运行环境,使业务服务器基于FPGA计算资源通过应用运行环境向客户端提供serverless服务。
由上述内容可知,通过管理服务器和业务服务器对serverless服务请求的处理方式,使得FPGA板卡能够为serverless服务提供待使用的FPGA计算资源,达到了通过FPGA板卡向客户端提供无服务器的服务的目的,从而实现了扩展FPGA板卡的应用范围以及技术红利,提高用户的使用体验的技术效果,进而解决了现有技术无法通过FPGA板卡向客户端提供无服务器的服务的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种计算资源分配系统的示意图;
图2是根据本申请实施例的一种可选的业务服务器与FPGA板卡的示意图;
图3是根据本申请实施例的一种可选的动态区域的示意图;
图4是根据本申请实施例的一种可选的计算机终端的硬件结构框图;
图5是根据本申请实施例的一种计算资源分配方法的流程图;
图6是根据本申请实施例的一种计算资源分配方法的流程图;
图7是根据本申请实施例的一种计算资源分配装置的示意图;
图8是根据本申请实施例的一种计算资源分配装置的示意图;以及
图9是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,提供了一种计算资源分配系统,需要说明的是,现有技术中可实现对云上FPGA,以及无服务器serverless服务,但目前无法实现基于FPGA的serverless服务、池化,以货站FPGA的应用范围。
为解决上述问题,本申请实施例提供了一种计算资源分配系统,如图1所示,该系统包括:信息存储服务器101、管理服务器103、业务服务器105以及现场可编程门阵列FPGA板卡107。
其中,现场可编程门阵列FPGA板卡107设置在业务服务器105上,业务服务器,通过内置的现场可编程门阵列FPGA板卡为无服务器serverless服务提供待使用的FPGA计算资源;信息存储服务器101,用于存储客户端发送的serverless服务请求对应的功能标识信息,其中,功能标识信息可以为IP(Intellectual Property,知识产权)标识信息,不同的服务功能对应不同的功能标识,例如,访问DDR内存的功能标识信息与图片编解码的功能标识信息不同,如图1中的IP1、IP2、IPN-1、IPN分别表示不同的功能标识信息。
管理服务器103,用于响应客户端发起的serverless服务请求,确定待使用的FPGA 计算资源,并命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
可选的,管理服务器与客户端进行通信,客户端通过网络向管理服务器发送serverless服务请求,管理服务器在接收到serverless服务请求之后,响应该请求。其中,serverless服务请求中至少包括客户端所请求的FPGA计算资源的相关信息,包括但不限于FPGA计算资源的标识信息(例如,名称)、类型等。然后,管理服务器对该请求进行分析,通过最优的调度方式确定提供serverless服务的FPGA板卡,并将功能标识信息发送给业务服务器,以使业务服务器提供FPGA板卡对应的计算资源。
此外,业务服务器105还用于按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务,其中,上述应用运行环境可以包括应用运行环境,应用运行环境可以为但不限于Docker运行环境,开发者可使用应用运行环境将应用打包至可移植的容器中,然后进行发布,或者进行虚拟化处理。
在另一种可选的方案中,FPGA板卡作为提供计算资源的提供载体,还可通过时分复用(TDM,Time Division Multiplexing)和空分复用(SDM,Space Division Multiplexing)方式提供待使用的FPGA计算资源。
由上可知,采用基于无服务器服务提供FPGA计算资源的方式,通过管理服务器响应客户端发起的无服务器服务请求,确定待使用的FPGA计算资源,并命令业务服务器创建应用运行环境,使业务服务器基于FPGA计算资源通过应用运行环境向客户端提供serverless服务。
容易注意到的是,通过管理服务器和业务服务器对serverless服务请求的处理方式,使得FPGA板卡能够为serverless服务提供待使用的FPGA计算资源,达到了通过FPGA板卡向客户端提供无服务器的服务的目的,从而实现了扩展FPGA板卡的应用范围以及技术红利,提高用户的使用体验的技术效果,进而解决了现有技术无法通过FPGA板卡向客户端提供无服务器的服务的技术问题。
在一种可选的实施例中,管理服务器还用于响应serverless服务请求,根据最佳适应算法best-fit和所有FPGA板卡上的动态区域的使用情况确定待使用的FPGA计算资源,其中,每个FPGA板卡上的计算资源基于serverless服务请求对应的功能标识信息的最小计算资源使用需求被划分为多个动态区域。
可选的,如图2所示的业务服务器与FPGA板卡的示意图,其中,CPU为业务服务器的处理器,业务服务器通过PCIe总线(即图2中的PCIe BUS)连接。在图2中,FPGA 板卡的解析单元(SHELL)与多个动态区域相对应,解析单元用于对业务服务器发送的命令进行解析,如图3所示。每个动态区域包括存储功能标识信息的标识存储区域以及内容存储区域,内容存储区域可以为DDR(Double Data Rate,双倍速率)存储单元,如图2中,IP1与DDR1组成一个动态区域,IP2和DDR2组成另一个动态区域。
需要说明的是,FPGA板卡上的动态区域是基于最小计算资源的使用需求进行划分得到的,其中,FPGA的动态区域的个数为N,N为2的幂,N满足最小计算资源的使用需求,例如,客户端的个数为5个,则对应的N的最小值为8。
在一种可选的实施例中,当检测到有客户端发送serverless服务请求时,管理服务器对客户端发送的服务请求进行分析,确定客户端可使用的FPGA计算资源,然后再根据能够使用的FPGA计算资源所对应的FPGA板卡的动态区域的使用情况,基于最佳适应算法确提供serverless服务的FPGA板卡,并将请求服务的功能标识信息的索引或者功能标识信息发送到提供服务的FPGA板卡对应的业务服务器中,由业务服务器对FPGA板卡的动态区域进行刷新。
需要说明的是,最佳适应算法可使得在进行内存分配时,能够满足系统执行任务时的需求,还可将最小的空闲区域分配给该系统执行任务。另外,通过管理服务器对FPGA板卡的动态资源的管理,实现了FPGA板卡的动态区域中计算资源的最小碎片化。
在一种可选的实施例中,管理服务器还可在业务服务器中存储有serverless服务请求对应的功能标识信息的备份时,将功能标识信息的索引发送至业务服务器;或者,在业务服务器中未存储功能标识信息的备份时,将功能标识信息发送至业务服务器。
具体的,功能标识信息存储在信息存储服务器中,业务服务器在本地对功能标识信息进行备份,当需要使用功能标识信息时,管理服务器可将功能标识信息对应的索引下发至业务服务器,业务服务器通过索引在本地查找对应的功能标识信息。如果业务服务器无法对功能标识信息进行保存,则管理服务器从信息存储服务器获取对应的功能标识信息,将功能标识信息通过网络传输至业务服务器。
在一种可选的方案中,业务服务器可通过部分重配置(Partial Reconfiguration,简称PR)方式将功能标识信息的索引或功能标识信息对应的动态区域配置为提供serverless服务所需使用的计算资源。其中,部分重配置可通过在不妨碍其他逻辑运行的同时下载部分文件。可选的,业务服务器在接收到管理服务器发送的命令之后,对FPGA板卡进行部分重配置操作,并基于代理功能组件提供serverless服务。
具体的,业务服务器通过设置代理功能组件的方式在应用运行环境与配置后的动态区域进行与serverless服务关联的数据交互,其中,应用运行环境通过在代理功能组件与FPGA板卡之间设置的命令队列传递操作指令,以及通过在代理功能组件与FPGA板卡之间设置的数据队列执行与操作指令对应的数据收发操作。
可选的,以图2为例进行说明,在图2中docker为应用运行环境,Agency为代理功能组件。业务服务器在接收到管理节点发送的命令之后,创建多个应用运行环境(如图2中的docker1、docker2和dockerN),其中,多个应用运行环境对外提供serverless服务,并在软件层通过一个代理功能组件agency来实现多对一的数据收发。
另外,由图2可知,代理功能组件与FPGA板卡之间存在两个队列,即CMD queue和data queue,其中,CMD queue为命令队列,data queue为数据队列。
可选的,当客户端发起FPGA的serverless服务请求时,管理服务器首先根据客户端的配置信息确定计算资源分配系统中可用的资源,然后再基于所有FPGA的动态区域的使用情况,采用best-fit的方式从所有的FPGA中选择合适的FPGA提供计算资源。然后,管理服务器将向业务服务器下发功能标识信息或者功能标识信息索引,业务服务器中的代理功能组件通过部分重配置的方式来对FPGA的指定动态区域进行刷新,从而实现了FPGA提供serverless服务。
需要说明的是,在serverless服务结束时,管理服务器通知业务服务器停止应用运行环境的工作,回收待使用的FPGA计算资源,并对回收的待使用的FPGA计算资源进行合并处理。具体的,在serverless服务结束后,管理服务器通知对应的业务服务器停止对应的docker工作,回收相关的FPGA非动态区域,并对FPGA的动态区域进行合并处理,以满足后续可能的工作需要。
由上述内容可知,本申请所提供的方案通过管理服务器和业务服务器对serverless服务请求的处理方式,使得FPGA板卡能够为serverless服务提供待使用的FPGA计算资源,达到了通过FPGA板卡向客户端提供无服务器的服务的目的,从而实现了扩展FPGA板卡的应用范围以及技术红利,提高用户的使用体验的技术效果。
实施例2
根据本申请实施例,还提供了一种计算资源分配方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并 且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图4示出了一种用于实现计算资源分配方法的计算机终端(或移动设备)的硬件结构框图。如图4所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的计算资源分配方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的计算资源分配方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从 而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图4所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图4仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图5所示的计算资源分配方法。其中,实施例1中的管理服务器可执行本实施例中的计算资源分配方法。图5是根据本申请实施例的计算资源分配方法的流程图,由图5所示,该方法包括如下步骤:
步骤S502,接收客户端发起的无服务器serverless服务请求;
步骤S504,响应serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;
步骤S506,命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
在一种可选的方案中,管理服务器与客户端进行通信,客户端通过网络向管理服务器发送serverless服务请求,管理服务器在接收到serverless服务请求之后,响应该请求。其中,serverless服务请求中至少包括客户端所请求的FPGA计算资源的相关信息,包括但不限于FPGA计算资源的标识信息(例如,名称)、类型等。然后,管理服务器对该请求进行分析,通过最优的调度方式确定提供serverless服务的FPGA板卡,并将serverless服务请求对应的功能标识信息发送给业务服务器,以使业务服务器提供FPGA板卡对应的计算资源,其中,功能标识信息存储在信息存储服务器中。
基于上述步骤S502至步骤S506所限定的方案,可以获知,采用基于无服务器服务提供FPGA计算资源的方式,在接收到客户端发起的serverless服务请求之后,响应serverless服务请求,并确定待使用的FPGA计算资源,然后命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
容易注意到的是,通过管理服务器和业务服务器对serverless服务请求的处理方式,使得FPGA板卡能够为serverless服务提供待使用的FPGA计算资源,达到了通过FPGA板卡向客户端提供无服务器的服务的目的,从而实现了扩展FPGA板卡的应用范围 以及技术红利,提高用户的使用体验的技术效果,进而解决了现有技术无法通过FPGA板卡向客户端提供无服务器的服务的技术问题。
在一种可选的实施例中,管理服务器还用于响应serverless服务请求,根据最佳适应算法best-fit和所有FPGA板卡上的动态区域的使用情况确定待使用的FPGA计算资源,其中,每个FPGA板卡上的计算资源基于serverless服务请求对应的功能标识信息的最小计算资源使用需求被划分为多个动态区域。
需要说明的是,FPGA板卡上的动态区域是基于最小计算资源的使用需求进行划分得到的,其中,FPGA的动态区域的个数为N,N为2的幂,N满足最小计算资源的使用需求,例如,客户端的个数为5个,则对应的N的最小值为8。
在一种可选的实施例中,当检测到有客户端发送serverless服务请求时,管理服务器对客户端发送的服务请求进行分析,确定客户端可使用的FPGA计算资源,然后再根据能够使用的FPGA计算资源所对应的FPGA板卡的动态区域的使用情况,基于最佳适应算法确提供serverless服务的FPGA板卡,并将请求服务的功能标识信息的索引或者功能标识信息发送到提供服务的FPGA板卡对应的业务服务器中,由业务服务器对FPGA板卡的动态区域进行刷新。
需要说明的是,最佳适应算法可使得在进行内存分配时,能够满足系统执行任务时的需求,还可将最小的空闲区域分配给该系统执行任务。另外,通过管理服务器对FPGA板卡的动态资源的管理,实现了FPGA板卡的动态区域中计算资源的最小碎片化。
在一种可选的实施例中,在命令业务服务器基于FPGA计算资源向客户端提供serverless服务之前,管理服务器还在业务服务器中存储有serverless服务请求对应的功能标识信息的备份时,将功能标识信息的索引发送至业务服务器;或者,在业务服务器中未存储功能标识信息的备份时,将功能标识信息发送至业务服务器。
具体的,功能标识信息存储在信息存储服务器中,业务服务器在本地对功能标识信息进行备份,当需要使用功能标识信息时,管理服务器可将功能标识信息对应的索引下发至业务服务器,业务服务器通过索引在本地查找对应的功能标识信息。如果业务服务器无法对功能标识信息进行保存,则管理服务器从信息存储服务器获取对应的功能标识信息,将功能标识信息通过网络传输至业务服务器。
在一种可选的实施例中,在命令业务服务器基于FPGA计算资源向客户端提供serverless服务之后,管理服务器在serverless服务结束时,通知业务服务器停止应 用运行环境的工作,回收待使用的FPGA计算资源,并对回收的待使用的FPGA计算资源进行合并处理。具体的,在serverless服务结束后,管理服务器通知对应的业务服务器停止对应的docker工作,回收相关的FPGA非动态区域,并对FPGA的动态区域进行合并处理,以满足后续可能的工作需要。
需要说明的是,上述应用运行环境可以包括应用运行环境,应用运行环境可以为但不限于Docker运行环境,开发者可使用应用运行环境将应用打包至可移植的容器中,然后进行发布,或者进行虚拟化处理。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的计算资源分配方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
根据本申请实施例,还提供了一种计算资源分配方法,需要说明的是,该方法同样可在实施例1中的计算资源分配系统中执行,其中,计算资源分配系统的业务服务器可作为本实施例的执行主体。具体的,图6示出了计算资源分配方法的流程图,如图6所示,该方法包括如下步骤:
步骤S602,接收管理服务器下发的向客户端提供serverless服务的命令。
步骤S604,按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。
在步骤S604中,应用运行环境可以包括应用运行环境,应用运行环境可以为但不限于Docker运行环境,开发者可使用应用运行环境将应用打包至可移植的容器中,然 后进行发布,或者进行虚拟化处理。
可选的,管理服务器可响应客户端发起的无服务器serverless服务请求,然后确定待使用的现场可编程门阵列FPGA计算资源,并命令与FPGA计算资源关联的业务服务器基于FPGA计算资源向客户端提供serverless服务。业务服务器在接收到命令之后,创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。其中,应用运行环境可以为但不限于Docker运行环境,开发者可使用应用运行环境将应用打包至可移植的容器中,然后进行发布,或者进行虚拟化处理。
在一种可选的实施例中,管理服务器与客户端进行通信,客户端通过网络向管理服务器发送serverless服务请求,管理服务器在接收到serverless服务请求之后,响应该请求。其中,serverless服务请求中至少包括客户端所请求的FPGA计算资源的相关信息,包括但不限于FPGA计算资源的标识信息(例如,名称)、类型等。然后,管理服务器对该请求进行分析,通过最优的调度方式确定提供serverless服务的FPGA板卡,并将serverless服务请求对应的功能标识信息发送给业务服务器,以使业务服务器提供FPGA板卡对应的计算资源,其中,功能标识信息存储在信息存储服务器中。
基于上述步骤S602至步骤S604所限定的方案,可以获知,采用基于无服务器服务提供FPGA计算资源的方式,在接收到管理服务器下发的向客户端提供serverless服务的命令之后,按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。
容易注意到的是,通过管理服务器和业务服务器对serverless服务请求的处理方式,使得FPGA板卡能够为serverless服务提供待使用的FPGA计算资源,达到了通过FPGA板卡向客户端提供无服务器的服务的目的,从而实现了扩展FPGA板卡的应用范围以及技术红利,提高用户的使用体验的技术效果,进而解决了现有技术无法通过FPGA板卡向客户端提供无服务器的服务的技术问题。
在一种可选的实施例中,业务服务器通过部分重配置方式将功能标识信息的索引或功能标识信息对应的动态区域配置为提供serverless服务所需使用的计算资源,然后通过设置代理功能组件的方式在应用运行环境与配置后的动态区域进行与serverless服务关联的数据交互,其中,应用运行环境通过在代理功能组件与FPGA板卡之间设置的命令队列传递操作指令,以及通过在代理功能组件与FPGA板卡之间设置的数据队列执行与操作指令对应的数据收发操作。
可选的,业务服务器在接收到管理服务器发送的命令之后,对FPGA板卡进行部分重配置操作,并基于代理功能组件提供serverless服务。业务服务器通过设置代理功能组件的方式在应用运行环境与配置后的动态区域进行与serverless服务关联的数据交互,其中,应用运行环境通过在代理功能组件与FPGA板卡之间设置的命令队列传递操作指令,以及通过在代理功能组件与FPGA板卡之间设置的数据队列执行与操作指令对应的数据收发操作。
可选的,当客户端发起FPGA的serverless服务请求时,管理服务器首先根据客户端的配置信息确定计算资源分配系统中可用的资源,然后再基于所有FPGA的动态区域的使用情况,采用best-fit的方式从所有的FPGA中选择合适的FPGA提供计算资源。然后,管理服务器将向业务服务器下发功能标识信息或者功能标识信息索引,业务服务器中的代理功能组件通过部分重配置的方式将FPGA的指定动态区域配置为提供serverless服务所需使用的计算资源,从而实现了FPGA提供serverless服务。
需要说明的是,在serverless服务结束时,管理服务器通知业务服务器停止应用运行环境的工作,回收待使用的FPGA计算资源,并对回收的待使用的FPGA计算资源进行合并处理。具体的,在serverless服务结束后,管理服务器通知对应的业务服务器停止对应的docker工作,回收相关的FPGA非动态区域,并对FPGA的动态区域进行合并处理,以满足后续可能的工作需要。
实施例4
根据本发明实施例,还提供了一种用于实施上述计算资源分配方法的计算资源分配装置,如图7所示,该装置70包括:第一接收模块701、确定模块703以及第一处理模块705。
其中,第一接收模块701,用于接收客户端发起的无服务器serverless服务请求;确定模块703,用于响应serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;第一处理模块705,用于命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
此处需要说明的是,上述第一接收模块701、确定模块703以及第一处理模块705对应于实施例2中的步骤S502至步骤S506,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。
实施例5
根据本发明实施例,还提供了一种用于实施上述计算资源分配方法的计算资源分配装置,如图8所示,该装置80包括:第二接收模块801以及第二处理模块803。
其中,第二接收模块801,用于接收管理服务器下发的向客户端提供serverless服务的命令;第二处理模块803,用于按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。
此处需要说明的是,上述第二接收模块801以及第二处理模块803对应于实施例3中的步骤S602至步骤S604,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例3所公开的内容。
实施例6
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行计算资源分配方法中以下步骤的程序代码:接收客户端发起的无服务器serverless服务请求;响应serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
可选地,图9是根据本申请实施例的一种计算机终端的结构框图。如图9所示,该计算机终端10可以包括:一个或多个(图中仅示出一个)处理器902、存储器904以及传输装置906。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的计算资源分配方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的计算资源分配方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接 收客户端发起的无服务器serverless服务请求;响应serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
可选的,上述处理器还可以执行如下步骤的程序代码:响应serverless服务请求,根据最佳适应算法best-fit和所有FPGA板卡上的动态区域的使用情况确定待使用的FPGA计算资源,其中,每个FPGA板卡上的计算资源基于serverless服务请求对应的功能标识信息的最小计算资源使用需求被划分为多个动态区域。
可选的,上述处理器还可以执行如下步骤的程序代码:在业务服务器中存储有serverless服务请求对应的功能标识信息的备份时,将功能标识信息的索引发送至业务服务器;或者,在业务服务器中未存储功能标识信息的备份时,将功能标识信息发送至业务服务器。
可选的,上述处理器还可以执行如下步骤的程序代码:在serverless服务结束时,通知业务服务器停止应用运行环境的工作,回收待使用的FPGA计算资源,并对回收的待使用的FPGA计算资源进行合并处理。
可选的,上述处理器还可以执行如下步骤的程序代码:接收管理服务器下发的向客户端提供serverless服务的命令,其中,客户端的标识信息预先存储在信息存储服务器中;按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。
可选的,上述处理器还可以执行如下步骤的程序代码:通过部分重配置方式将功能标识信息的索引或功能标识信息对应的动态区域配置为提供serverless服务所需使用的计算资源;通过设置代理功能组件的方式在应用运行环境与配置后的动态区域进行与serverless服务关联的数据交互,其中,应用运行环境通过在代理功能组件与FPGA板卡之间设置的命令队列传递操作指令,以及通过在代理功能组件与FPGA板卡之间设置的数据队列执行与操作指令对应的数据收发操作。
本领域普通技术人员可以理解,图9所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
实施例7
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的计算资源分配方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收客户端发起的无服务器serverless服务请求;响应serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;命令业务服务器基于FPGA计算资源向客户端提供serverless服务。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:响应serverless服务请求,根据最佳适应算法best-fit和所有FPGA板卡上的动态区域的使用情况确定待使用的FPGA计算资源,其中,每个FPGA板卡上的计算资源基于serverless服务请求对应的功能标识信息的最小计算资源使用需求被划分为多个动态区域。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在业务服务器中存储有serverless服务请求对应的功能标识信息的备份时,将功能标识信息的索引发送至业务服务器;或者,在业务服务器中未存储功能标识信息的备份时,将功能标识信息发送至业务服务器。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在serverless服务结束时,通知业务服务器停止应用运行环境的工作,回收待使用的FPGA计算资源,并对回收的待使用的FPGA计算资源进行合并处理。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收管理服务器下发的向客户端提供serverless服务的命令,其中,客户端的标识信息预先存储在信息存储服务器中;按照管理服务器的命令创建应用运行环境,并通过应用运行环境向客户端提供serverless服务。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过部分重配置方式将功能标识信息的索引或功能标识信息对应的动态区域配置为提供serverless服务所需使用的计算资源;通过设置代理功能组件的方式在应用运行环境与配置后的动态区域进行与serverless服务关联的数据交互,其中,应用运行环境通过在代理功能组件与FPGA板卡之间设置的命令队列传递操作指令,以及通过在代理功能组件与FPGA板卡之间设置的数据队列执行与操作指令对应的数据收发操作。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘 等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (17)

  1. 一种计算资源分配系统,其特征在于,包括:
    业务服务器,用于通过内置的现场可编程门阵列FPGA板卡为无服务器serverless服务提供待使用的FPGA计算资源;
    管理服务器,用于响应客户端发起的serverless服务请求,确定所述待使用的FPGA计算资源,并命令所述业务服务器基于所述FPGA计算资源向所述客户端提供serverless服务。
  2. 根据权利要求1所述的系统,其特征在于,所述业务服务器还用于按照所述管理服务器的命令创建应用运行环境,并通过所述应用运行环境向所述客户端提供所述serverless服务。
  3. 根据权利要求1所述的系统,其特征在于,所述管理服务器,还用于响应所述serverless服务请求,根据最佳适应算法best-fit和所有FPGA板卡上的动态区域的使用情况确定所述待使用的FPGA计算资源,其中,每个FPGA板卡上的计算资源基于所述serverless服务请求对应的功能标识信息的最小计算资源使用需求被划分为多个动态区域。
  4. 根据权利要求2所述的系统,其特征在于,所述管理服务器,还用于在所述业务服务器中存储有所述serverless服务请求对应的功能标识信息的备份时,将所述功能标识信息的索引发送至所述业务服务器;或者,在所述业务服务器中未存储所述功能标识信息的备份时,将所述功能标识信息发送至所述业务服务器。
  5. 根据权利要求1所述的系统,其特征在于,所述FPGA板卡,还用于通过时分复用和空分复用方式提供所述待使用的FPGA计算资源。
  6. 根据权利要求4所述的系统,其特征在于,所述业务服务器,还用于通过部分重配置方式将所述功能标识信息的索引或所述功能标识信息对应的动态区域配置为提供所述serverless服务所需使用的计算资源。
  7. 根据权利要求6所述的系统,其特征在于,所述业务服务器,还用于通过设置代理功能组件的方式在所述应用运行环境与配置后的动态区域进行与所述serverless服务关联的数据交互,其中,所述应用运行环境通过在所述代理功能组件与所述FPGA板卡之间设置的命令队列传递操作指令,以及通过在所述代理功能组件与所述FPGA板卡之间设置的数据队列执行与所述操作指令对应的数据收发操作。
  8. 根据权利要求2所述的系统,其特征在于,所述管理服务器,还用于在所述 serverless服务结束时,通知所述业务服务器停止所述应用运行环境的工作,回收所述待使用的FPGA计算资源,并对回收的所述待使用的FPGA计算资源进行合并处理。
  9. 根据权利要求1所述的系统,其特征在于,所述系统还包括:
    信息存储服务器,用于存储功能标识信息。
  10. 一种计算资源分配方法,其特征在于,包括:
    接收客户端发起的无服务器serverless服务请求;
    响应所述serverless服务请求,确定待使用的现场可编程门阵列FPGA计算资源;
    命令业务服务器基于所述FPGA计算资源向所述客户端提供serverless服务。
  11. 根据权利要求10所述的方法,其特征在于,响应所述serverless服务请求,确定所述待使用的FPGA计算资源包括:
    响应所述serverless服务请求,根据最佳适应算法best-fit和所有FPGA板卡上的动态区域的使用情况确定所述待使用的FPGA计算资源,其中,每个FPGA板卡上的计算资源基于所述serverless服务请求对应的功能标识信息的最小计算资源使用需求被划分为多个动态区域。
  12. 根据权利要求10所述的方法,其特征在于,在命令业务服务器基于所述FPGA计算资源向所述客户端提供serverless服务之前,还包括:
    在所述业务服务器中存储有所述serverless服务请求对应的功能标识信息的备份时,将所述功能标识信息的索引发送至所述业务服务器;或者,在所述业务服务器中未存储所述功能标识信息的备份时,将所述功能标识信息发送至所述业务服务器。
  13. 根据权利要求10所述的方法,其特征在于,在命令所述业务服务器基于所述FPGA计算资源向所述客户端提供serverless服务之后,还包括:
    在所述serverless服务结束时,通知所述业务服务器停止应用运行环境的工作,回收所述待使用的FPGA计算资源,并对回收的所述待使用的FPGA计算资源进行合并处理。
  14. 一种计算资源分配方法,其特征在于,包括:
    接收管理服务器下发的向客户端提供serverless服务的命令;
    按照所述管理服务器的命令创建应用运行环境,并通过所述应用运行环境向所述客户端提供所述serverless服务。
  15. 根据权利要求14所述的方法,其特征在于,通过所述应用运行环境向所述客户端提供所述serverless服务包括:
    通过部分重配置方式将功能标识信息的索引或所述功能标识信息对应的动态区域配置为提供所述serverless服务所需使用的计算资源;
    通过设置代理功能组件的方式在所述应用运行环境与配置后的动态区域进行与所述serverless服务关联的数据交互,其中,所述应用运行环境通过在所述代理功能组件与FPGA板卡之间设置的命令队列传递操作指令,以及通过在所述代理功能组件与所述FPGA板卡之间设置的数据队列执行与所述操作指令对应的数据收发操作。
  16. 一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求10至15中任意一项所述的计算资源分配方法。
  17. 一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求10至15中任意一项所述的计算资源分配方法。
PCT/CN2020/091231 2019-05-24 2020-05-20 计算资源分配系统和方法 WO2020238720A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910439929.7 2019-05-24
CN201910439929.7A CN111984397B (zh) 2019-05-24 计算资源分配系统和方法

Publications (1)

Publication Number Publication Date
WO2020238720A1 true WO2020238720A1 (zh) 2020-12-03

Family

ID=73436676

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/091231 WO2020238720A1 (zh) 2019-05-24 2020-05-20 计算资源分配系统和方法

Country Status (1)

Country Link
WO (1) WO2020238720A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776002A (zh) * 2016-11-15 2017-05-31 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置
CN107479964A (zh) * 2016-06-08 2017-12-15 成都赫尔墨斯科技股份有限公司 一种云渲染系统
CN108829512A (zh) * 2018-05-09 2018-11-16 济南浪潮高新科技投资发展有限公司 一种云中心硬件加速计算力的分配方法、系统和云中心
US20190158575A1 (en) * 2017-11-23 2019-05-23 Institute For Information Industry Platform as a service cloud server and multi-tenant operating method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479964A (zh) * 2016-06-08 2017-12-15 成都赫尔墨斯科技股份有限公司 一种云渲染系统
CN106776002A (zh) * 2016-11-15 2017-05-31 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置
US20190158575A1 (en) * 2017-11-23 2019-05-23 Institute For Information Industry Platform as a service cloud server and multi-tenant operating method thereof
CN108829512A (zh) * 2018-05-09 2018-11-16 济南浪潮高新科技投资发展有限公司 一种云中心硬件加速计算力的分配方法、系统和云中心

Also Published As

Publication number Publication date
CN111984397A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
JP6544872B2 (ja) 負荷バランシングコンピュータデバイス、システム、および方法
CN110720091B (zh) 用于与托管的应用/虚拟网络功能(vnf)协调基础设施升级的方法
US9244817B2 (en) Remote debugging in a cloud computing environment
WO2015196931A1 (zh) 基于磁盘io的虚拟资源分配方法及装置
WO2016065643A1 (zh) 一种网卡配置方法及资源管理中心
US20120047246A1 (en) System and Method for Storage Discovery in a Storage Area Network Using Device Domains Under Control of a Storage Device
CN107209642B (zh) 用于控制云环境中的资源的方法和实体
EP3163459B1 (en) Automatic configuration method and device for storage array, and storage system
CN106354559A (zh) 云桌面资源的处理方法及装置
CN112306380B (zh) 一种存储管理方法、装置以及计算机存储介质
CN113312143A (zh) 云计算系统、命令处理方法及虚拟化仿真装置
US20200233712A1 (en) Data Processing Method, Apparatus, Storage Medium, Processor, and System
CN109857464B (zh) 用于平台部署与操作移动操作系统的系统及其方法
WO2020238720A1 (zh) 计算资源分配系统和方法
WO2023016460A1 (zh) 计算任务的策略确定或资源分配方法、装置、网元及介质
WO2022206231A1 (zh) Kubernetes集群的负载均衡的处理方法、装置及存储介质
US9432476B1 (en) Proxy data storage system monitoring aggregator for a geographically-distributed environment
CN106803804B (zh) 传输报文的方法和装置
US11500754B2 (en) Graph-based data multi-operation system
CN111984397B (zh) 计算资源分配系统和方法
US20210235526A1 (en) Endpoint computing device dynamic network slice utilization system
US20170109177A1 (en) System and Method for Reducing Boot Time of a Workload Configuration on a Target Server
US20240211148A1 (en) System and method for dynamic cloud-based storage system deployment
CN112970009A (zh) 在应用程序编排中复制存储表示的系统和方法
US11937103B1 (en) Enhancing availability of radio-based applications using multiple compute instances and virtualized network function accelerators at cloud edge locations

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20814919

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20814919

Country of ref document: EP

Kind code of ref document: A1