Loading...
Please wait, while we are loading the content...
System and Method of Dynamic Allocation of Hardware Accelerator
| Content Provider | The Lens |
|---|---|
| Abstract | Example implementations described herein are directed to systems and methods involving a computer server that can include one or more accelerators and processors; a memory configured to manage a first relationship between a software and functions supported by the one or more accelerators, and a second relationship between the software and assigned accelerators; and a function module executed by a processor from the processors, the execution of the function module causing the processor to be configured to, for receipt of an execution of a function from the plurality of functions by a software, determine, from the second relationship, an existence of an assigned accelerator from one or more accelerators for the software from the plurality of software; and determine whether to execute the function on the assigned accelerator or on the processors. |
| Related Links | https://www.lens.org/lens/patent/010-909-758-981-963/frontpage |
| Language | English |
| Publisher Date | 2019-08-15 |
| Access Restriction | Open |
| Content Type | Text |
| Resource Type | Patent |
| Jurisdiction | United States of America |
| Date Applied | 2016-12-12 |
| Applicant | Hitachi Ltd |
| Application No. | 201616310792 |
| Claim | A system comprising: a computer server comprising: one or more accelerators; one or more processors; a memory configured to manage: a first relationship between a plurality of software and a plurality of functions supported by the one or more accelerators, and a second relationship between the plurality of software and one or more assigned accelerators from the one or more accelerators; and a function module executed by a processor from the one or more processors, the execution of the function module causing the processor to be configured to, for receipt of an execution of a function from the plurality of functions by a software from the plurality of software: determine, from the second relationship, an existence of an assigned accelerator from one or more accelerators for the software from the plurality of software; and determine whether to execute the function on the assigned accelerator or on the one or more processors. The system of claim 1 , wherein the function module is configured to determine whether to execute the function on the assigned accelerator or on the one or more processors based on an availability of the assigned accelerator. The system of claim 1 , wherein the processor is configured to: for the assigned accelerator determined to exist: disable assignments of the assigned accelerator from other software associated with the assigned accelerator in the second relationship; for the assigned accelerator not having the function from the plurality of functions, load the function into the accelerator from one of a local function repository and a management server; and execute the function on the assigned accelerator; and for the assigned accelerator determined not to exist, execute the function on the one or more processors. The system of claim 1 , further comprising: a management server communicatively connected to the computer server, the management server comprising an assignment manager that when executed by a processor of the management server, causes the processor of the management server to be configured to: for a software deployment request associated with the software from the plurality of software, determine whether to execute the function on the assigned accelerator or on the one or more processors based on a system configuration of the computer server and support for the function in the assigned accelerator based on the first relationship; for the determination to execute the function on the assigned accelerator, provide the function from the plurality of functions for loading into the assigned accelerator by the computer server and instruct the computer server to execute the function from the plurality of functions in the assigned accelerator; for the determination to execute the function on the one or more processors, instruct the computer server to execute the function from the plurality functions on the one or more processors. The system of claim 4 , wherein the execution of the assignment manager causes the processor of the management server to be configured to select the computer server as a target server for the software deployment request based on at least one of the first relationship of the computer server and resource capacity of the computer server. The system of claim 4 , wherein the management server further comprises: a job flow manager that when executed by the processor of the management server, causes the processor to be configured to: evaluate a performance of a requested job flow based on a sequence of the software associated with the job flow and an effect on a function repository; determine whether to assign or not assign an accelerator based on the performance evaluation, and provide the determination to the computer server. The system of claim 1 , wherein the execution of the function module further causes the processor to be configured to: for the determination of the assigned accelerator from one or more accelerators for the software from the one or more software being not existing, assign an accelerator from the one or more accelerators and load the function to the accelerator. The system of claim 1 , wherein the execution of the function module further causes the processor to be configured to: for the determination whether to execute the function on the assigned accelerator or on the one or more processors being that the function is to be executed on the assigned accelerator, execute the function on the assigned accelerator and unassign the assigned accelerator from the software from the one or more software upon completion of the execution. A non-transitory computer readable medium, storing instructions for executing a process, the instructions comprising: managing a first relationship between a plurality of software and a plurality of functions supported by one or more accelerators; managing a second relationship between the plurality of software and one or more assigned accelerators from the one or more accelerators; for receipt of an execution of a function from the plurality of functions by a software from the plurality of software: determining, from the second relationship, an existence of an assigned accelerator from the one or more accelerators for the software from the plurality of software; and determining whether to execute the function on the assigned accelerator or on one or more processors. The non-transitory computer readable medium of claim 9 , wherein the determining whether to execute the function on the assigned accelerator or on the one or more processors is based on an availability of the assigned accelerator. The non-transitory computer readable medium of claim 9 , the instructions further comprising: for the assigned accelerator determined to exist: disabling assignments of the assigned accelerator from other software indicated in the second relationship; for the assigned accelerator not having the function from the plurality of functions, loading the function into the accelerator from one of a local function repository and a management server; and executing the function on the assigned accelerator; and for the assigned accelerator determined not to exist, executing the function on the one or more processors. The non-transitory computer readable medium of claim 9 , the instructions further comprising: for the determination of the assigned accelerator from one or more accelerators for the software from the one or more software being not existing, assigning an accelerator from the one or more accelerators and load the function to the accelerator. The non-transitory computer readable medium of claim 9 , the instructions further comprising: for the determination whether to execute the function on the assigned accelerator or on the one or more processors being that the function is to be executed on the assigned accelerator, execute the function on the assigned accelerator and unassign the assigned accelerator from the software from the one or more software upon completion of the execution. The non-transitory computer readable medium of claim 9 , the instructions further comprising: receiving the function from the plurality of functions for loading into the assigned accelerator from a management server; and determining whether to execute the function on the assigned accelerator or on one or more processors based on receiving instructions from the management server to execute the function from the plurality of functions in the assigned accelerator or the one or more processors. The non-transitory computer readable medium of claim 14 , wherein the instructions from the management server are based on a performance of the assigned accelerator. |
| CPC Classification | ELECTRIC DIGITAL DATA PROCESSING |
| Extended Family | 010-909-758-981-963 146-422-928-516-480 |
| Patent ID | 20190250957 |
| Inventor/Author | Hatasaki Keisuke Saito Hideo |
| IPC | G06F9/50 G06F9/38 G06F9/48 |
| Status | Discontinued |
| Owner | Hitachi Ltd |
| Simple Family | 010-909-758-981-963 146-422-928-516-480 |
| CPC (with Group) | G06F9/5044 G06F9/5055 G06F9/3877 G06F9/4881 |
| Issuing Authority | United States Patent and Trademark Office (USPTO) |
| Kind | Patent Application Publication |