US 12,379,909 B2
Automated program conversion for heterogeneous and FaaS computing with minimal human intervention
Dejan S. Milojicic, Milpitas, CA (US); Aditya Dhakal, Milpitas, CA (US); Eitan Frachtenberg, Portland, OR (US); Ninad Sanjay Hogade, Ft. Collins, CO (US); Rolando Pablo Hong Enriquez, London (GB); Gourav Rattihalli, Milpitas, CA (US); and Tobias Pfandzelter, Milpitas, CA (US)
Assigned to Hewlett Packard Enterprise Development LP, Spring, TX (US)
Filed by HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, Spring, TX (US)
Filed on Apr. 27, 2023, as Appl. No. 18/308,570.
Prior Publication US 2024/0362000 A1, Oct. 31, 2024
Int. Cl. G06F 8/41 (2018.01); G06F 9/48 (2006.01); G06N 5/022 (2023.01); G06N 20/00 (2019.01)
CPC G06F 8/447 (2013.01) [G06F 9/4881 (2013.01); G06N 5/022 (2013.01); G06N 20/00 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving a request to execute a program comprising machine-readable code;
converting, by a system comprising a hardware processor, the machine-readable code into a plurality of functions that are deployable in a Function-as-a-Service (FaaS) computing environment;
determining, by the system, a first deployment of the plurality of functions in the FaaS computing environment, the first deployment defining scheduling and execution tasks for each function at run-time on computing components of the FaaS computing environment;
determining, by a trained prediction model, an execution metric for the first deployment that corresponds with run-time operations of the first deployment;
adjusting, by the system, execution of the plurality of functions and also adjusting the execution metric in a second deployment of the plurality of functions in the FaaS computing environment; and
implementing the second deployment of the plurality of functions in the FaaS computing environment at run-time, the implementing causing execution of the machine-readable code by the computing components of the FaaS computing environment in accordance with the second deployment,
wherein the first deployment and the second deployment are determined prior to run-time.