Program code allocation based on processor features

US11050846B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11050846-B2
Application numberUS-201916264492-A
CountryUS
Kind codeB2
Filing dateJan 31, 2019
Priority dateDec 16, 2015
Publication dateJun 29, 2021
Grant dateJun 29, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, systems, and computer-readable media for program code allocation based on processor features are disclosed. Analysis of program code is performed using static analysis and/or runtime analysis. The analysis determines one or more processor features invoked by the program code. One or more program execution servers are selected from a plurality of program execution servers based at least in part on the one or more processor features invoked by the program code. One or more selected program execution servers comprise the one or more processor features invoked by the program code, and an additional one or more of the program execution servers lack the one or more processor features invoked by the program code. The program code is executed using the one or more selected program execution servers.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a plurality of servers; and one or more computing devices configured to implement a program execution service, wherein the program execution service is configured to: determine whether one or more processor features were invoked by a previous execution of program code on one or more servers of the plurality of servers; select one or more other servers from the plurality of servers based at least on a determination that the one or more processor features were not invoked by the previous execution of the program code on the one or more servers of the plurality of servers; and migrate the program code from the one or more servers to the one or more other servers based on the selection. 2. The system as recited in claim 1 , wherein to determine that the one or more processor features were not invoked by program code, the program execution service is configured to: determine that the one or more processor features were not invoked by the previous execution of the program code by one or more processors of the one or more servers of the plurality of servers. 3. The system as recited in claim 2 , wherein the one or more other servers lack the one or more processor features that were not invoked by the program code. 4. The system as recited in claim 2 , wherein to determine whether the one or more processor features were invoked by program code, the program execution service is configured to determine that the one or more processor features were not invoked by the program code during a threshold number of a plurality of executions of the program code. 5. The system as recited in claim 1 , wherein the program execution service is configured to cause execution of the program code on the one or more other servers. 6. The system as recited in claim 1 , wherein the one or more processor features invoked by the program code comprise a feature of an accelerator external to a central processing unit. 7. The system as recited in claim 1 , wherein the one or more processor features invoked by the program code comprise a feature of a graphics processing unit or a central processing unit. 8. A computer-implemented method, comprising: performing, by one or more computing devices that collectively implement a program execution service: determining whether one or more processor features were invoked by a previous execution of program code on one or more servers of a plurality of servers; selecting one or more other servers from the plurality of servers based at least on a determination that the one or more processor features were not invoked by the previous execution of the program code on the one or more servers of the plurality of servers; and migrating the program code from the one or more servers to the one or more other servers based on the selection. 9. The method as recited in claim 8 , wherein the determining comprises determining that the one or more processor features were not invoked by the previous execution of the program code by one or more processors of the one or more servers of the plurality of servers. 10. The method as recited in claim 9 , wherein the one or more other servers lack the one or more processor features that were not invoked by the program code. 11. The method as recited in claim 9 , wherein the determining further comprises determining that opcodes associated with the one or more processor features were not invoked by the program code. 12. The method as recited in claim 9 , wherein the determining further comprises determining that the one or more processor features were not invoked by the program code during a threshold number of a plurality of executions of the program code. 13. The method as recited in claim 8 , wherein the one or more processor features comprise a feature of an accelerator external to a central processing unit. 14. The method as recited in claim 8 , wherein the one or more processor features comprise a particular processor feature of a central processing unit (CPU) and an additional processor feature of a co-processor. 15. One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors cause the one or more processors to: determine whether one or more processor features were invoked by a previous execution of program code on one or more servers of a plurality of servers; select one or more other servers from the plurality of servers based at least on a determination that the one or more processor features were not invoked by the previous execution of the program code on the one or more servers of the plurality of servers; and migrate the program code from the one or more servers to the one or more other servers based on the selection. 16. The one or more storage media as recited in claim 15 , wherein to determine that the one or more processor features were not invoked by program code, the program instructions when executed on or across the one or more processors cause the one or more processors to: determine that the one or more processor features were not invoked by the previous execution of the program code by one or more processors of the one or more servers of the plurality of servers. 17. The one or more storage media as recited in claim 16 , wherein the one or more other servers lack the one or more processor features that were not invoked by the program code. 18. The one or more storage media as recited in claim 16 , wherein to determine that the one or more processor features were not invoked by the program code, the program instructions when executed on or across the one or more processors cause the one or more processors to: determine that opcodes associated with the one or more processor features were not invoked by the program code. 19. The one or more storage media as recited in claim 16 , wherein to determine that the one or more processor features were not invoked by the program code, the program instructions when executed on or across the one or more processors cause the one or more processors to: determine that the one or more processor features were not invoked by the program code during a threshold number of a plurality of executions of the program code. 20. The one or more storage media as recited in claim 15 , further comprising program instructions that when executed on or across the one or more processors cause the one or more processors to cause execution of the program code on the one or more servers.

Assignees

Inventors

Classifications

  • Protocols · CPC title

  • resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence) · CPC title

  • H04L67/34Primary

    involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

  • Software deployment · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11050846B2 cover?
Methods, systems, and computer-readable media for program code allocation based on processor features are disclosed. Analysis of program code is performed using static analysis and/or runtime analysis. The analysis determines one or more processor features invoked by the program code. One or more program execution servers are selected from a plurality of program execution servers based at least…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/34. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 29 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).