Embodiments of the present invention generally relate to optimization of workload placement processes. More particularly, at least some embodiments of the invention relate to systems, hardware, software, computer-readable media, and methods, for reducing the size of a search space to be evaluated for optimized workload placement.
Cloud computing has gained the attention of businesses because of its benefits, which include pay-per-use computation at the customer side and resource sharing at the service provider side. Through virtualization, the main technology behind clouds, it is possible to abstract a pool of computation devices and offers computational resources better tailored to customer needs, who might contract more computation as their needs grow. In this environment, other resource abstractions emerged, the most prominent example being containers. It is also possible to offer computation without the explicit necessity of the customer to know which underlying infrastructure is running its code. This can be achieved in the Platform as a Service (PaaS) paradigm and also the Function as a Service (FaaS, serverless computing) paradigm.
In each of these paradigms, using an infrastructure efficiently to execute jobs implies the adoption of a workload, or dataset, placement approach. While there are multiple approaches that target this type of problem, at its core, it is an optimization problem that seeks to find the most efficient placement while respecting multiple restrictions such as, for example, GDPR compliance, workloads that have resource sharing restrictions, fixed location datasets, and constraints such as infrastructure resources including available memory, number of CPU cores, presence/absence of GPUs, and number of GPUs, and data availability, that is, which datasets are available in each node.
Infrastructures may be mapped as graphs, where nodes of the graph represent virtual computing instances, and edges represent the path to be taken to get from one node to another, from the connectivity aspect. The optimization problem to find the best node for the placement of a workload requires an exhaustive search in an infrastructure graph. For large graphs, which may have thousands, or more, nodes the complexity of the search makes the optimization process unfeasible, even for some computing entities.
In order to describe the manner in which at least some of the advantages and features of various example embodiments may be obtained, a more particular description of embodiments will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting of the scope of this disclosure, these embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings.
Embodiments of the present invention generally relate to optimization of workload placement processes. More particularly, at least some embodiments of the invention relate to systems, hardware, software, computer-readable media, and methods, for reducing the size of a search space to be evaluated for optimized workload placement.
One example embodiment is directed to a method that, in general, comprises building an infrastructure graph, then applying an algorithm to search for nodes in a portion of the infrastructure graph, and then applying a workload placement optimization algorithm in the reduced search space, that is, the portion of the infrastructure represented by the infrastructure graph.
With particular reference to construction of the infrastructure graph, an infrastructure graph according to an embodiment may comprise nodes, edges and attributes of nodes and edges as a heterogeneous graph. Each node may represent a different respective infrastructure. Further, each node may have a set of attributes made up of various different types of features such as, but not limited to: [1] infrastructure resources—such as available memory, number of CPU (central processing unit) cores, presence/absence of GPU (graphics processing unit), number of GPUs, and others; [2] topology information—such as node centrality, representing the topological importance of a node, normalized degree (number of available neighbors), component size (size of the of the component where the node belongs), and clustering coefficient (local neighborhood density of a node); and [3] data availability—that is, which datasets are available in each node. Further, each edge of the infrastructure graph is directed to the nodes that have a direct connection in the network. Each edge encodes the information about the network aspects, such as latency and bandwidth, for example.
With regard to application of the algorithm to search for nodes, the problem of searching for specific nodes in partially unknown networks topologies under a query budget constraint is called Selective Harvesting (SH). In this stage, an embodiment may apply an SH algorithm starting from a random set of nodes of the infrastructure graph. An embodiment may define a budget referring to at least the number of nodes consistent with the size of the workload that must be allocated to infrastructures. Finally, the SH algorithm may return a subgraph, that is, a subset or portion of the infrastructure graph, in which all nodes satisfy the minimum requirements of the workload.
Finally, the optimization algorithm, for placement of the workload, is applied in the reduced search space. In this stage, an embodiment applies the optimization algorithm in the subgraph generated by the SH solution algorithm. Application of the optimization algorithm may result in identification of a node, or nodes, in the reduced search space that are able to support the requirements of the workload. This may be a particularly useful aspect of an embodiment, inasmuch as an infrastructure may comprise hundreds, thousands, tens of thousands, or more, nodes.
Embodiments of the invention, such as the examples disclosed herein, may be beneficial in a variety of respects. For example, and as will be apparent from the present disclosure, one or more embodiments of the invention may provide one or more advantageous and unexpected effects, in any combination, some examples of which are set forth below. It should be noted that such effects are neither intended, nor should be construed, to limit the scope of the claimed invention in any way. It should further be noted that nothing herein should be construed as constituting an essential or indispensable element of any invention or embodiment. Rather, various aspects of the disclosed embodiments may be combined in a variety of ways so as to define yet further embodiments. For example, any element(s) of any embodiment may be combined with any element(s) of any other embodiment, to define still further embodiments. Such further embodiments are considered as being within the scope of this disclosure. As well, none of the embodiments embraced within the scope of this disclosure should be construed as resolving, or being limited to the resolution of, any particular problem(s). Nor should any such embodiments be construed to implement, or be limited to implementation of, any particular technical effect(s) or solution(s). Finally, it is not required that any embodiment implement any of the advantageous and unexpected effects disclosed herein.
In particular, one advantageous aspect of an embodiment of the invention is that the size of the space to be searched for optimized placement of a workload may be reduced to some size smaller than the entire infrastructure, thus reducing the time and resources needed to support performance of a workload placement optimization process. An embodiment may provide assurance that a workload placement optimization process can be successfully performed in a given subspace of an infrastructure. Various other advantages of one or more example embodiments will be apparent from this disclosure.
It is noted that embodiments of the invention, whether claimed or not, cannot be performed, practically or otherwise, in the mind of a human. Accordingly, nothing herein should be construed as teaching or suggesting that any aspect of any embodiment of the invention could or would be performed, practically or otherwise, in the mind of a human. Further, and unless explicitly indicated otherwise herein, the disclosed methods, processes, and operations, are contemplated as being implemented by computing systems that may comprise hardware and/or software. That is, such methods processes, and operations, are defined as being computer-implemented.
The following is a discussion of a context for an example embodiment. This discussion is not intended to limit the scope of the invention, or the applicability of the embodiments, in any way.
As used herein, graphs comprise mathematical structures used mainly to represent relationships, as edges, between entities which may be represented as vertices or nodes. These structures can be used to model many problems. In many of these applications, the vertices, or nodes, of a graph can contain valuable information about the entities being modeled on these structures. This set of information about the modeled entities may be referred to as node attributes. In addition, the vertices of a graph may have special characteristics, that is, labels, labels, which may make those vertices a possible target for some tasks.
Homogeneous networks are networks where nodes and edges have a single meaning. For example, in a scientific collaboration network, every node represents a researcher while edges represent a collaboration in a scientific work. Another example is web crawling, where the nodes represent web pages only and edges represent hyperlinks only.
Although most research has focused on homogeneous networks, there is a recent increase in interest in heterogeneous networks. In it, nodes and edges may carry multiple meanings and types because entities and relationships are not necessarily the same across the domain that is being modelled. For example, a node in a referral network may carry labels such as ‘server,’ ‘router,’ ‘computer,’ ‘mobile,’ ‘antenna’ and others. Edges might mean ‘node a is connected to node b’, or ‘node a has access to node b,’ for instance.
In general, search in graphs refers to the process of traversing a graph, a subgraph, or a set of interconnected nodes in order to find one or more specific nodes and/or paths, or edges. Graph search refers to a class of algorithms that systematically explore the nodes and edges of a graph, computing various properties.
In many real networks, searching in a graph or accessing data associated with nodes and edges of the network is often difficult and querying nodes can have a steep cost in terms of the consumption of resources such as processing and bandwidth. In these scenarios, it is often the case that a large fraction of the data to be modeled is unobserved, and there is only a limited budget available to perform queries. Moreover, there may not be interest in the complete network, but only in a set of target nodes, that is, node with certain characteristics.
As an example, consider the problem of finding as many Facebook users that share a particular taste in music as possible, starting from a friendship network of a specific user. Hereupon, Facebook users are nodes, friendship status are edges and musical tastes are user attributes. Except for the Facebook engineers themselves however, access to the networks is limited and it is impossible to query all nodes.
The problem of finding the largest number of target nodes for partially unknown networks topologies under a query budget constraint is called SH (Selective Harvesting). SH can be stated as a graph search problem on partially observed network topology. However, due to the inherent complexity of the addressed problem, SH can be framed from other perspectives, such as an unbalanced data classification problem, a reinforcement learning task, or as an anomaly detection problem, to enumerate a few.
In SH, data is acquired through an online search or exploration of the graph, which can be seen as an evolving process that increases knowledge about the network as the search expands. At each step, structural and non-structural information regarding topology, nodes and edge data is acquired. Since the networks are partially observed in SH, the set of queried nodes and their connections to the rest of the network compose all available information about the network.
Any algorithm that solves SH presents itself as a solution for a search problem into partially observed graphs. The main difference between these methods is how they choose which node to explore next. For example, D3TS uses an approach based on reinforcement learning in a set of models in order to estimate which node has the largest probability to belong to the target class.
With continued reference to the example of
An example embodiment may define an infrastructure graph as a partially observed graph where a large fraction of the data to be modeled is unobserved, and there is only a limited budget available to perform queries to solve the workload placement problem. In this sense, a method may be applied to search for partially unknown networks topologies under a query budget constraint to find a subgraph where the number of nodes is equivalent to the budget size and all nodes satisfy the resource and data constraints needed for workload placement. Thus, an example embodiment may address the following concerns:
In light of the foregoing points, an embodiment may represent the infrastructure and its current state, which workloads or datasets are present in each node as well as which restrictions currently apply to each node, as a partially observed graph. In addition, an embodiment may comprise a method that leverages this graph representation to find a subgraph that contains the solution to the optimization problem, effectively reducing the optimization space, and therefore reducing the execution time of the optimization algorithm.
One way to look at this solution is to consider that, instead of looking to the entire network during the optimization process and consider all the nodes as candidates for placement, apply a selective harvesting solution and select the subset of nodes that cope with all the restrictions. Notice that this subset may be much smaller than the entire network, but still satisfies all the requirements of the workloads. Thus, this pruned set of nodes comprises, or consists of, the nodes that must be used for the optimization process, which considerably reduces the optimization cost.
One example embodiment may be considered as having the form of a pipeline that comprises three steps or stages, namely:
As apparent from this disclosure, an example embodiment, which may comprise a pipeline that enables the feasibility of optimization methods in a workload placement scenario, may possess a variety of useful aspects and features, although no embodiment is required to have any of such features and aspects. For example, an embodiment of the invention may differ from conventional approaches for workload placement at least insofar as that embodiment comprises a pipeline to reduce the optimization search space for workload placement problems. Thus, some example features and aspects of an embodiment comprise:
With reference now to
The following discussion of the method 300 and its constituent elements is subdivided into three parts, the first part explains use of a pruning process of a state space. The second part is concerned with the modelling of an infrastructure network as a Heterogenous Graph (HG) or Heterogenous Network (HN), such as is indicated at 302 (Step 1) in
Reference is first made to
With attention now to
In the first step 302 (see
As disclosed earlier herein, some relevant attributes may be defined for the for nodes and edges. In one scenario, the most relevant node attributes are of three types, and the most relevant edges attributes are of two types. For this example, these attributes are summarized as follows:
The infrastructure scenario is directly related to the attributes for nodes and edges. Different infrastructure implies in different sets of attributes.
In an embodiment, an orchestration process starts with the user making a request to execute a specific workload and comprises 304 (Step 2) and 306 (Step 3) from
Step 2, or the algorithm 700, may begin immediately after the orchestrator has built the infrastructure heterogenous graph, and after receiving a request from a user. To perform a search procedure over a partially observed network, that is, the algorithm 700, various pieces of information may be needed:
The cold start set corresponds to a minor sample of the infrastructure network, that is, a sample of less than the entire infrastructure network, collected to build an initial HN (heterogenous network). This initial subgraph may be built as a simple random walk in the infrastructure, or it could be a pre-selected set of nodes.
In an embodiment, the pre-selected set of nodes corresponds to a sample that involves two different types of nodes, namely, some nodes that satisfy the minimum requirements to run the workload, and some nodes that do not satisfy those minimum requirements. This may be important since some algorithms that solve the SH search problem model this search on the partially observed graph as a binary classification problem, that is, as a decision problem. In an embodiment, the nodes of a specific class are discovered, that is, that class of nodes that satisfies minimum requirements for running the workload.
After defining the search budget 706, an embodiment may then apply 708 an SH algorithm on the initial HG (heterogenous graph) that models the infrastructure network. Next, a process may be performed that comprises searching the subgraph and expanding the HN (heterogeneous network) 710. The selected SH algorithm may train a learning model using the cold start set of nodes and the features of the nodes that satisfy or not the workload execution prerequisites. Then, the algorithm 700 may proceed to an inference phase where the trained model should select from the unqueried set of nodes which of them belongs, with the highest probability, to the class of nodes that can execute the workload. This process 708/710 iterates one node at a time until it is determined 712 that the budget has run out.
After the end of the search process, the framework returns 714 the resulting subgraph to the orchestrator. By doing this, an embodiment reduces a size of the search space, from the complete graph to the generated subgraph, for the optimization algorithm. It is noted that the execution of the learning algorithm 700 that is a solution for the SH may guarantee that a node will only be added to the expanding network if, and only if, that node satisfies the minimum requirements of the workload. Thus, after the budget depletes, the expanded network has nodes that, except for the cold start, are known/determined to meet the minimum requirements for executing the workload. Moreover, note that the higher the budget, the larger the resulting HN becomes, since a node may be added to the HN with each iteration of 708/710.
After generating the subgraph (see 714 in
It is noted with respect to the disclosed methods, including the example method of
Directing attention now to
In this example embodiment, the pipeline is described as follows: (Step 1—workloadQueue) once the orchestrator receives 901 the workloads that must be placed, the orchestrator (Step 2—buildPlacementPlan) triggers 902 the method for building the placement plan. In traditional approaches, an optimization method would gather all the workloads requirements and infrastructure resources, build the constraints, and run the optimizer. However, one embodiment (Step 3—randomizeSeedNode) randomizes 904 a seed node from the infrastructure graph. This (Step 4—addNode) node is added 906 to a graph that contains the nodes that are capable of running the identified workloads, which is (Step 5—graphAssessment) evaluated 908 in the next step. If the current CandidateGraph (Step 6—workloadQueueRequirements) contains all the resources needed to run the set of workloads (such information is provided 910 by the Orchestrator), the process stops. Otherwise, we (Step 7—getNextNodeFromSH) rely on an SH solution to get 912 a new node from the set of neighbors of the previous node with higher probability of coping with the requirements of the workload queue. The process is repeated from Steps 4 to 6 (906 to 910). After the end of this loop, (Step 9—optimization) the optimization method is called 914 considering only the nodes in CandidateGraph as possible states.
Various approaches may be employed, in conjunction with one or more embodiments, to solve the SH search problem. Following is an example of one such approach, the D3TS Algorithm, which is disclosed in “F. Murai, D. Rennó, B. Ribeiro, G. Pappa, D. Towsley and K. Gile, ‘Selective harvesting over networks,’ Data Mining and Knowledge Discovery, no. 32,pp. 187-217, 2018” (“Murai”), which is incorporated herein in its entirety by this reference.
SH was first introduced in Murai, where SH authors discussed some methods that can be adapted to solve this problem. In addition, the authors proposed the Directed Diversity Dynamic Thompson Sampling—D3TS, a Multi-Armed Bandit (MAB) algorithm for non-stationary stochastic processes that combines different classifiers and intelligently selects a classifier at each step to decide which neighbor to query next in a harvesting search scenario.
Directed Diversity Dynamic Thompson Sampling—D3TS is a classifier for SH. D3TS is a Multi-Armed Bandit (MAB) algorithm for non-stationary stochastic processes that combines different classifiers and intelligently selects a classifier at each step to decide which neighbor to query. This approach differs from ensemble techniques in that classifier responses are not combined.
D3TS adapts Dynamic Thompson Sampling (DTS) algorithm proposed for MABs with non-stationary distributions to the SH problem. DTS is based on the Thompson Sampling (TS) algorithm for stochastic MABs, where binary outcomes associated with each arm are modeled as Bernoulli trials. The uncertainty on the probability parameter associated with each arm k is typically modeled as a Beta (Beta(αk, βk)) distribution. The Beta distribution is the conjugate prior for the Bernoulli distribution, thus providing computational savings on Bayesian updates. TS performs exploration by choosing arms probabilistically, according to samples drawn from the corresponding distributions.
Following are some further example embodiments of the invention. These are presented only by way of example and are not intended to limit the scope of the invention in any way.
Embodiment 1. A method, comprising: building an infrastructure graph comprising nodes and edges, and each node represents a respective infrastructure, and each edge encodes information about aspects of a network that includes the nodes; applying a selective harvesting (SH) algorithm to the infrastructure graph to identify the nodes that are able to meet the requirements of a workload, and the nodes that are identified collectively form a subset of all the nodes of the infrastructure graph; based on the applying, generating a subgraph of the infrastructure graph, and the subgraph comprises the subset; and applying a workload placement optimization algorithm to the nodes of the subgraph.
Embodiment 2. The method as recited in any preceding embodiment, wherein each of the nodes is associated with respective computing resources.
Embodiment 3. The method as recited in any preceding embodiment, wherein each edge is directed to those nodes that have a direct connection to a communication network.
Embodiment 4. The method as recited in any preceding embodiment, wherein the SH algorithm is applied to a random set of nodes of the infrastructure graph.
Embodiment 5. The method as recited in any preceding embodiment, wherein a query budget constraint determines a minimum number of nodes to which the SH algorithm is applied.
Embodiment 6. The method as recited in any preceding embodiment, wherein all the nodes in the subgraph are able to support the workload.
Embodiment 7. The method as recited in any preceding embodiment, wherein the selective harvesting (SH) algorithm is iteratively applied until enough nodes are identified to support the workload.
Embodiment 8. The method as recited in any preceding embodiment, wherein the workload placement optimization algorithm is applied based on the infrastructure subgraph, and based on the workload and associated tasks.
Embodiment 9. The method as recited in any preceding embodiment, wherein the workload placement optimization algorithm is able to identify nodes for placement of the workload more quickly in the nodes of the subgraph than if the workload placement optimization algorithm searched all the nodes of the entire infrastructure.
Embodiment 10. The method as recited in any preceding embodiment, wherein the applying of the selective harvesting (SH) algorithm is performed in response to a user request to execute the workload.
Embodiment 11. A system, comprising hardware and/or software, operable to perform any of the operations, methods, or processes, or any portion of any of these, disclosed herein.
Embodiment 12. A non-transitory medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising the operations of any one or more of embodiments 1-10.
The embodiments disclosed herein may include the use of a special purpose or general-purpose computer including various computer hardware or software modules, as discussed in greater detail below. A computer may include a processor and computer storage media carrying instructions that, when executed by the processor and/or caused to be executed by the processor, perform any one or more of the methods disclosed herein, or any part(s) of any method disclosed.
As indicated above, embodiments within the scope of the present invention also include computer storage media, which are physical media for carrying or having computer-executable instructions or data structures stored thereon. Such computer storage media may be any available physical media that may be accessed by a general purpose or special purpose computer.
By way of example, and not limitation, such computer storage media may comprise hardware storage such as solid state disk/device (SSD), RAM, ROM, EEPROM, CD-ROM, flash memory, phase-change memory (“PCM”), or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other hardware storage devices which may be used to store program code in the form of computer-executable instructions or data structures, which may be accessed and executed by a general-purpose or special-purpose computer system to implement the disclosed functionality of the invention. Combinations of the above should also be included within the scope of computer storage media. Such media are also examples of non-transitory storage media, and non-transitory storage media also embraces cloud-based storage systems and structures, although the scope of the invention is not limited to these examples of non-transitory storage media.
Computer-executable instructions comprise, for example, instructions and data which, when executed, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. As such, some embodiments of the invention may be downloadable to one or more systems or devices, for example, from a website, mesh topology, or other source. As well, the scope of the invention embraces any hardware system or device that comprises an instance of an application that comprises the disclosed executable instructions.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts disclosed herein are disclosed as example forms of implementing the claims.
As used herein, the term ‘module’ or ‘component’ may refer to software objects or routines that execute on the computing system. The different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system, for example, as separate threads. While the system and methods described herein may be implemented in software, implementations in hardware or a combination of software and hardware are also possible and contemplated. In the present disclosure, a ‘computing entity’ may be any computing system as previously defined herein, or any module or combination of modules running on a computing system.
In at least some instances, a hardware processor is provided that is operable to carry out executable instructions for performing a method or process, such as the methods and processes disclosed herein. The hardware processor may or may not comprise an element of other hardware, such as the computing devices and systems disclosed herein.
In terms of computing environments, embodiments of the invention may be performed in client-server environments, whether network or local environments, or in any other suitable environment. Suitable operating environments for at least some embodiments of the invention include cloud computing environments where one or more of a client, server, or other machine may reside and operate in a cloud environment.
With reference briefly now to
In the example of
Such executable instructions may take various forms including, for example, instructions executable to perform any method or portion thereof disclosed herein, and/or executable by/at any of a storage site, whether on-premises at an enterprise, or a cloud computing site, client, datacenter, data protection site including a cloud storage site, or backup server, to perform any of the functions disclosed herein. As well, such instructions may be executable to perform any of the other operations and methods, and any portions thereof, disclosed herein.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.