Adaptive cloud aware just-in-time (JIT) compilation

US9459849B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9459849-B2
Application numberUS-201414157732-A
CountryUS
Kind codeB2
Filing dateJan 17, 2014
Priority dateJan 17, 2014
Publication dateOct 4, 2016
Grant dateOct 4, 2016

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.

Clients accessing cloud computing services are allocated respective virtual machines, each client specifying defining parameters for its virtual machine(s). A just-in-time compiler executing within a client's virtual machine optimizes the executable code it generates based at least in part, on the defining parameters of the virtual machine. During execution of an application using the just-in-time compiler, the compiler is notified of changes made to the defining parameters of the virtual machine. Responsive to such notification, the just-in-time compiler thereafter optimizes compiled code it generates for execution in the virtual machine as modified.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for providing computing services, comprising computer-executed actions of: allocating a respective virtual machine to each of a plurality of clients of a cloud computer service, each virtual machine having a respective set of defining parameters; wherein a first virtual machine of a first client of said plurality of clients includes a just-in-time compiler supporting execution of at least one application on said first virtual machine, said just-in-time compiler generating executable code for execution on said first virtual machine, said executable code generated by said just-in-time compiler being optimized according to the set of defining parameters of said first virtual machine; receiving a request from said first client to alter the set of defining parameters of said first virtual machine; altering the set of defining parameters of said first virtual machine responsive to said request from said first client to create an altered first virtual machine; responsive to altering the set of defining parameters of said first virtual machine, causing at least one code module of an application executing in said first virtual machine which was previously compiled to executable code by said just-in-time compiler to be recompiled to executable code by said just-in-time compiler, wherein the recompilation comprises: with respect to each of a plurality of code modules of said application executing in said first virtual machine which were previously compiled by said just-in-time compiler, making a selective determination whether to recompile the respective code module, wherein said selective determination is based at least in part on an amount of difference of at least one parameter of said set of defining parameters between an original value of the at least one parameter and an altered value of the at least one parameter; and recompiling the respective code module according to a result of said selective determination, the executable code generated by recompilation being optimized according to the set of defining parameters of the altered first virtual machine. 2. The method of claim 1 , wherein said request is made to an administrative console application which supports management of cloud computing services on behalf of said plurality of clients; wherein, responsive to said request, said administrative console application directs a hypervisor to alter the set of defining parameters of said first virtual machine, said hypervisor regulating access to resources of a server computer system in which the hypervisor resides by supporting a first set of virtual machines executing in said server computer system, said first set of virtual machines including said first virtual machine. 3. The method of claim 2 , wherein said administrative console application generates one or more web pages on a world wide web for use of said plurality of clients, said plurality of clients accessing said administrative console application via respective web browser applications executing in said plurality of clients which access said web pages. 4. The method of claim 1 , wherein said selective determination is based at least in part on at least one of: a predicted execution frequency of the code module, a predicted cost of executing the code module, and a predicted cost of recompiling the code module. 5. The method of claim 1 , wherein said set of defining parameters of said first virtual machine includes at least one of: a processor capacity, a memory capacity, a storage capacity, and a network bandwidth capacity. 6. A method of providing computing services, comprising computer execution actions of: responsive to a first request from a client, allocating a virtual machine in a cloud computing environment for use by the client, said virtual machine having a set of defining parameters, said virtual machine including a just-in-time compiler wherein, said just-in-time compiler generating executable code of at least one application for execution on said virtual machine, said executable code generated by said just-in-time compiler being optimized according to the set of defining parameters of said virtual machine; responsive to a second request from the client, altering at least one parameter of the set of defining parameters of said virtual machine to produce a modified virtual machine having a modified set of defining parameters; responsive to producing the modified virtual machine having the modified set of defining parameters, selectively determining, with respect to each of a plurality of code modules of said at least one application which were compiled to executable code by said just-in-time compiler for execution on said virtual machine before producing the modified virtual machine having the modified set of defining parameters, whether to recompile the respective code module of said at least one application; and with respect to each code module of the plurality of code modules of said at least one application which were compiled to executable code by said just-in-time compiler for execution on said virtual machine before producing the modified virtual machine having the modified set of defining parameters for which it is selectively determined to recompile the respective code module wherein said selectively determining is based at least in part on an amount of difference between at least one parameter of the set of defining parameters of said virtual machine and a corresponding at least one parameter of the modified set of defining parameters of the modified virtual machine, recompiling the respective code module to executable code optimized using the modified virtual machine, the recompiled code module being optimized according to the modified set of defining parameters. 7. The method of claim 6 , wherein the respective selective determination is made separately for each code module of the plurality of code modules of said at least one application which were compiled by said just-in-time compiler for execution on said virtual machine before producing the modified virtual machine having the modified set of defining parameters when the respective code of module is first invoked for execution in the modified virtual machine after producing the modified virtual machine having the modified set of defining parameters. 8. The method of claim 6 , wherein selectively determining is based at least in part on at least one of: a predicted execution frequency of the respective code module, a predicted cost of executing the respective code module, and a predicted cost of recompiling the respective code module. 9. The method of claim 6 , wherein the set of defining parameters of said virtual machine includes at least one parameter from the set of parameters consisting of: a processor capacity, a memory capacity, a storage capacity, and a network bandwidth capacity. 10. The method of claim 6 , wherein the first and second requests from the client are made to an administrative console application which supports management of cloud computing services on behalf of a plurality of clients; wherein, responsive to the first request, said administrative console application direct a hypervisor to allocate said virtual machine to the client, and responsive to the second request, the administrative console application directs said hypervisor to alter the set of defining parameters of said virtual machine, said hypervisor regulating access to resources of a server computer system in which the hypervisor resides by supporting a set of virtual machines executing in said server computer system, the set of virtual machines including said virtual machine. 11. The method of claim 10 , wherein said administrative console application g

Assignees

Inventors

Classifications

  • G06F9/4552Primary

    Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM · CPC title

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • G06F8/443Primary

    Optimisation · CPC title

  • Incremental compilation (software reuse G06F8/36) · CPC title

  • Compilation · 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 US9459849B2 cover?
Clients accessing cloud computing services are allocated respective virtual machines, each client specifying defining parameters for its virtual machine(s). A just-in-time compiler executing within a client's virtual machine optimizes the executable code it generates based at least in part, on the defining parameters of the virtual machine. During execution of an application using the just-in-t…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/4552. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 04 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).