US 12,136,001 B2
Distributed computing with variable energy source availability
Shadi Abdollahian Noghabi, Kirkland, WA (US); Ranveer Chandra, Kirkland, WA (US); Anirudh Badam, Issaquah, WA (US); Riyaz Mohamed Pishori, Sammamish, WA (US); Shivkumar Kalyanaraman, Bangalore (IN); and Srinivasan Iyengar, Bangalore (IN)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Sep. 2, 2021, as Appl. No. 17/446,821.
Prior Publication US 2023/0061136 A1, Mar. 2, 2023
Int. Cl. G06F 9/50 (2006.01); G06F 9/455 (2018.01); G06F 9/48 (2006.01)
CPC G06F 9/5094 (2013.01) [G06F 9/45558 (2013.01); G06F 9/4881 (2013.01); G06F 9/5083 (2013.01); G06F 2009/4557 (2013.01); G06F 2209/503 (2013.01); G06F 2209/505 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer system comprising:
a distributed compute platform comprising a plurality of compute clusters that are located at different geographical locations, each compute cluster being powered by a local energy source at a geographical location of that compute cluster, each local energy source having a pattern of energy supply that is variable over time based on an environmental factor; and
a server system comprising at least one processor configured to execute a global scheduler that distributes virtual machines that perform compute tasks for server-executed software programs to the plurality of compute clusters of the distributed compute platform,
wherein to distribute virtual machines for a target server-executed software program, the global scheduler is configured to:
select a subset of compute clusters from the plurality of compute clusters for the target server-executed software program, wherein respective compute clusters of the subset of compute clusters are powered by local energy sources that have different complementary patterns of energy supply, wherein the subset of compute clusters for the target server-executed software program is further selected based on a software implemented renewable energy policy associated with the target server-executed software program, the software implemented renewable energy policy indicating a software service degradation tolerance factor and a target renewable energy usage for the target server-executed software program; and
distribute virtual machines for the target server-executed software program to one or more compute clusters of the selected subset of compute clusters, wherein distributing the virtual machines includes migrating one or more of the virtual machines to one or more other compute clusters of the subset of compute clusters based at least in part on the software service degradation tolerance factor and the target renewable energy usage.