Workload Management

The system optimizes workload management in cloud computing by selecting execution environments based on carbon intensity and governance policies, enhancing efficiency and compliance.

JP7804008B2Active Publication Date: 2026-01-21ACCENTURE GLOBAL SERVICES LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024101361
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-06-26
Filing Date
2024-06-24
Publication Date
2026-01-21
Estimated Expiration
2044-06-24

AI Technical Summary

Technical Problem

Existing cloud computing systems fail to consider real-time carbon intensity and governance policies when optimizing workload management, leading to suboptimal performance and increased energy consumption.

Method used

A system that identifies candidate execution environments based on governance policies and carbon intensity values, generating recommendations for workload processing that minimize carbon emissions and adhere to regulatory requirements.

Benefits of technology

Enables organizations to make informed decisions about workload processing locations, reducing carbon footprint and energy costs while improving performance and compliance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007804008000001
    Figure 0007804008000001
  • Figure 0007804008000002
    Figure 0007804008000002
  • Figure 0007804008000003
    Figure 0007804008000003
Patent Text Reader

Abstract

To optimize cloud-based workloads more efficiently while reducing carbon emissions.SOLUTION: A method includes identifying a set of candidate execution environments for processing a workload and generating recommendation information for processing the workload. The recommendation information is associated with a first execution environment selected from the set of candidate execution environments based on execution information indicating, for each candidate execution environment in the set of candidate execution environments, a carbon intensity value associated with the candidate execution environment. The method also includes outputting a first indicator indicative of the recommendation information.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to distributed computing environments, and more particularly to managing workloads, such as workloads within a distributed computing environment. [Background technology]

[0002] Cloud computing has become essential for modern businesses, providing on-demand computing resources and cost-effective solutions. Cloud computing can involve providing computing services such as software, storage, and processing power that are accessible over the Internet. Users can access these resources on remote servers maintained by third-party providers, rather than relying on local servers or personal computers. This allows for greater flexibility, scalability, and cost savings, as users can regulate their usage and pay only for what they need. However, the increased demand for cloud computing has resulted in a significant increase in energy consumption and carbon emissions.

[0003] Energy consumed by data centers and cloud computing contributes significantly to global greenhouse gas emissions. Existing solutions for energy-efficient computing primarily focus on improving energy efficiency and reducing costs. For example, such systems may use techniques such as virtualization, consolidation, and workload management to optimize resource allocation and reduce energy consumption. However, such systems typically do not consider the real-time carbon intensity of the power grid and may lack integration between external and internal factors. Such systems also lack integration between external and internal factors, such as integration with regulatory requirements and governance policies. Furthermore, batch interdependencies must be considered when shifting or modifying the timing of batch jobs, which existing solutions do not adequately address. Specifically, batch jobs often have complex interdependencies and may require specific timing and sequencing to ensure successful completion. Existing systems may not consider these interdependencies when optimizing computational workloads, resulting in suboptimal performance and increased energy consumption. Summary of the Invention [Means for solving the problem]

[0004] The present disclosure presents new and innovative systems and methods aimed at workload management, such as workload management for scheduling that reduces carbon emissions and adheres to governance policies. By way of example, a system, such as a computing device, configured for workload management may identify a set of candidate execution environments for processing a workload. By way of example, the computing device may identify the set of candidate execution environments for processing a workload. In particular implementations, the set of candidate execution environments may be identified based on governance policies associated with the workload. The computing device may determine permitted locations based on corresponding governance controls, which may be identified based on scheduling and provisioning entities identified in a plurality of governance control documents. The computing device may generate recommendations for processing the workload based on carbon intensity values ​​associated with each candidate execution environment. In particular implementations, the workload may include a batch job.

[0005] A computing device may generate a recommendation for processing a workload. As an example, the computing device may generate the recommendation for processing a workload. The recommendation may be associated with a first execution environment selected from a set of candidate execution environments. The selection may be based on execution information indicating a carbon intensity value associated with each candidate execution environment. The execution information may indicate a predicted carbon intensity value for the candidate execution environment, a transfer energy cost associated with transferring the workload to the candidate execution environment, an average carbon intensity value associated with executing the workload using the candidate execution environment, or a combination thereof. The computing device may select a first execution environment from the set of candidate execution environments based on the execution information. The selection may be based on scheduling information associated with the set of candidate execution environments, historical workload scheduling data, or a combination thereof. In a particular implementation, for each candidate execution environment in the set of candidate execution environments, determining the execution information associated with the candidate execution environment may include determining an average carbon intensity value for each of a plurality of processing start times. The recommendation may be generated based on a plurality of workloads including the workload, the set of candidate execution environments, scheduling information associated with each candidate execution environment in the set of candidate execution environments, a cost threshold or energy efficiency threshold, a weather forecast, or a combination thereof.

[0006] The computing device may generate or output a first indicator that indicates the recommendation. By way of example, the computing device may output the first indicator that indicates the recommendation. In a particular implementation, the computing device may receive a second indicator that confirms that the first execution environment is acceptable for processing the workload. Based on the confirmation, the computing device may generate a schedule that indicates when the workload should be processed in the first execution environment. In a particular implementation, based on the schedule, the computing device may transfer the workload to the first execution environment for execution at a specified time (e.g., by transferring the workload from a storage location to the first execution environment).

[0007] Such a system may provide several benefits to organizations processing workloads in cloud computing environments. By identifying a set of candidate execution environments and generating recommendations based on carbon intensity values ​​and other execution information, the system may enable organizations to make informed decisions about where to process their workloads. This may help organizations reduce their carbon footprint and energy costs, while potentially improving workload performance and reliability. Additionally, or alternatively, the system may provide scheduling information and other controls to ensure workloads are executed in compliance with governance policies and other requirements. Overall, the system provides a valuable tool for organizations to optimize the processing of workloads in cloud computing environments.

[0008] In certain aspects, a method for workload management is executed by one or more processors. The method includes identifying a set of candidate execution environments for processing a workload. The method also includes generating recommendation information for processing the workload. The recommendation information is associated with a first execution environment selected from the set of candidate execution environments based on execution information for each candidate execution environment in the set of candidate execution environments indicating a carbon intensity value associated with the candidate execution environment. The method further includes outputting a first indicator indicative of the recommendation information.

[0009] In certain aspects, a system for workload management includes a memory and one or more processors communicatively coupled to the memory. The one or more processors are configured to identify a set of candidate execution environments for processing the workload. The one or more processors are also configured to generate recommendation information for processing the workload. The recommendation information is associated with a first execution environment selected from the set of candidate execution environments based on execution information for each candidate execution environment in the set of candidate execution environments indicating a carbon intensity value associated with the candidate execution environment. The one or more processors are further configured to output a first indicator indicative of the recommendation information.

[0010] In another particular aspect, a non-transitory computer-readable storage medium stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations for workload management. The operations include identifying a set of candidate execution environments for processing the workload. The operations also include generating recommendation information for processing the workload. The recommendation information is associated with a first execution environment selected from the set of candidate execution environments based on execution information, for each candidate execution environment in the set of candidate execution environments, indicating a carbon intensity value associated with the candidate execution environment. The operations further include outputting a first indicator indicative of the recommendation information.

[0011] The foregoing has provided a somewhat broad overview of the features and technical advantages of the present disclosure in order that the following detailed description may be better understood. Additional features and advantages of the present disclosure will be described hereinafter, which form the subject matter of the claims of the present disclosure. Those skilled in the art will appreciate that the conception and specific aspects disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Those skilled in the art will also appreciate that such equivalent constructions do not depart from the scope of the disclosure as set forth in the appended claims. The novel features disclosed herein, both as to organization and method of operation, together with further objects and advantages, will be better understood by considering the following description in conjunction with the accompanying drawings. It should be understood that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.

[0012] For a more comprehensive understanding of the present disclosure, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:

[0013] It should be understood that the drawings are not necessarily to scale, and that the disclosed aspects may be illustrated in schematic and partial views. In certain instances, details that are not essential to an understanding of the disclosed methods and apparatuses or that obscure other details may be omitted. It should be understood, of course, that the present disclosure is not limited to the particular aspects illustrated herein. [Brief explanation of the drawings]

[0014] [Figure 1] 1 is a block diagram of an example system that supports workload management, according to one or more aspects. [Figure 2] 1 illustrates an example process for calculating transfer energy costs, according to one or more aspects. [Figure 3] 1 illustrates an example process for calculating a carbon intensity average, according to one or more aspects. [Figure 4]FIG. 1 is a block diagram of another example of a system that supports workload management, in accordance with one or more aspects. [Figure 5] FIG. 1 is a flow diagram of an example method for workload management, according to one or more aspects. DETAILED DESCRIPTION OF THE INVENTION

[0015] Aspects of the present disclosure provide systems, methods, apparatus, and computer-readable storage media that support workload management, such as managing cloud-based workloads. The techniques for managing cloud-based workloads described herein provide improved workload scheduling by identifying and recommending cloud computing environments based on governance policies and carbon intensity values. A technique for generating recommendations for a workload includes identifying a set of candidate execution environments and corresponding governance controls, analyzing execution information, scheduling information, and historical workload scheduling data, and determining metrics, such as data transfer metrics and batch execution metrics, for each permitted location. Based on these metrics, a first indicator of a recommended execution environment may be output. Furthermore, a schedule may be generated that considers timing, cost, and latency requirements while minimizing projected carbon emissions. The workload may be transferred (automatically, after approval, etc.) to the recommended execution environment for processing. Using a real-time carbon system and a governance policy system in recommending cloud computing environments enables more efficient optimization of cloud-based workloads while reducing carbon emissions.

[0016] In some implementations, a system may be configured to determine workload scheduling recommendations in a manner that mitigates or resolves one or more of the above-mentioned problems. The system may be configured to integrate with a real-time carbon system and a governance policy system to determine recommendations, such as schedules, for cloud-based workloads. By way of example, the system may select and recommend a particular cloud computing environment for a particular workload based on the corresponding governance policy for the workload and the carbon intensity value of the cloud computing environment. A computing device may identify a set of candidate execution environments for one or more received workloads and corresponding governance controls for the workload. The system may include a recommendation engine configured to determine recommendations for the workload. The recommendation may identify corresponding execution environments for the workload. By way of example, the recommendation may identify a schedule for the workload. The recommendation may be generated based on execution information, scheduling information, and historical workload scheduling data. Metrics, such as data transfer metrics and batch execution metrics, may be determined for the candidate execution environments. Furthermore, the recommendation may be determined to take into account timing, cost, and latency requirements while minimizing projected carbon emissions. A first indicator identifying a recommended execution environment for the workload may be included in the recommendation. The system may transfer the workload to a preferred execution environment for processing (e.g., automatically transfer the workload).

[0017] Referring to Figure 1, an example of a system that supports workload management according to one or more aspects is shown as system 100. As shown in Figure 1, system 100 includes computing device 102, one or more networks 160, computing device 154, computing device 156, computing device 158, and database 161. In some implementations, system 100 may include additional components not shown in Figure 1, such as, by way of non-limiting example, one or more client devices, additional databases or data sources, or a combination thereof.

[0018] Computing device 102 may be configured to support one or more workload management operations. Computing device 102 may include or correspond to, by way of non-limiting example, a desktop computing device, a laptop computing device, a personal computing device, a tablet computing device, a mobile device (e.g., a smartphone, a tablet, a personal digital assistant (PDA), a wearable device, and the like), a server, a virtual reality (VR) device, an augmented reality (AR) device, an extended reality (XR) device, a vehicle (or a component thereof), an entertainment system, other computing device, or a combination thereof. In some implementations, computing device 152 may be implemented by one or more personal or enterprise computing devices. In particular implementations, computing device 152 may be implemented as part of a distributed computing environment, such as the same distributed computing environment as computing devices 144, 156, and 158. As an example, in a particular implementation, computing device 152 may be configured to schedule workloads executing within execution environments 180, 182, 184 of a distributed computing environment (such as execution environments 180, 182, 184 implemented by computing devices 154, 156, 158).

[0019] Computing device 102 includes one or more processors 104, memory 106, and one or more communication interfaces 135. In some other implementations, one or more of the components may be optional, one or more additional components may be included in computing device 102, or both. Note that the functionality described with reference to computing device 102 is provided for purposes of example and not limitation, and the example functionality described herein may be provided through the deployment of other types of computing resources. By way of example, in some implementations, the computing resources and functionality described in connection with computing device 102 may be provided in a distributed system using multiple servers or other computing devices, or in a cloud-based system using computing resources and functionality provided by a cloud-based environment accessible over a network, such as one of one or more networks 160. By way of example, one or more operations described herein with reference to computing device 102 may be performed by one or more servers or a cloud-based system in communication with one or more clients, such as computing device 154, computing device 156, or computing device 158.

[0020] The one or more processors 104 may include one or more microcontrollers, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), central processing units (CPUs) with one or more processing cores, or other circuitry and logic configured to facilitate operation of the computing device 102 in accordance with aspects of the present disclosure. The memory 106 may include random access memory (RAM) devices, read only memory (ROM) devices, erasable programmable ROM (EPROMs), electrically erasable programmable ROM (EEPROMs), one or more hard disk drives (HDDs), one or more solid state drives (SSDs), flash memory devices, network accessible storage (NAS) devices, or other memory devices configured to store data in a persistent or non-persistent state. Software configured to facilitate the operation and functionality of computing device 102 may be stored in memory 106 as instructions 108 that, when executed by one or more processors 104, cause the one or more processors 104 to perform the operations described herein with respect to computing device 102, as described in more detail below.

[0021] The memory 106 may be configured to store one or more engines. The one or more engines may include a carbon intensity extraction engine 172, a discovery engine 174, a recommendation engine 176, a carbon reduction engine 178, or a combination thereof. Although the computing device 102 is described as including each of the carbon intensity extraction engine 172, the discovery engine 174, the recommendation engine 176, and the carbon reduction engine 178, in other implementations, one or more of the carbon intensity extraction engine 172, the discovery engine 174, the recommendation engine 176, and the carbon reduction engine 178 may be optional and / or may not be included in the computing device 102.

[0022] Carbon intensity extraction engine 172 may be configured to integrate governance controls and identify permitted locations for workloads (such as permitted computing environments, permitted execution environments, and the like). As described further below, carbon intensity extraction engine 172 may identify or otherwise determine execution information for one or more workloads, such as a carbon intensity value, a transfer energy cost, and an average carbon intensity value associated with executing the workload in one or more of the identified locations.

[0023] The discovery engine 174 may be configured to identify workloads to be executed, workload dependencies, scheduling information, and governance policies. As an example, the discovery engine 174 may be configured to identify batch jobs to be executed (e.g., batch jobs that are executed periodically) along with corresponding dependencies (e.g., prerequisites or other required computing services necessary to complete the execution of the batch job). The discovery engine 174 may also identify scheduling information for the batch jobs, such as the time when the batch jobs need to be executed, the time when the batch jobs need to complete execution, the time when the batch jobs are unavailable, and the like. In particular implementations, the discovery engine 174 may be configured to determine an application landscape (e.g., an application landscape for a particular entity, user, department, and the like). The application landscape may include the batch job information described above, the interdependencies described above, the amount of data related to the batch jobs (e.g., the amount of data received and transmitted), the required code baseline, and the required infrastructure. Discovery may further include identifying one or more corresponding data sovereignty rules, applicable policies, and preferred locations. In particular implementations, the discovery engine 174 may identify the above information using questions, such as questions posed to one or more relevant personnel, administrators, developers, and the like. In further or alternative implementations, one or more tools, such as one or more document search tools, text search tools, natural language search tools, metadata analysis tools, and data synthesis tools, that identify corresponding information, such as the information described above, may be used to identify corresponding policies.

[0024] The recommendation engine 176 may be configured to identify one or more recommendations for the execution of workloads (e.g., workloads identified by the discovery engine 174, workloads received from one or more users or one or more other computing processes, and the like). In particular implementations, the recommendation engine 176 may identify corresponding execution environments for each of a plurality of workloads. In particular implementations, the recommendation engine 176 may further identify one or more execution times within the identified execution environments. In particular implementations, the recommendation engine 176 may generate a plurality of corresponding execution environments for one or more workloads. The recommendation engine 176 may be configured to utilize one or more rule engines to determine a carbon-optimized scheduling time that meets the requirements identified by the discovery engine 174 for a particular workload and minimizes the total carbon emissions from the execution of the workload (e.g., based on information determined or otherwise identified by the carbon intensity extraction engine 172). The recommendation engine 176 may consider historical information, such as workloads with previously approved scheduling times and regions, based on past approval information (by users, monitoring computing processes, and the like). In certain implementations, recommendation engine 176 may recommend permanent shifts in workload schedules (e.g., for regularly recurring workloads). As described further below, in certain implementations, recommendation engine 176 may maintain a master schedule for recurring workloads and update that schedule periodically (e.g., weekly, daily, etc.). Carbon reduction engine 178 may be configured to receive recommendations from recommendation engine 176 and determine absolute carbon reductions (reductions relative to a predetermined baseline, reductions relative to the current configuration) if the recommended execution environment is used.

[0025] In particular implementations, recommendation engine 176 may be further configured to automatically implement recommendations from recommendation engine 176. In particular implementations, recommendations may be automatically implemented upon receiving approval from a user or a monitoring computer process. In further or alternative implementations, recommendations may be automatically implemented without such approval. Automatic implementation of recommendations may include workload and scheduling updates (e.g., temporary updates, permanent updates, etc.). Automatically implementing recommendations may also include cloud provisioning, such as by provisioning and transferring workloads when workloads are shifted from one region (e.g., a cloud computing facility) to another. Additionally or alternatively, automatic implementation of recommendations may include automated workload execution in one or more recommended execution environments at scheduled times, such as scheduled times.

[0026] The carbon reduction engine 178 may be configured to receive recommendations from the recommendation engine 176 and determine the absolute carbon reduction (reduction relative to a predetermined baseline, reduction relative to the current configuration) if the recommended execution environment is used.

[0027] Additionally, memory 106 may be configured to store data and information. For example, memory 106 may store or indicate execution information 114, workload 110, governance policy 112, scheduling information 116, first indicator 118, and second indicator 120.

[0028] Workload 110 includes batch jobs 122. Batch jobs 122 may include computing processes that run without user interaction, such as being scheduled to run at a specific time or triggered by a specific event. In a cloud computing environment or other execution environment, batch jobs 122 may be used to perform various tasks, such as processing data sets, running simulations, sending communications, and the like. Batch jobs 122 may be managed and scheduled using various tools and frameworks, such as Kubernetes, Apache Hadoop, Apache Spark, and the like.

[0029] In certain implementations, the computing device 102 may receive a governance policy 112 for the workload 110. The governance policy 112 may be used to identify a set of candidate execution environments 180, 182, 184, which may include multiple cloud computing environments or a combination thereof. The computing device 102 may identify corresponding governance controls for the workload 110 and determine allowed locations for the workload 110 based on the governance controls. The set of candidate execution environments 180, 182, 184 may be identified as execution environments in the allowed locations. To identify the controls, the computing device 102 may determine scheduling and provisioning entities from among multiple governance control documents and match entities in the documents with corresponding entities associated with the workload 110. In certain implementations, the scheduling entities may include software components or other mechanisms for scheduling and managing computing resources within the execution environments. The scheduling entities may be responsible for allocating resources to various users and workloads. In a particular implementation, a scheduling entity may be identified in a governance policy and may include one or more requirements (e.g., scheduling deadlines or timing requirements) for a corresponding workload 110. Examples of scheduling entities may include a job scheduler, a workload manager, and a resource manager. A provisioning entity may include software components or other mechanisms that provision and manage the physical infrastructure (e.g., physical computing resources) of an execution environment. By way of example, a scheduling entity may be responsible for provisioning and managing servers, storage devices, and other hardware resources required to support the execution environment.In a particular implementation, a provisioning entity may be identified within a governance policy and may include one or more requirements (such as minimum resource requirements) for the corresponding workload 110. Examples of provisioning entities may include a virtualization manager, a storage manager, and a network manager.

[0030] The execution information 114 includes a carbon intensity value 124, a transfer energy cost 126, and a carbon intensity average value 128. In particular implementations, the execution information 114 may indicate a predicted carbon intensity value 124 for an execution environment, a transfer energy cost 126 for an execution environment, a carbon intensity average value 128 for the execution environment, or a combination thereof. The carbon intensity value 124 may indicate a total predicted carbon intensity for execution of the workload 110 in the corresponding execution environment. The transfer energy cost 126 may indicate a predicted energy usage to transfer the workload 110 to the corresponding execution environment for execution. The carbon intensity average value 128 may indicate a likely average carbon intensity during execution of the workload 110 in the corresponding execution environment. In particular implementations, the carbon intensity value 124 may be determined based on the transfer energy cost 126 and the carbon intensity average value 128, such as by combining the transfer energy cost 126 for the execution environment with the carbon intensity average value 128 for the execution environment.

[0031] In particular implementations, the computing device 102 determines the transfer energy cost 126 by determining the average energy consumption required to execute the workload 110 in each of the candidate execution environments 180, 182, 184. The computing device 102 may also determine the duration of the data transfer for the workload 110. By way of example, the computing device 102 may consider different combinations of two or more candidate execution environments 180, 182, 184 (e.g., candidate execution environments 180, 182, 184 used to execute the workload 110 at different times). In further or alternative implementations, the computing device 102 may consider different combinations of data transfers between the current storage location of the workload 110 and the candidate execution environments 180, 182, 184. Based on the duration of the transfers, the computing device 102 may calculate a first indicator of the carbon intensity associated with executing the workload 110 during the data transfer in each candidate execution environment 180, 182, 184. The computing device 102 may then determine a second metric of carbon intensity associated with energy consumption by data centers along the data transfer network path between the two or more candidate execution environments 180, 182, 184. The computing device 102 may then calculate a total data transfer energy cost 126 based on both the first and second metric of carbon intensity (e.g., by summing the first and second metric).

[0032] Scheduling information 116 may indicate information regarding the execution times of workload 110, other workloads, or combinations thereof. In particular implementations, scheduling information 116 may indicate the execution times of one or more workloads 110 and corresponding execution environments 180, 182, 184. In further or alternative implementations, scheduling information 116 may include information regarding execution environments 180, 182, 184. By way of example, scheduling information 116 may include availability times, price schedules, maintenance windows, and the like for one or more of execution environments 180, 182, 184.

[0033] The first indicator 118 may include information regarding a recommendation for the workload 110. By way of example, the first indicator 118 may include recommendation information 130 determined by the computing device 102. In particular implementations, the recommendation information 130 may relate to a first execution environment 180 selected from a set of candidate execution environments 180, 182, 184. By way of example, the recommendation information 130 may indicate that the first execution environment 180 should be used to execute all or a portion of the workload 110. Additionally or alternatively, in particular implementations, the recommendation information 130 may recommend a specific time at which the workload 110 should be executed in the first execution environment 180. The computing device 102 may be configured to determine a recommendation for distributing the workload among the candidate execution environments to reduce the environmental impact of executing the workload, to comply with governance policies, or a combination thereof. By way of example, the computing device 102 may be configured to generate recommendation information 130 for processing the workload 110.

[0034] The second indicator 120 may be received from another computing device. For example, the second indicator 120 may be received in response to a user action on the other computing device. In a particular implementation, the second indicator 120 may indicate user feedback regarding the recommendation information 130 (e.g., user feedback metadata or instructions). For example, the second indicator 120 may include an approval or rejection of all or part of the recommendation information 130, such as approval of using the first execution environment 180 to execute the workload 110. In a particular implementation, the second indicator 120 may include an identifier of the workload 110, the recommendation information 130, and an approval indicator (e.g., a true Boolean value) corresponding to the workload 110 and the recommendation information 130.

[0035] The one or more communication interfaces 135 may be configured to communicatively couple the computing device 102 to one or more networks 136 via a wired or wireless communication link established in accordance with one or more communication protocols or standards (e.g., the Ethernet protocol, the transmission control protocol / internet protocol (TCP / IP), the Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol, the IEEE 802.16 protocol, 3rd Generation (3G) communication standards, 4th Generation (4G) / long term evolution (LTE) communication standards, 5th Generation (5G) communication standards, and the like). In some implementations, computing device 102 includes one or more input / output (I / O) devices, including one or more display devices, a keyboard, a stylus, one or more touchscreens, a mouse, a trackpad, a microphone, a camera, one or more speakers, a haptic feedback device, or other types of devices that allow a user to receive information from or provide information to computing device 102. In some implementations, computing device 102 is coupled to a display device, such as a monitor, a display (e.g., a liquid crystal display (LCD) or the like), a touchscreen, a projector, a virtual reality (VR) display, an augmented reality (AR) display, an extended reality (XR) display, or the like. In some other implementations, the display device is included in or integrated with computing device 102.In some other implementations, computing device 102 is communicatively coupled to one or more client devices that include or are coupled to respective display devices.

[0036] One or more networks 160, such as a communications network, may facilitate communication of data between computing device 102 and other components, servers / processors, and / or devices. By way of example, one or more networks 160 may also facilitate communication of data between computing device 102 and computing device 154, computing device 156, computing device 185, database 161, or any combination thereof. One or more networks 160 may include a wired network, a wireless network, or a combination thereof. By way of example, one or more networks 136 may include any type of communications network, such as a PC-to-PC direct connection, a local area network (LAN), a wide area network (WAN), a modem-to-modem connection, the Internet, an intranet, an extranet, a cable transmission system, a cellular communications network, any combination of the above, or any other communications network now known or later developed that enables two or more electronic devices to communicate within the communications network.

[0037] Computing devices 154, 156, 158 may be one or more computing devices associated with a user or individual. For example, computing devices 154, 156, 158 may be implemented by one or more, or combinations of, desktop computing devices, laptop computing devices, personal computing devices, tablet computing devices, mobile devices (e.g., smartphones, tablets, personal digital assistants (PDAs), wearable devices, and the like), servers, virtual reality (VR) devices, augmented reality (AR) devices, extended reality (XR) devices, vehicles (or components thereof), entertainment systems, and other computing devices, as non-limiting examples. In further or alternative implementations, computing devices 154, 156, 158 may be implemented by one or more enterprise computing devices, such as server computing devices, cloud computing devices, virtualized computing devices, and the like. In some implementations, each computing device 154, 156, 158 may include one or more of the components described with reference to computing device 102, may be configured to perform one or more of the operations described with reference to computing device 102, or a combination thereof.

[0038] Computing devices 154, 156, and 158 may implement one or more distributed computing environments. A distributed computing environment may include a computing environment configured to provide on-demand computing services to one or more users. By way of example, a distributed computing environment may include one or more computing environments that are available and publicly accessible to provide computing services to one or more public users. In particular implementations, a distributed computing environment may include a cloud computing environment, a virtualized computing environment, a bare-metal computing environment, and the like. In particular implementations, a distributed computing environment may be implemented by one or more computing devices, such as one or more server computing devices. The computing devices may be co-located with each other (e.g., in the same building, in the same server rack, and similar locations). Additionally or alternatively, the computing devices may be in separate locations (e.g., in separate buildings, separate geographic locations, and similar locations). To provide computing services, the distributed computing environment may allocate computing resources (e.g., processing resources, memory resources, storage resources, graphics processing resources, network resources, and the like) to workloads received for execution. In certain implementations, computing resources may be allocated to multiple workloads simultaneously (such as in a virtualized computing environment). In further or alternative implementations, computing resources may be allocated to a single workload at a time (such as in a bare metal computing environment). In certain implementations, multiple computing devices (such as multiple devices at the same location, multiple devices at separate locations, or a combination thereof) may be used to provide computing services to users simultaneously (such as for the same workload).In particular implementations, the received workload may include one or more software processes (such as batch jobs, API requests, software services, and similar processes) to be executed. Specifically, the distributed computing environment may include one or more execution environments 180, 182, 184 configured to execute the received workload. In particular implementations, the execution environments 180, 182, 184 may be implemented by one or more of the computing devices 144, 156, 158. By way of example, the execution environments 180, 182, 184 may be allocated the computing resources described above. In particular implementations, one or more execution environments in the distributed computing environment may be implemented by multiple computing devices (such as two or more of the computing devices 154, 156, 158).

[0039] Database 161 may include one or more databases or other storage devices configured to maintain and provide access to stored data. In some implementations, database 161 may include a processor and memory that stores instructions that, when executed by the processor, cause the processor to perform the operations described herein. Database 161 may be configured to store data (e.g., information), such as a knowledge corpus containing information such as past batch job schedules, past batch job configurations, past batch job scheduling approval information, governance policies, available regions for the distributed computing environment, power grid information for the distributed computing environment, carbon footprint calculations for the distributed computing environment, cost information for the distributed computing environment, and the like. While information is described as being stored in database 161, in other implementations, the data stored in database 161 may also or instead be stored in a computing device, such as computing device 102, for example, memory 106 of computing device 102.

[0040] During operation, the computing device 102 may perform one or more operations related to workload management. As an example, the computing device 102 may be configured to identify a set of candidate execution environments 180, 182, 184 to process the workload 110. A first execution environment 180 may be selected based on execution information 114 for the set of candidate execution environments 180, 182, 184. As an example, the computing device 102 may determine execution information 114 for the set of candidate execution environments 180, 182, 184, such as for each execution environment of at least a subset of the set of candidate execution environments 180, 182, 184. The execution information 114 may include a carbon intensity value 124, a transfer energy cost 126, an average carbon intensity value, or a combination thereof. The computing device 102 may then use the execution information 114 to select at least one first execution environment 180 for the workload 110. The computing device 102 may determine recommendation information 130 based on the at least one first execution environment. By way of example, the recommendation information 130 may identify at least one execution environment in which to execute the workload 110 and may identify a time at which the workload 110 should be executed. The computing device 102 may be configured to output a first indicator 118 indicative of the recommendation information 130. The first indicator 118 may be output as a message, notification, or other instruction that includes all or a portion of the recommendation information 130. In particular implementations, an acknowledgement may be received (e.g., from a user) in response to the first indicator 118. The computing device 102 may further be configured to transfer the workload 110 between one or more execution environments based on a schedule. Particular implementations of these operations are described in more detail below.

[0041] Specifically, computing device 102 may be configured to identify a set of candidate execution environments 180, 182, 184 for processing workload 110. The set of candidate execution environments 180, 182, 184 may include multiple or a combination of cloud computing environments. The candidate execution environments 180, 182, 184 may be implemented by one or more computing devices 154, 156, 158. By way of example, the set of candidate execution environments 180, 182, 184 may include one or more on-premises data centers, public clouds, private clouds, hybrid clouds, edge computing environments, and / or other distributed computing environments.

[0042] In certain implementations, the governance policies 112 may be used to determine the set of candidate execution environments 180, 182, 184. As an example, the computing device 102 may receive or otherwise identify the governance policies 112 for the workload 110. The computing device 102 may then identify allowed locations based on the governance policies 112 and may identify a set of candidate execution environments 180, 182, 184 based on the allowed locations. In some implementations, to identify governance policies, a model, such as a Named Entity Recognition (NER) model, can be trained on a corpus of governance policies to identify entities, such as scheduling entities and provisioning entities. The training process may include tokenization, lemmatization, labeling, and model fitting. Once the model is trained, it may be used to extract scheduling entities and provisioning entities from the governance policies. The scheduling entities may include data classification, app / data sovereignty requirements, service level agreements, business-critical processes, allowed execution regions, maximum allowed latency, and cost thresholds. Provisioning entities may include required provisioning processes and approvals (such as users who must approve the allocation of a particular workload), patching schedules for operating systems, applications, and firmware used to run the workload, multi-factor authentication requirements, hardware asset registers, information asset registers, logging and log retention requirements, and incident response plan requirements. By appending the extracted entities with a list of batches with details such as region, scheduling time, etc., governance policies can be identified and analyzed for compliance and risk management.

[0043] In particular implementations, additional considerations may be used to identify the set of candidate execution environments 180, 182, 184. By way of example, the computing device 102 may identify the set of candidate execution environments 180, 182, 184 to process the workload 110 by analyzing various factors, such as availability, cost, performance, user preference, or a combination thereof.

[0044] A first execution environment 180 may be selected based on the execution information 114 for the set of candidate execution environments 180, 182, 184. By way of example, the computing device 102 may determine the execution information 114 for the set of candidate execution environments 180, 182, 184, such as for each execution environment of at least a subset of the set of candidate execution environments 180, 182, 184. The computing device 102 may then use the execution information 114 to select at least one first execution environment 180 for the workload 110.

[0045] Reference is made to FIG. 2. FIG. 2 illustrates operations 200 for calculating transfer energy costs in accordance with an aspect of the present disclosure. Specifically, operations 200 may be performed by a computing device 102 to determine transfer energy costs 126. In operation 200, the computing device 102 may calculate average energy consumption 202 of various services used in a batch process during execution. By way of example, a particular execution environment may provide a carbon footprint calculator or similar application programming interface (API) that can be used to determine the average energy consumption of processes used by a workload (e.g., by a particular batch job within the workload). Based on the workload's data volume, the distance between locations, and the network bandwidth between locations, the computing device 102 may determine a transfer time 204 that reflects the one-way time required to complete a data transfer of the workload 110 between the identified locations. The computing device 102 may determine an energy consumption rate 206 involved in the transfer. A total transfer energy consumption 208 may then be determined based on the energy consumption rate 206 and the total data volume of the workload 110. The computing device 102 may determine a transfer carbon intensity 210 during the data transfer. The transfer carbon intensity 210 may be determined based on real-time carbon intensity information of data centers along a network path that may be used to perform the actual data transfer between the selected locations. The carbon intensity of one or more data centers may be determined based on an average marginal operating emissions rate (MOER) value of the power grid for one or more data centers along the network path for the data transfer. The computing device 102 may determine a total carbon emission amount (e.g., for a round-trip transfer) during the data transfer as the transfer energy cost 126 based on the total transfer energy consumption 208 and the transfer carbon intensity 210.

[0046] Returning to Figure 1, in certain implementations, to determine carbon intensity average 128, computing device 102 may determine an energy usage metric for executing each workload 110 in candidate execution environments 180, 182, 184. The energy usage may be determined based on power usage effectiveness (PUE) values ​​of the candidate execution environments 180, 182, 184. Additionally, computing device 102 may determine a carbon intensity forecast for each candidate execution environment 180, 182, 184. Based on the energy usage metric and the carbon intensity forecast, computing device 102 may determine carbon intensity average 128. In certain implementations, multiple metrics for a particular location may be included, such as energy usage values ​​for a particular location over various time periods.

[0047] Reference is made to FIG. 3. FIG. 3 illustrates operations 300 for calculating a carbon intensity average, according to an aspect of the present disclosure. Specifically, operations 300 may be performed by computing device 102 to determine carbon intensity average 128. Computing device 102 may determine workload execution energy 302, thereby assessing energy usage by computing hardware used to execute workload 110. Similar to average energy consumption 202, workload execution energy 302 may be determined based on a carbon footprint calculator, API, or the like that analyzes one or more services utilized by workload 110. Computing device 102 may determine absolute execution energy 304 of workload 110 to include, for example, operational inefficiencies of candidate execution environments 180, 182, 184. By way of example, absolute execution energy 304 may be determined by multiplying workload execution energy 302 by a PUE value (which may be received from database 161 or an API, such as the WattTime® API) of the candidate execution environments 180, 182, 184. The computing device 102 may determine a carbon intensity forecast 306 to include an estimate of the carbon intensity of the energy utilized by the candidate execution environment. The carbon intensity associated with each location may change over time for each location as various energy sources provide more or less energy (e.g., based on time of day or weather changes for solar or wind energy). The carbon intensity forecast 306 may be determined to take such changes into account. In particular implementations, the carbon intensity forecast 306 may be received from the database 161 or an API such as the WattTime® API. An average carbon intensity 308 may be determined for the workload 110 based on, for example, the execution time of the workload 110 and the carbon intensity forecast 306. The computing device 102 may determine a carbon intensity average 128 based on the absolute execution energy 304 and the average carbon intensity 308, such as by multiplying the absolute execution energy 304 and the average carbon intensity 308.

[0048] Returning to FIG. 1 , the computing device 102 may select a first execution environment from the set of candidate execution environments 180, 182, 184 based on the execution information 114. The selection may be based on scheduling information 116 associated with the set of candidate execution environments 180, 182, 184, historical workload 110 scheduling data, or a combination thereof. In a particular implementation, for each candidate execution environment in the set of candidate execution environments 180, 182, 184, determining the execution information 114 associated with the candidate execution environment may include determining a carbon intensity average 128 for each of a plurality of processing start times. By way of example, a particular execution environment may have different energy sources throughout the day, resulting in different carbon intensities for each relevant time period. In such a case, different carbon intensity averages 128 may be determined for different time periods, and corresponding carbon intensity values ​​124 may be determined for the execution of the workload 110 during the different time periods.

[0049] Recommendation 130 may be generated based on multiple workloads, including workload 110. For example, computing device 102 may determine a schedule that minimizes the total carbon intensity of multiple workloads, including workload 110, based on the operational requirements of all of the multiple workloads. In further or alternative implementations, recommendation 130 may be determined based on a set of candidate execution environments 180, 182, 184, such as based on the carbon intensities, availability projections, and the like, of the candidate execution environments 180, 182, 184. In further or alternative implementations, recommendation 130 may be determined based on scheduling information 116 associated with the set of candidate execution environments 180, 182, 184. For example, scheduling information 116 may include availability times, price schedules, maintenance windows, and the like, for one or more of the execution environments 180, 182, 184. In further or alternative implementations, recommendation 130 may be determined based on a cost threshold or an energy efficiency threshold. By way of example, workload 110 or an associated governance document may specify a cost threshold (e.g., a maximum cost), an energy efficiency threshold (e.g., a maximum energy usage or a maximum carbon intensity), and recommendation 130 may be determined to comply with the identified requirements. In a further or alternative implementation, recommendation 130 may be determined based on a weather forecast (e.g., a weather forecast for one or more of the locations of execution environments 180, 182, 184). By way of example, the energy source for a particular location may vary depending on the weather (e.g., based on an increase or decrease in the availability of solar and wind energy sources). In such a case, recommendation 130 may be determined to minimize carbon intensity based on predicted changes in available energy sources based on the weather forecast. Recommendation 130 may also, or instead, be determined based on information about one or more of the candidate execution environments, such as the candidate execution environment's carbon intensity value 124, the candidate execution environment's infrastructure cost, the candidate execution environment's provisioning time, service level agreements or latencies associated with the candidate execution environments, or a combination thereof.

[0050] In some implementations, the computing device 102 may determine the recommendation information 130 by determining a daily schedule for the required workload based on the master schedule and the operational requirements of the current workload. To determine the daily schedule, a rule-based recommendation engine may be used to provide batch-wise time-shift recommendations (e.g., execution time), temporal shape recommendations (e.g., running across multiple locations at different times), no-action recommendations, or a combination thereof. The master schedule may be updated at regular intervals, such as weekly, and the update process may involve using a model (e.g., a random forest classification model) to predict the carbon intensity range for the next week and then determining the time-shift, temporal shape, or no-action requirements based on the next week's prediction. Additionally, rule-based pattern analysis may be used to identify workflows that are candidates for permanent shaping or shifting (e.g., continuous, not just for next week). Inputs for determining recommendations may include factors such as infrastructure costs, provisioning time, energy efficiency thresholds, energy efficiency trade-offs, business constraints (e.g., SLAs and latency) in permitted locations, and weather forecasts. Key drivers for recommendations may include consideration of batch job interdependencies for timing changes, as well as compliance with SLAs involving infrastructure provisioning time and data transfer latency. Recommendations 130 may be determined to ensure additional infrastructure costs are within a maximum allowed cost threshold while achieving greater energy efficiency than a minimum energy efficiency threshold. Finally, depending on compliance requirements, it may be recommended to retain or decommission the new infrastructure after implementation.

[0051] The computing device 102 may be configured to output a first indicator 118 indicating the recommendation information 130. The first indicator 118 may be output as a message, notification, or other instruction that includes all or a portion of the recommendation information 130. In certain instructions, the first indicator 118 may include a button or other mechanism for receiving (e.g., from a user) approval for the recommendation information 130 (e.g., approval to execute the workload 110 using the first execution environment 180). In certain implementations, the computing device 102 may further receive a second indicator 120 confirming that the first execution environment is acceptable for processing the workload 110. By way of example, the user may accept the recommendation information 130 included in the first indicator 118. Based on the confirmation, the computing device 102 may generate a schedule indicating when the workload 110 should be processed in the first execution environment. In particular implementations, based on the schedule, computing device 102 may transfer workload 110 to first execution environment 180 for execution at a specified time (e.g., by transferring workload 110 from a storage location to first execution environment 180). Specifically, based on execution information 114, computing device 102 may determine the schedule described above that identifies the time and selected cloud computing environment to execute workload 110. This schedule may be determined to comply with the timing requirements of workload 110 and minimize the expected carbon emissions resulting from executing workload 110.

[0052] Thus, computing device 102 may be configured to transfer workload 110 between one or more execution environments based on a schedule. For example, computing device 102 may receive scheduling information 116 indicating when workload 110 may be scheduled for processing in a second execution environment. Computing device 102 may select a first execution environment from the set of candidate execution environments 180, 182, 184 and may transfer workload 110 from the second execution environment to the first execution environment. Computing device 102 may then begin processing workload 110 with the first execution environment.

[0053] In certain implementations, the computing device 102 may automatically and dynamically provision infrastructure based on governance controls. Dynamic provisioning may include an approval process if approval control is required for the application. The recipient of the associated approval request may be parameterized with respect to the approval process. Dynamic provisioning may include a patch scheduling process for on-premises processes to ensure there is no scheduled downtime in the execution environment for the scheduled time. A multi-factor authentication challenge may be included based on governance controls and the type of service being provisioned. If the corresponding governance policy refers to maintaining a hardware asset register or an information asset register, a write process to the register may be automatically added for the dynamic provisioning process. In such cases, the location of the register and the type of details added to the register may be controlled by a configuration file for the workload, a governance policy, the dynamic provisioning process, or a combination thereof. A logging process may be added to the dynamic provisioning process if required by governance controls. The log detail level, log file format, and retention period may be parameterized or controlled by a configuration file for the workload, a governance policy, the dynamic provisioning process, or a combination thereof. Role-based access control policies for newly provisioned data stores may be added for automatic enforcement by the dynamic provisioning process. Required incident response actions may be generated by the dynamic provisioning process according to rollback plans, etc. Based on triggers, incident response actions such as cleaning up provisioned infrastructure, deactivating all active users, killing all active connections, and the like may be executed according to the requirements of the execution environment, governance policies, or a combination thereof.

[0054] As described above, system 100 supports workload management. System 100 may provide several advantages to organizations processing workloads in cloud computing environments. By identifying a set of candidate execution environments and generating recommendations based on carbon intensity values ​​and other execution information, system 100 may enable organizations to make informed decisions about where to process their workloads. This may help organizations reduce their carbon footprint and energy costs, while potentially improving workload performance and reliability. Additionally, or alternatively, system 100 may provide scheduling information and other controls to ensure workloads are executed in compliance with governance policies and other requirements. Overall, system 100 provides a valuable tool for organizations to optimize the processing of workloads in cloud computing environments.

[0055] Please refer to Figure 4. Figure 4 is a block diagram of another example system 400 that supports workload management in accordance with one or more aspects. System 400 may be an example implementation of one or more of the systems described above. As an example, system 400 may be an example implementation of system 100 and may be implemented at least in part by computing device 102.

[0056] System 400 includes a computing device 402, which may include or correspond to computing device 102. Computing device 402 may be configured to receive input data 404 for one or more execution environments and generate output data 406 for workloads executed in the execution environments.

[0057] Input data 404 may include energy data 408, client data 410, client application landscape 411, cloud service provider data 412, or a combination thereof. Energy data 408 may be accessed through an API such as the WattTime® API and may reflect information about power usage, grid energy sources, and energy prices. Client data 410 may be determined based on information from business or IT users and may identify batches, scheduling flexibility requirements, and dependencies. In some implementations, a batch may include or correspond to a workload 110 or a batch job 1122. Client application landscape 411 may include tool-based discovery to identify data volumes, required execution infrastructure, and governance policies. Cloud service provider data 412 may include infrastructure information for execution environments that may be used for batch execution.

[0058] Computing device 402 includes a carbon intensity extraction engine 414, a discovery engine 416, a carbon intensity calculator 418, a recommendation engine 419, a carbon reduction calculator 421, and a knowledge corpus 422. Carbon intensity extraction engine 414 may include or correspond to carbon intensity extraction engine 172. Discovery engine 416 may include or correspond to discovery engine 174. Recommendation engine 419 may include or correspond to recommendation engine 176. Carbon reduction calculator 421 may include or correspond to carbon reduction engine 178.

[0059] Knowledge corpus 422 may include information about workloads, execution environments, and the like. By way of example, knowledge corpus 422 may include batch job schedules, batch job configurations, governance policies, cloud service regions, cloud service power grids, cloud service carbon usage, cloud service costs, or a combination thereof. A workload may include or correspond to workload 110.

[0060] In some implementations, the discovery engine 416 may be implemented as a query- and tool-based client landscape discovery to identify batch jobs, dependencies, scheduling information, governance policies, or a combination thereof. The carbon intensity extraction engine 414 may integrate governance controls to identify allowed locations and use energy data 408 to extract a projected carbon intensity value for all allowed regions of a batch (e.g., a batch including multiple workloads). The carbon intensity calculator 418 may determine the energy usage and carbon intensity value of data transfer associated with the workload based on the projected carbon intensity value. The carbon intensity value may be determined to take into account Scope 3 emissions (e.g., direct and indirect greenhouse gas emissions) as a result of running the workload. The carbon intensity calculator 418 may also, or instead, determine a moving average carbon intensity value associated with the workload based on, for example, the duration of the job, or a combination thereof.

[0061] Recommendation engine 419 may include a rules engine that determines carbon-optimized scheduling times and regions that meet governance policies and scheduling constraints. Carbon reduction calculator 421 may receive recommendations from recommendation engine 419 and may determine carbon reductions (e.g., absolute carbon reductions) based on the recommendations, such as if the recommended workload scheduling were implemented.

[0062] Computing device 402 may determine output data 406 for one or more workloads (e.g., one or more workloads identified in client application landscape 411). In particular implementations, output data 406 may be generated in response to receiving approval from a user, such as a business user. Output data 406 may be generated including workload scheduling updates 438, cloud infrastructure provisioning 440, automated workload execution 442, or a combination thereof. Workload scheduling updates 438 may include automated updates to workload batch scheduling at one or more recommended times. Cloud infrastructure provisioning 440 may include automated dynamic infrastructure provisioning based on governance policies if a workload is shifted to a new region. Automated workload execution 442 may include automatically implementing workload execution at the scheduled time.

[0063] Reference is made to Figure 5. Figure 5 is a flow diagram of an example method 500 for workload management, according to one or more aspects. In some implementations, the operations of method 500 may be stored as instructions that, when executed by one or more processors (e.g., one or more processors of a computing device or a server), cause the one or more processors to perform the operations of method 500. In some implementations, method 500 may be performed by a computing device, such as computing device 102 of Figure 1, computing device 402 of Figure 4, or a combination thereof.

[0064] Method 500 includes, at 502, identifying a set of candidate execution environments for processing a workload. By way of example, the set of candidate execution environments and the workload may include or correspond to the set of candidate execution environments 180, 182, 184 and workload 110. In certain implementations, each candidate execution environment in the set of candidate execution environments is a different cloud computing environment. In certain implementations, the set of candidate execution environments includes multiple candidate execution environments.

[0065] Method 500 may also include receiving a governance policy associated with the workload. In particular implementations, the set of candidate execution environments may be identified based on a governance policy associated with the workload, such as governance policy 112. Method 500 may include determining allowed locations based on corresponding governance controls, which may be identified based on scheduling entities and provisioning entities identified in a plurality of governance control documents. Method 500 may also include generating recommendations, such as recommendation 130, for processing the workload based on a carbon intensity value associated with each candidate execution environment. By way of example, the carbon intensity value may include or correspond to carbon intensity value 124. In particular implementations, workload 110 may include batch job 122.

[0066] Method 500 includes generating 504 recommendation information for processing the workload. By way of example, the recommendation information may include or correspond to recommendation information 130. The recommendation information may be associated with a first execution environment selected from the set of candidate execution environments based on execution information indicating, for each candidate execution environment in the set, a carbon intensity value associated with the candidate execution environment. The execution information and carbon intensity values ​​may include or correspond to execution information 114 and carbon intensity values ​​124, respectively.

[0067] The method 500 includes outputting a first indicator indicative of the recommendation information, at 506. By way of example, the first indicator may include or correspond to the first indicator 118.

[0068] In certain implementations, method 500 includes determining execution information for a set of candidate execution environments. In certain implementations, method 500 includes, for each candidate execution environment in the set of candidate execution environments, determining execution information associated with the candidate execution environment. In certain implementations, the execution information associated with the candidate execution environment indicates a predicted carbon intensity value for the candidate execution environment, a transfer energy cost associated with transferring a workload to the candidate execution environment, a carbon intensity average, or a combination thereof. The transfer energy cost and carbon intensity average may include or correspond to transfer energy cost 126 and carbon intensity average 128, respectively. The transfer energy cost may be based on a location of the candidate execution environment, a distance between the first execution environment and the candidate execution environment, network information, or a combination thereof. The carbon intensity average may be based on a duration associated with processing the workload in the candidate execution environment, a power usage effectiveness value of the candidate execution environment, or a combination thereof. In certain implementations, method 500 further includes selecting a first execution environment from the set of candidate execution environments based on the execution information. The first execution environment may further be selected based on scheduling information associated with the set of candidate execution environments, historical workload scheduling data, or a combination thereof.

[0069] In some implementations, for each candidate execution environment in the set of candidate execution environments, determining execution information associated with the candidate execution environment includes determining an average carbon intensity value for each of the plurality of processing start times. In particular implementations, the recommendation information is generated based on the plurality of workloads including the workload, the set of candidate execution environments, scheduling information associated with each candidate execution environment in the set of candidate execution environments 180, 182, 184, a cost threshold or energy efficiency threshold, a weather forecast, or a combination thereof. The scheduling information may include or correspond to scheduling information 116. Additionally or alternatively, the recommendation information may be generated based on the carbon intensity value of the candidate execution environment, the infrastructure cost of the candidate execution environment, the provisioning time of the candidate execution environment, a service level agreement or latency associated with the candidate execution environment, or a combination thereof, for each candidate execution environment in the set of candidate execution environments.

[0070] In certain implementations, method 500 includes receiving a second indicator indicating acceptance of the first execution environment for processing the workload. By way of example, the second indicator may include or correspond to second indicator 120. In some implementations, method 500 further includes generating a schedule for the workload indicating processing of the workload in the first execution environment at the first time based on the second indicator, and transferring the workload from the workload storage location to the first execution environment. The schedule may include or correspond to scheduling information 116.

[0071] In certain implementations, the method 500 includes provisioning a first execution environment for processing the workload. The method 500 may further include initiating processing of the workload by the first execution environment.

[0072] In particular implementations, method 500 includes receiving scheduling information indicating that the workload is scheduled for processing in a second execution environment at a second time. By way of example, the scheduling information may include or correspond to scheduling information 116. The second execution environment may include or correspond to second execution environment 182. Method 500 may also include selecting a first execution environment from the set of candidate execution environments. Additionally or alternatively, method 500 may include transferring or initiating a transfer of the workload from the second execution environment to the first execution environment, initiating processing of the workload by the first execution environment, or a combination thereof.

[0073] Method 500 may be performed to determine recommendations for distributing workloads among candidate execution environments to reduce the environmental impact of running the workloads, to comply with governance policies, or a combination thereof. Additionally or alternatively, method 500 may provide various benefits to organizations regarding processing workloads in cloud computing environments. By considering carbon intensity values ​​and other execution information, method 500 enables a computing device to identify a set of candidate execution environments and generates recommendation information that helps an organization make informed decisions about where to process its workloads. This approach may result in improved performance and reliability because an organization may select the optimal execution environment for each workload based on factors such as latency, service level agreements, and infrastructure costs. Additionally or alternatively, method 500 enables a computing device to provide scheduling information and other controls to ensure workloads are executed in compliance with governance policies and other requirements. By managing workload processing in this manner, an organization may appropriately reduce its carbon footprint and energy costs while improving the overall performance and reliability of its systems.

[0074] It should be noted that other types of devices and functionality may be provided in accordance with aspects of the present disclosure, and discussion of specific devices and functionality herein is for purposes of illustration and not limitation. It should be noted that the operations of method 500 of FIG. 5 may be performed in any order, or an operation of one method may be performed while another method is being performed, such as one or more operations described with reference to system 100 of FIG. 1, method or operation 200 of FIG. 2, method or operation 300 of FIG. 3, system 400 of FIG. 4, or a combination thereof. It should also be noted that one or more operations of the method of FIG. 5 may be combined with other operations, repeated, optional, or a combination thereof. It should also be noted that method 500 of FIG. 5 may include other functionality or operations consistent with the description of the operations of FIG. 4.

[0075] Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. By way of example, the data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

[0076] The components, functional blocks, engines, and modules described herein with respect to Figures 1-5 include, among other examples, processors, electronic devices, hardware devices, electronic components, logical circuits, memories, software code, firmware code, or any combination thereof. Furthermore, features discussed herein may be implemented by special purpose processor circuitry, executable instructions, or a combination thereof.

[0077] Furthermore, those skilled in the art will readily appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, and such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. Furthermore, those skilled in the art will readily appreciate that the ordering or combination of components, methods, or interactions described herein are merely examples, and that the components, methods, or interactions of various aspects of the present disclosure may be combined or performed in ways other than those illustrated and described herein.

[0078] The various example logic, logic blocks, modules, circuits, and algorithmic processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. The interchangeability of hardware and software has been described broadly in terms of functionality and is illustrated in the various example components, blocks, modules, circuits, and processes described above. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.

[0079] The hardware and data processing equipment used to implement the various example logic, logic blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed using general-purpose single-chip or multi-chip processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices designed to perform the functions described herein, discrete gate or transistor logic, discrete hardware components, or any combination thereof. A general-purpose processor may be a microprocessor, or any conventional processor, controller, microcontroller, or state machine. In some implementations, a processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in combination with a DSP core, or any other similar configuration. In some implementations, particular processes and methods may be performed by circuitry specific to a given function.

[0080] In one or more aspects, the functions described may be implemented in hardware, digital electronic circuitry, computer software, firmware, including the structures disclosed herein and their structural equivalents, or any combination thereof. Further, implementations of the subject matter described herein may be implemented as one or more computer programs, i.e., as one or more modules of computer program instructions encoded on a computer storage medium for execution by or to control the operation of a data processing apparatus.

[0081] If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. The processes of a method or algorithm disclosed herein may be implemented in a software module executable by a processor, which may reside on a computer-readable medium. Computer-readable media includes both computer storage media and communication media, including any medium that may enable a computer program to be transferred from one place to another. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media may include random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection may be qualified as a computer-readable medium. As used herein, disk (disk) includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, hard disk, solid-state disk, and Blu-ray disc, where disks typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media. Furthermore, the operations of a method or algorithm may reside as one or any combination or set of codes and instructions on machine-readable and computer-readable media, which may be incorporated into a computer program product.

[0082] Those skilled in the art will readily appreciate various modifications to the implementations described in this disclosure. The generic principles defined herein may be applied to other implementations without departing from the spirit or scope of the disclosure. Thus, the scope of the claims is not intended to be limited to the implementations shown herein, but is to be accorded the widest scope consistent with the disclosure, principles, and novel features disclosed herein.

[0083] Furthermore, those skilled in the art will appreciate that the terms "upper" and "lower" may be used to facilitate describing the drawings, and indicate relative positions corresponding to the orientation of the drawings on an oriented page, and may not reflect the correct orientation of any implemented device.

[0084] Certain features that are described in this specification in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation may also be implemented separately in multiple implementations or in any suitable combination of components. Furthermore, while individual features may be described above as operating in a particular combination, and may even be initially claimed as such, in some cases one or more features of a claimed combination may be deleted from the combination, and the claimed combination may be directed to components of the combination or variations of the components of the combination.

[0085] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring that the operations be performed in the particular order or sequence shown, or that all of the operations shown be performed, to achieve desirable results. Furthermore, the figures may also generally depict another example process in the form of a flow diagram. However, other operations not shown may be incorporated into the example of the generally depicted process. For example, one or more additional operations may be performed before, after, simultaneously with, or between any of the illustrated operations. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described implementations should not be understood as requiring such separation in all implementations; it should be understood that the described program components and systems may generally be integrated into a single software product or packaged into multiple software products. Furthermore, other implementations are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results.

[0086] As used herein, including in the claims, various terminology is for the purpose of describing particular implementations only and is not intended to limit the implementation. By way of example, as used herein, ordinal terms (e.g., "first," "second," "third," etc.) used to modify elements, such as structures, components, acts, etc., do not in themselves indicate any priority or order of the element relative to other elements, but rather merely distinguish the element from other elements having the same name (apart from the use of the ordinal term). The term "coupled" is defined as connected, although not necessarily directly, and not necessarily mechanically. Two items that are "coupled" may be inseparable from one another. The term "or," when used in a list of two or more items, means that any one of the listed items may be used alone, or any combination of two or more of the listed items may be used. By way of example, if a composition is described as including components A, B, or C, the composition may include only A, only B, only C, a combination of A and B, a combination of A and C, a combination of B and C, or a combination of A, B, and C. Furthermore, as used herein, including the claims, "or" used in a list of items such as "at least one of" indicates a disjunctive list, such as, for example, a list such as "at least one of A, B, or C" meaning any of A, or B, or C, or AB, or AC, or BC, or ABC (i.e., A and B and C), or any combination thereof. The term "substantially" is defined to be generally, but not necessarily entirely, inclusive of what is specified, as will be appreciated by those skilled in the art; for example, "substantially 90 degrees" includes 90 degrees, and "substantially parallel" includes parallel.In any aspect disclosed, the term "substantially" may be replaced with "within a percentage of" what is specified, including 0.1 percent, 1 percent, 5 percent, and 10 percent. The term "approximately" may be replaced with "within 10 percent of" what is specified. The phrase "and / or" means and / or.

[0087] While the aspects of the present disclosure and their advantages have been described in detail, it should be understood that in light of this, various changes, substitutions, and alterations can be made without departing from the spirit of the present disclosure, as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular implementations of the processes, machines, manufacture, compositions of matter, means, methods, and acts described herein. As will be readily apparent to those skilled in the art from this disclosure, any now-existing or later-developed process, machine, manufacture, composition of matter, means, method, or act that performs substantially the same function or achieves substantially the same result as the corresponding aspects described herein may be utilized in accordance with the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or acts.

Claims

1. 1. A method of workload management executed by one or more processors, the method comprising: identifying a set of candidate execution environments for processing the workload; generating recommendation information for processing the workload, the recommendation information associated with a first execution environment selected from the set of candidate execution environments based on execution information for each candidate execution environment in the set that indicates a carbon intensity value associated with the candidate execution environment; The recommendation information is a plurality of workloads including the workload; the set of candidate execution environments; scheduling information associated with each candidate execution environment in the set of candidate execution environments; For each candidate execution environment in the set of candidate execution environments, the carbon intensity value of the candidate execution environment; the infrastructure costs of said candidate execution environments; a provisioning time for the candidate execution environment; any service level agreements or latencies associated with said candidate execution environments; or The combination and a cost threshold or an energy efficiency threshold; Weather forecasts and the generating step is characterized in that the signal is generated based on outputting a first indicator indicating the recommendation information; A method comprising:

2. The method further comprises: receiving a governance policy associated with the workload. Including, the workload includes a batch job; the set of candidate execution environments is identified based on the governance policy; or each candidate execution environment in the set of candidate execution environments is a different cloud computing environment; or the set of candidate execution environments includes a plurality of candidate execution environments; A combination of these? The method of claim 1, wherein

3. The method further comprises: determining the execution information for the set of candidate execution environments; For each candidate execution environment in the set of candidate execution environments, determining the execution information associated with the candidate execution environment, the execution information associated with the candidate execution environment comprising: a predicted carbon intensity value for the candidate execution environment; a transfer energy cost associated with transferring the workload to the candidate execution environment, the transfer energy cost being based on a location of the candidate execution environment, a distance between the first execution environment and the candidate execution environment, network information, or a combination thereof; a carbon intensity average based on a duration associated with the duration of processing of the workload in the candidate execution environment, a power usage effectiveness value of the candidate execution environment, or a combination thereof; A combination of these? determining the execution information associated with the candidate execution environment indicative of selecting the first execution environment from the set of candidate execution environments based on the execution information, wherein the first execution environment is further selected based on scheduling information associated with the set of candidate execution environments, historical workload scheduling data, or a combination thereof; The method of claim 1 , comprising:

4. The method further comprises: receiving a second indicator of acceptance of the first execution environment for processing the workload; Based on the second indicator, generating a schedule of the workload indicating the processing of the workload in the first execution environment at a first time; and transferring the workload from the workload storage location to the first execution environment; The method of claim 1 , comprising:

5. The method further comprises: provisioning the first execution environment for the processing of the workload; initiating the processing of the workload by the first execution environment; The method of claim 1 , comprising:

6. The method further comprises: receiving scheduling information indicating that the workload is scheduled to be processed in a second execution environment at a second time; selecting the first execution environment from the set of candidate execution environments; transferring the workload from the second execution environment to the first execution environment; commencing processing of the workload by the first execution environment; The method of claim 1 , comprising:

7. 1. A system for workload management, comprising: Memory and one or more processors communicatively connected to the memory; wherein the one or more processors: identifying a set of candidate execution environments for processing the workload; generating recommendation information for processing the workload, the recommendation information associated with a first execution environment selected from the set of candidate execution environments based on execution information for each candidate execution environment in the set that indicates a carbon intensity value associated with the candidate execution environment; The recommendation information may include, for each candidate execution environment in the set of candidate execution environments: the carbon intensity value of the candidate execution environment; the infrastructure costs of the candidate execution environments; a provisioning time for the candidate execution environment; a service level agreement or latency associated with said candidate execution environment; The generating step is characterized in that the generated signal is generated based on outputting a first indicator indicating the recommendation information; The system is configured to:

8. the workload includes a batch job; the set of candidate execution environments is identified based on a governance policy; each candidate execution environment in the set of candidate execution environments is a different cloud computing environment; The system of claim 7 , wherein the set of candidate execution environments includes a plurality of candidate execution environments.

9. The system of claim 7 , wherein the one or more processors are configured to receive, for each candidate execution environment in the set of candidate execution environments, a predicted carbon intensity value for the candidate execution environment.

10. 8. The system of claim 7, wherein the one or more processors are configured to determine, for each candidate execution environment in the set of candidate execution environments, a transfer energy cost associated with transferring the workload to the candidate execution environment, the transfer energy cost being based on a location of the candidate execution environment, a distance between the first execution environment and the candidate execution environment, network information, or a combination thereof.

11. 8. The system of claim 7, wherein the one or more processors are configured to determine, for each candidate execution environment in the set of candidate execution environments, a carbon intensity average value based on a duration associated with a duration of processing of the workload in the candidate execution environment, a power usage effectiveness value of the candidate execution environment, or a combination thereof.

12. 12. The system of claim 11, wherein to determine the execution information for each candidate execution environment in the set of candidate execution environments, the one or more processors are further configured to determine the carbon intensity average value for each of a plurality of processing start times.

13. 8. The system of claim 7, wherein the one or more processors are configured to select the first execution environment from the set of candidate execution environments based on the execution information, the first execution environment being further selected based on scheduling information associated with the set of candidate execution environments and historical workload scheduling data.

14. 1. A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations for workload management, the operations comprising: identifying a set of candidate execution environments for processing the workload; generating recommendation information for processing the workload, the recommendation information associated with a first execution environment selected from the set of candidate execution environments based on execution information for each candidate execution environment in the set that indicates a carbon intensity value associated with the candidate execution environment; The recommendation information is a plurality of workloads including the workload; the set of candidate execution environments; scheduling information associated with each candidate execution environment in the set of candidate execution environments; For each candidate execution environment in the set of candidate execution environments, the carbon intensity value of the candidate execution environment; the infrastructure costs of said candidate execution environments; a provisioning time for the candidate execution environment; any service level agreements or latencies associated with said candidate execution environments; or The combination and a cost threshold or an energy efficiency threshold; Weather forecasts and The generating step is characterized in that the generated signal is generated based on outputting a first indicator indicating the recommendation information; 1. A non-transitory computer-readable storage medium comprising:

15. The operation further comprises: determining the execution information for the set of candidate execution environments; and for each candidate execution environment in the set of candidate execution environments, determining the execution information associated with the candidate execution environment, the execution information associated with the candidate execution environment comprising: a predicted carbon intensity value for the candidate execution environment; and a transfer energy cost associated with transferring the workload to the candidate execution environment, the transfer energy cost being based on a location of the candidate execution environment, a distance between the first execution environment and the candidate execution environment, network information, or a combination thereof; and a carbon intensity average based on a duration associated with the duration of processing of the workload in the candidate execution environment, a power usage effectiveness value of the candidate execution environment, or a combination thereof; determining the execution information associated with the candidate execution environment indicative of 15. The non-transitory computer-readable storage medium of claim 14, comprising:

16. The operation further comprises: receiving a second indicator of acceptance of the first execution environment for processing the workload; Based on the second indicator, generating a schedule of the workload indicating the processing of the workload in the first execution environment at a first time; and transferring the workload from the workload storage location to the first execution environment; provisioning the first execution environment for the processing of the workload; initiating the processing of the workload by the first execution environment; 15. The non-transitory computer-readable storage medium of claim 14, comprising:

17. The operation further comprises: receiving scheduling information indicating that the workload is scheduled to be processed in a second execution environment at a second time; selecting the first execution environment from the set of candidate execution environments; transferring the workload from the second execution environment to the first execution environment; commencing processing of the workload by the first execution environment; 15. The non-transitory computer-readable storage medium of claim 14, comprising:

Citation Information

Patent Citations

  • Control program, control device and control method

    JP2023084517A

  • Machine learning model scaling system with energy efficient network data transfer for power aware hardware

    US20220036123A1

  • Carbon footprint-based control of cloud resource consumption

    US20230138727A1