WO2017213537A1 - Parallel optimization of homogeneous systems - Google Patents

Parallel optimization of homogeneous systems Download PDF

Info

Publication number
WO2017213537A1
WO2017213537A1 PCT/RU2016/000354 RU2016000354W WO2017213537A1 WO 2017213537 A1 WO2017213537 A1 WO 2017213537A1 RU 2016000354 W RU2016000354 W RU 2016000354W WO 2017213537 A1 WO2017213537 A1 WO 2017213537A1
Authority
WO
WIPO (PCT)
Prior art keywords
graph
iterations
optimization
parameters
subgraphs
Prior art date
Application number
PCT/RU2016/000354
Other languages
French (fr)
Inventor
Dmitry Yurievich IGNATOV
Alexander Nikolaevich Filippov
Xuecang ZHANG
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to CN201680085083.6A priority Critical patent/CN109478145B/en
Priority to PCT/RU2016/000354 priority patent/WO2017213537A1/en
Publication of WO2017213537A1 publication Critical patent/WO2017213537A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Definitions

  • the present invention in some embodiments thereof, relates to managing and/or optimizing operational parameters of a homogeneous systems (HS) and, more specifically, but not exclusively, to managing and/or optimizing operational parameters of an HS through concurrent (parallel) optimization of portions (segments) of the HS.
  • HS homogeneous systems
  • the HS that may be either artificial HS and/or physical HS is typically represented by network.
  • An artificial HS for example, in the field of informational technologies may include, for example, mobile networks, wired and/or wireless Internet, network of switches in a datacenter, artificial neural network and/or the like.
  • a physical HS may be networks transferring physical objects such as, for example, road networks, pipe networks, cardiovascular system(s) of human organism and/or the like.
  • An optimization of the HS may be described as maximizing of an objective function that may reflect the HS performance and/or quality of produced result.
  • a system of managing resources of a homogenous system comprising a memory and a processor.
  • the memory is adapted to store a graph representing the HS, the graph comprises a plurality of vertexes connected by a plurality of edges, each vertex corresponds to one of a plurality of elements of the HS and each edge has weight defining a rank of correlation between a pair of the plurality of HS elements.
  • the processor is adapted to identify a plurality of alternative splits of the graph each comprising a plurality of non-overlapping subgraphs of the graph and to perform, in each of a plurality of iterations:
  • the apportioning comprises allocating a plurality of computation cores according to said plurality of non-overlapping subgraphs.
  • the termination criterion is based on an estimation of an effectiveness score of said plurality of non-overlapping subgraphs of said selected alternative split according to an outcome of an optimizing function.
  • the processor is adapted to create an updated version of the graph by filtering the plurality of edges according to a correlation thresholds.
  • the plurality of alternative splits are identified in the updated version to be optimized during one or more another series of iterations comprising at least one of said plurality of iterations.
  • the processor is adapted to adjust the correlation threshold following the one or more series of iterations to increase a precision value indicative of an accuracy of the updated version of the graph.
  • the processor is adapted to calculate the correlation weight for each of the plurality of edges on a basis of parameters in connected vertices.
  • the processor is adapted to identify a subset of the plurality of vertexes according to one or more size threshold, each one of the plurality of non-overlapping subgraphs comprises one member of the subset.
  • the processor is adapted to update one or more of the plurality of vertexes with an updated value calculated during one or more previous iterations of the plurality of iterations.
  • a method of managing resources of a homogenous system comprising
  • the graph comprises a plurality of vertexes connected by a plurality of edges. Each vertex corresponds to one of a plurality of elements of the HS and each edge has weight defining a rank of correlation between a pair of the plurality of HS elements.
  • Each of the plurality of alternative splits comprising a plurality of non-overlapping subgraphs of the graph.
  • the termination criterion is based on an estimation of an effectiveness score of said plurality of non-overlapping subgraphs of said selected alternative split according to an outcome of an optimizing function.
  • FIG. 1 is a flowchart of an exemplary process for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention
  • FIG. 2 is a schematic illustration of an exemplary system for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention
  • FIG. 3 is a schematic illustration of exemplary software modules and interaction for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention
  • FIG. 4 is a schematic illustration of exemplary reduced graphs created from an exemplary weighted graph, according to some embodiments of the present invention.
  • FIG. 5 is a schematic illustration of subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention.
  • FIG. 6 is a schematic illustration of non-overlapping subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention.
  • FIG. 7 is a schematic illustration of a homogeneous system embodiment of an exemplary wired network divided to non-overlapping subgraphs, according to some embodiments of the present invention.
  • FIG. 8 is a schematic illustration of a homogeneous system embodiment of an exemplary wireless network antenna coverage area divided to non-overlapping subgraphs, according to some embodiments of the present invention.
  • FIG. 9 is a schematic illustration of a homogeneous system embodiment of an exemplary road network divided to non-overlapping subgraphs, according to some embodiments of the present invention.
  • FIG. 10 is a schematic illustration of an exemplary flow of a process for optimizing resources of an HS using two cores (threads), according to some embodiments of the present invention.
  • FIG. 1 1 is a schematic illustration of an exemplary embodiment of a system for optimizing resources of an HS, according to some embodiments of the present invention.
  • the present invention in some embodiments thereof, relates to managing and/or optimizing operational parameters of an HS and, more specifically, but not exclusively, to managing and/or optimizing operational parameters of an HS through concurrent (parallel) optimization of portions (segments) of the HS.
  • the invention presents systems and methods for managing and/or optimizing operational parameters of a general HS, in particular a large HS comprising a large quantity of similar elements by dividing (splitting) the HS to substantially independent portions that may weakly interact with each other and optimize the independent portions concurrently using a plurality of processing cores.
  • the HS is first converted to a weighted graph comprising a plurality of vertexes each associated with a corresponding HS element and edges connecting the vertexes.
  • the vertexes and edges represent the HS elements and the correlation between the HS elements.
  • the weighted graph is created using data derived from the HS parameters.
  • the weighted graph is then reduced by removing some of the edges to represent the dominant (strong) correlations between the HS elements and remove substantially weak correlations.
  • a subgraph is identified for the respective vertex.
  • Non-overlapping subgraphs are selected from the subgraphs where the non- overlapping subgraphs do not share vertexes (HS elements). Since the non-overlapping subgraphs are mostly independent of each other they may be optimized separately and concurrently by one or more processing cores.
  • the optimization process may be done through a plurality of iterations controlled by a central processor that monitors the optimization results and may determine a desired optimization level and/or accuracy. During each optimization iteration a different set of non-overlapping subgraphs may be selected and an optimized value may be identified and assigned to each of the HS parameters for the following iteration.
  • the method is directed to optimize different types of HS each having its specific parameters and/or features, for example, HS type, HS structure, HS elements, objective (optimization) function and/or the like.
  • HS type HS type
  • HS structure HS elements
  • objective (optimization) function objective (optimization) function and/or the like.
  • multiple HS types may be managed and/or optimized in a similar manner.
  • each of the portions may be optimized independently and thus all portions may be optimized concurrently using one or more processing cores.
  • Taking advantage of the rapidly evolving multi-core and/or multi- threading technologies may significantly reduce the optimization time compared to the currently existing optimization methods that may operate serially due to interdependence among the HS elements. Furthermore, by controlling and/or regulating the optimized (updated) HS parameters the optimization convergence to optimal HS parameters may be rapidly reached since the optimization involves multiple iterations. The optimization may start using a relatively low optimization goal and gradually improve the optimization goal while the HS parameters may be updated on the fly following each iteration with new parameters calculated in the recent iteration.
  • the present invention may be a system, a method, and/or a computer program product.
  • the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
  • the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
  • the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • a network for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
  • FPGA field-programmable gate arrays
  • PLA programmable logic arrays
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures.
  • two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
  • FIG. 1 is a flowchart of an exemplary process for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention.
  • a process 100 for managing and/or optimizing operational parameters of a general HS, in particular a large HS comprising a large quantity of similar elements is executed through concurrent (parallel) optimization of portions (segments) of the HS.
  • the optimization process 100 may be regarded as a process for maximizing an objective function that reflects performance and/or quality of result produced by the HS.
  • the HS is first divided to the portions such that the portions are substantially independent from each other (weakly interacting parts), at least with respect to the optimized elements in each portion. As the portions are independent, the portions impose no and/or negligible constraint(s) on each other and may therefore be processed in parallel to optimize each of the portions.
  • the optimization process may be repeated until one or more optimization criteria are satisfied.
  • a system 200 includes an input/output (I/O) interface 202 for designating an HS defined by HS parameters 220 and/or outputting updated HS parameters 222, a processor(s) 204 comprising a plurality of processing cores 206 and a storage 208.
  • the I/O interface 202 may include one or more interfaces, for example, a network interface, a memory interface and/or a storage interface for connecting to the respective resource(s), i.e. network resources, memory resources and/or storage resources.
  • the I/O interface 202 may be used for designating, receiving and/or fetching the HS parameters 220 from, for example, the memory, the network, storage such as the storage 208 and/or the like. Similarly, the I/O interface 202 may be used for storing and/or transmitting the HS updated parameters 222 to, for example, the memory, the network, the storage 208 and/or the like.
  • the processor(s) 204 homogenous or heterogeneous, may be arranged for parallel processing, as clusters and/or as one or more multi core processor(s) each having one or more cores 206.
  • the core 206 may be, for example, a processor, a processing core, a thread, a processing node and/or the like.
  • the processor(s) 204 may comprise one or more distributed processing clusters each comprising one or more processing nodes with processors having one or more cores 206.
  • the distributed processing clusters may communicate with each other through one or more interfaces, for example, a network, a fabric, a direct interconnection, a link and/or the like, the processor(s) 204 may further include one or more vector processors each having multiple processing pipelines that may be considered as the processing cores 206 capable of independently executing program instructions.
  • the storage 208 may include one or more non-transitory persistent storage devices, for example, a hard drive, a Flash array and the like.
  • the storage 208 may further comprise one or more network storage devices, for example, a storage server, a network accessible storage (NAS) a network drive, and/or the like.
  • NAS network accessible storage
  • the optimization process 100 may be executed by one or more software modules, for example, an initializer 210, an updater 212, a splitter 214 and/or an optimizer 216 each comprising a plurality of program instructions executed by the processor(s) 204 and/or the processing cores 206 from the storage 208.
  • a software module refers to a plurality of program instructions stored in a non-transitory medium such as the storage 208 and executed by a processor such as the processor(s) 204 and/or the processing cores 206.
  • FIG. 3 is a schematic illustration of exemplary software modules and interaction for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention.
  • An initializer such as the initializer 210, an updater such as the updater 212 and/or a splitter such as the splitter 214 may be executed, for example, by one or more of the processor(s) 204.
  • a plurality of optimization processes such as the optimizer 216 processes may be each executed by a respective processing core such as the processing core 206.
  • the initializer 210 may receive HS parameters such as the HS parameters 220 and initialize the optimization process 100 for the updater 212.
  • the updater 212 controls the optimization process by adjusting the optimization parameters.
  • the splitter 214 may analyze the HS received from the initializer 210 to create an updated version of the HS such that the HS elements that are optimized are substantially independent of each other.
  • the splitter 214 may select non-overlapping portions of the updated HS version such that each of the optimized elements is independent from other optimized elements.
  • the splitter 214 may then distribute each of the non-overlapping portions to one of the plurality of optimizer 216 processes.
  • Each of the processing cores 206 executing the optimizer 216 processes its apportioned non-overlapping portion and provides the calculated results, i.e. optimized parameter(s) back to the splitter 214 that in turn provides them back to the updater 212.
  • the optimization process 100 is conducted through two iteration loops, an outer loop comprising one or more outer iterations and an inner loop comprising one or more inner iterations such that during each outer loop iteration a series of at least one inner loop iterations may take place.
  • the updater 212 controls the entire optimization process 100 by initiating the outer iterations during which the HS parameters are updated with the optimized parameter(s) provided by the optimizers 216 and/or with optimization parameters.
  • the updater 212 checks one or more optimization criteria after each of the iterations to determine effectivity of the optimization cycle. After the optimization criterion(s) are met, the updater 212 may provide HS updated parameters such as the HS updated parameters 222.
  • the splitter 212 controls the inner iteration(s) during which a plurality of portions of the HS are processed and/or optimized concurrently by the plurality of optimizer 216 processes.
  • the process 100 starts with the initializer 210 designating and/or receiving the HS parameters 220.
  • the HS parameters 220 may be received and/or designated in one or more formats, for example, a data file, a database, an abstract model and/or the like.
  • the HS parameters 220 describe the HS and may include one or more operational parameters of the HS, for example, HS structure, connected elements, operational parameters of the HS element(s) and/or the like.
  • the HS parameters 220 may further include parameters of the optimization process itself, for example, an objective function (optimization function), a correlation formula, an optimizing function, a number of processing cores 206, a unit size, a precision value, a threshold value and/or the like.
  • the unit size may designate an HS element size, for example, number of correlating (connecting) other elements, hierarchy level and/or the like such that only HS elements having elements size above the unit size are optimized during the process 100.
  • the precision value may indicate, for example, the precision and/or accuracy required for the overall optimization process 100 and/or for optimization of each of the HS parameters.
  • the initializer 210 may initialize the precision value to a minimum value, for example, 0.
  • the threshold value may indicate, for example, a correlation threshold value to filter correlation relations between corresponding (connected) elements of the HS.
  • the HS parameters 220 may include, for example, regulated parameters of the HS that may be optimized by the process 100, static parameters of the HS that may not be changed and/or dynamic parameters that are external to the HS and may affect the HS.
  • a wireless network may be considered an HS where the HS elements are, for example, sector antennas.
  • the regulated parameters may include, for example, power of antennas, tilt, height and/or azimuth of positioning of the antenna(s).
  • the static parameters may include, for example, the absolute range of the regulated parameters, absolute location of the infrastructure device(s) and/or the like.
  • the dynamic parameters may include, for example, a number of connected user equipment (UE) devices, wireless traffic volume and/or the like.
  • UE connected user equipment
  • a wired network may be considered an HS where the HS elements are, for example, network switches.
  • the regulated parameters may include, for example, bandwidth of the network switch(s).
  • the static parameters may include, for example, the absolute range of the regulated parameters such as the bandwidth and/or the like.
  • the dynamic parameters may include, for example, network traffic volume and/or the like.
  • a road network may be considered an HS where the HS elements are, for example, crossroads (with traffic lights).
  • the regulated parameters may include, for example, green light timing for traffic light(s).
  • the static parameters may include, for example, the absolute range of the regulated parameters such as the green light timing, i.e. maximum and/or minimum time of the green light timing.
  • the dynamic parameters may include, for example, vehicle traffic volume and/or the like.
  • the initializer 210 creates a weighted graph to represent the HS. This is done to create a general model of the HS in order to allow the process 100 to be a general-purpose process for managing and/or optimizing a variety of general HSs.
  • the initializer 210 processes the HS parameters 220 and creates the weighted graph representing the HS such that the graph includes vertexes equal to the number of elements in the HS. Each vertex in the graph corresponds to a respective HS element and each edge in the graph has a weight representing a correlation rank between correspondent (connected) elements (vertexes).
  • the initializer 210 puts all regulated, static and dynamic parameters of each element into the corresponding vertex.
  • the initializer 210 calculates a correlation weight for each edge connecting two vertexes in the graph based on the HS parameters 220 of the respective two vertexes. The initializer 210 may then provide the created weighted graph to the updater 212.
  • the updater 212 sets an optimization precision by setting a correlation threshold value indicating a minimum level of correlation between two respective vertexes (corresponding to HS elements) in the weighted graph.
  • the optimization process 100 may be performed through a plurality of outer iterations until one or more optimization criteria are satisfied, i.e., met. Following each outer iteration the updater 212 may update the threshold value to improve precision of the optimization process.
  • the updater 212 may initially set the threshold value with relatively low precision and gradually increase precision following each outer iteration to converge on the optimal HS updated parameters 222.
  • the updater 212 may control the optimization process 100 to continue until the precision value reaches a maximum predefined value.
  • the updater 212 transfers the weighted graph to the splitter 214 together with the updated correlation threshold.
  • the splitter 214 updates a version of the weighted graph by creating a reduced graph from the weighted graph according to the updated threshold value such that the reduced graph is less complex allowing division of the graph to subgraphs.
  • the splitter 214 may create the reduced graph by identifying dominant connections (edges) among the vertexes in the weighted graph and removing all edges with values below the updated threshold value.
  • FIG. 4 is a schematic illustration of exemplary reduced graphs created from an exemplary weighted graph, according to some embodiments of the present invention.
  • a weighted graph 402 comprising vertexes 502A, 502B, 502C, 502D, 502E and 502F is processed by a splitter such as the splitter 214 to create one or more reduced graphs 404, for example, 404A, 404B and/or 404C.
  • the splitter 214 may evaluate the edges in the weighted graph and remove every edge having a value (correlation rank) below the threshold defined in the HS parameters 220, i.e. the connection (correlation) between the corresponding two vertexes (elements) is substantially weak.
  • the reduced graphs 404 may therefore include only the edges that represent substantially strong connection (correlation) between respective vertexes (HS elements).
  • the reduced graphs 404 are created at the beginning of each of the outer iterations according to the updated correlation threshold value. For example, the reduced graph 404A is created with an initial threshold value, the reduced graph 404B is created with an updated threshold value adjusted (reduced) according to an increased optimization precision value and the reduced graph 404C is created with an updated threshold value adjusted (further reduced) according to a further increased optimization precision.
  • the correlation formula may be, for example, 1 divided by the distance between the antennas (HS elements) such that in case the threshold value is, for example, 0.1 KM "1 (i.e. distance 10 kilometer), any edge indicating a distance larger than 10 KM between two respective vertexes (antennas) is removed.
  • the splitter 214 designates a subset of units that are vertex(s) (corresponding to respective HS element(s)) optimized by the process 100.
  • the splitter 214 designates the subset of units according to the unit size defined by the HS parameters 220 where the units are the vertex(s) having element size value equal to the unit size.
  • the unit size defines minimum connecting edges
  • every vertex having at least one connecting edge is optimized during the process 100, i.e. all vertexes of the reduced graph 404.
  • the splitter 214 For each unit of the subset, the splitter 214 identifies subgraphs in the reduced graph such that each of the subgraphs is associated with a respective one of the units (optimized vertexes) in the subset and includes all the vertexes (nodes) connected to the respective unit.
  • FIG. 5 is a schematic illustration of subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention.
  • a splitter such as the splitter 214 identifies a plurality of subgraphs 504A, 504B, 504C, 504D, 504E and 504F.
  • the splitter 214 designates the subgraphs 502A-502F such that each of subgraphs 502A-502F is associated with a respective unit (optimized vertexes) and includes all vertexes connected to the unit. For example, the splitter 214 designates the subgraph 504A for the unit 502A to include the unit 502A and the connecting vertexes 502B and 502F. Similarly, the splitter 214 designates the subgraph 504B for the unit 502B to include the unit 502B and the connecting vertexes 502A and 502C. In the same way, the splitter 214 designates the other subgraphs 504C, 504D, 504E and 504F.
  • the splitter 214 identifies one or more splits of the reduced graph each comprising a set of non- overlapping subgraphs.
  • FIG. 6 is a schematic illustration of non- overlapping subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention.
  • a splitter such as the splitter 214 identifies and selects one or more alternative splits of the 602A, 602B and/or 602C each comprising a set of non-overlapping subgraphs such as the subgraphs 502A through 502F.
  • the splitter 214 selects the splits 602 sets such that each unit (optimized vertex) is associated with a subgraph and the subgraphs are not overlapping each other, i.e. have no common vertexes (HS elements).
  • the splitter 214 may designate the alternative split 602A by selecting the subgraph 504A for a unit 502A that comprises in addition vertexes 502B and 502F and the subgraph 504D for a unit 502D comprising vertexes 502C and 502E.
  • the subgraphs 504A and 504D are not overlapping since they do not share any vertexes.
  • the splitter may designate the alternative split 602B by selecting the subgraphs 504C and 504E and/or the alternative split 602C by selecting the subgraphs 504B and 504F that are non- overlapping subgraphs. In such way, on the basis of the selected subgraphs, the alternative splits 602 may be produced by brute force search.
  • FIG. 7 is a schematic illustration of a homogeneous system embodiment of an exemplary wired network divided to non- overlapping subgraphs, according to some embodiments of the present invention.
  • An HS 700 presents an exemplary wired network comprising a plurality of networking switches (HS elements) connecting a plurality of network nodes divided to four points of delivery (POD) 704A, 704B, 704C and 704D.
  • the switches are connected to each other and the optimization objective may be routing the network traffic such that an average traffic volume goes through each of the switches.
  • the wired network 700 may be transformed to a weighted graph by an initializer such as the initializer 210 and transformed to a reduced graph by an updater such as the updater 212 using the threshold value provided to the initializer 210.
  • the updater 212 may identify subgraphs in the reduced graph such that each unit (optimized vertex) is associated with a subgraph.
  • a splitter such as the splitter 214 may then select one or more subgraphs such as a subgraph 706A and/or a subgraph 706B.
  • the subgraph 706A is selected for a unit 702F and comprises vertexes 702C, 702B, 702J and 7021.
  • the subgraph 706B is selected for a unit 702E and comprises vertexes 702A, 702D, 702G and 702H.
  • the subgraph 706A and subgraph 706B do not share any vertex and are therefore non-overlapping.
  • FIG. 8 is a schematic illustration of a homogeneous system embodiment of an exemplary wireless network antenna coverage area divided to non-overlapping subgraphs, according to some embodiments of the present invention.
  • An HS 800 presents an exemplary wireless network comprising a plurality of coverage sectors 802A through 802L each provided by a plurality of antennas (HS elements). The same process applied to the system 700 may be applied to the system 800 for the objective of positioning the antennas in the area to maximize an average level of radio signal.
  • a splitter such as the splitter 214 may select one or more subgraphs such as a subgraph 804A and/or a subgraph 804B.
  • the subgraph 804A is selected for a unit 802C and comprises vertexes 802C, 802A, 802B, 802D, 802E and 802F.
  • the subgraph 2 804B is selected for a unit 802J and comprises vertexes 802G, 8021, 802H, 802K and 802L.
  • the subgraph 804A and subgraph 804B do not share any vertex and are therefore non-overlapping.
  • FIG. 9 is a schematic illustration of a homogeneous system embodiment of an exemplary road network divided to non- overlapping subgraphs, according to some embodiments of the present invention.
  • An HS 900 presents an exemplary road network comprising a plurality of crossroads 902A through 902J (HS elements) connected to each other.
  • the same process applied to the system 700 may be applied to the system 900 for the objective of adjusting a green light period in traffic lights located at the crossroads to direct vehicles traffic such that an average traffic volume goes through each of the crossroads and/or no traffic jams are accumulated at the crossroads.
  • a splitter such as the splitter 214 may select one or more subgraphs such as a subgraph 904A and/or a subgraph 904B.
  • the subgraph 904 A is selected for a unit 902B and comprises vertexes 902A, 902C, 902D and 902E.
  • the subgraph 904B is selected for a unit 902G and comprises vertexes 902H, 9021, 902F and 902J.
  • the subgraph 904A and subgraph 904B do not share any vertex and are therefore non-overlapping.
  • the splitter 214 selects one of the alternative splits each comprising a set of subgraphs identified in the reduced graph. During each of one or more inner iterations, the splitter 214 may select an alternate split comprising the set of non-overlapping subgraphs. Where the inner iteration refers to an iteration initiated and controlled by the splitter 214 to optimize non-overlapping subgraphs identified in a given reduced graph.
  • the outer iteration(s) on the other hand are controlled by the updater 212 that updates the correlation threshold such that the splitter 214 creates a new (updated version) reduced graph that is processed through the one or more inner iterations. Therefore, a series of at least one inner loop iteration may take place during each of the outer loop iterations.
  • the splitter 214 apportions (distributes) the non-overlapping subgraphs to the plurality of optimizer 216 processes each executed by a respective one of the processing cores 206.
  • the splitter 214 may execute a plurality of the inner iterations during which the splitter 214 apportions to the optimizers 216 all possible non-overlapping subgraphs identified in the reduced graph.
  • the splitter 214 forwards another (alternative) split such as the split 602 comprising the set of the non-overlapping subgraphs identified in the reduced graph to the optimizer 216 processes.
  • the splitter 214 may update one or more of the HS parameters (vertexes) with improved parameters identified during previous local iteration(s).
  • the splitter 214 may continue the inner iterations until the optimization performed by the optimizer 216 processes is no longer efficient, i.e. the optimization results in the current inner iteration do not present an improvement compared to the previous inner iteration.
  • the improvement may be measured as an absolute improvement and/or with a predefined minimum increase of quality. Additionally and/or alternatively, the splitter 214 may continue the inner iterations until a predefined time-period for the inner iterations and/or a predefined number of inner iterations are exceeded.
  • the alternate splits 602 are optimized during the inner loop iterations.
  • the alternate splits may be relatively equal with respect to quantity, quality and/or correlation of the HS elements within the reduced subgraph. Therefore, in case one of the alternate splits does not present an improvement of the optimization, the probability that other splits of the same reduced subgraph will provide an improvement may be relatively low. Repeating the iterations of the inner loop over all alternate splits may therefore not present significant improvement.
  • the plurality of optimizer 216 processes concurrently process the non-overlapping subgraphs, each optimizing its respective non-overlapping subgraph. Due to the homogeneous nature of the HS, the optimizer 216 processes may all apply the same objective function (optimization function) to the non-overlapping subgraphs.
  • the optimizer 216 processes may employ one or more of a plurality of objective functions such as, for example, Tabu Search or Simulated Annealing.
  • a pseudo code excerpt 1 presents an exemplary optimization implementation of the Tabu Search objective function.
  • step maxStep * (1 -precision)
  • step maxStep * (1 -precision)
  • T is standard temperature parameter of Simulated Annealing technique
  • E and P are energy and acceptance functions of Simulated Annealing technique, correspondently.
  • the objective function may be, for example, an average level of radio signal at each area.
  • the objective function may be, for example, an average traffic volume at each switch or crossroad respectively.
  • the splitter 214 collects the calculation results, i.e. optimized parameters from the optimizer 216 processes and forwards the results to the updater 212. As discussed before, the splitter 214 may initiate the inner loop iterations to explore all alternate splits 602 of the reduced subgraph or the splitter 214 may reduce the count of the inner loop iterations by initiating the inner loop over only part of the alternate splits 602.
  • the splitter 214 determines a termination criterion to be an effectiveness score of the optimization, for example, whether the optimization satisfies one or more optimization criteria.
  • the process 100 branches to step 1 18, otherwise - the process 100 branches to step 1 12 and another optimization iteration is initialized over another alternative split.
  • the effectiveness score i.e. the optimization criterion(s) may simply be, whether the optimization process 100 is no longer efficient, i.e. the optimization results of the current optimization iteration do not present an improvement compared to the previous optimization iteration.
  • the optimization improvement may be measured as an absolute improvement and/or with a predefined minimum increase of quality.
  • termination criteria may be used as well, such as a predefined time-period or a predefined number of iterations. That is, the updater 212 may continue the optimization iterations until a predefined time-period for the optimization process 100 and/or a predefined number of optimization iterations are exceeded.
  • the updater 212 determines whether the precision value is maximal. In case the precision value is not maximal, process 100 branches to step 106 and another iteration is initiated. In case the precision value is maximal, for example, 1 , the process 100 branches to step 120.
  • the updater 212 may update the HS parameters (as reflected in the vertexes) with the optimized parameters calculated during the previous optimization iteration(s).
  • the updated parameters may include, for example, updated antenna(s) positioning parameters such as tilt, height and/or azimuth and/or updated antenna(s) transmission power.
  • the updated parameters may include, for example, updated settings for the bandwidth of the network switch(s).
  • the updated parameters may include, for example, updated settings for the green light timing for traffic light(s).
  • the updater 212 may update (increase) the values of precision and correlation threshold to allow the splitter 214 to achieve higher precision for the reduced graph in representing the HS since more edges are removed.
  • the iterative process thus starts with relatively low precision to identify rough initial optimization values and/or range and gradually increase the precision while updating the HS parameters with newly optimized values to achieve fast convergence to the optimal HS updated parameters 222.
  • the updater 212 provides the HS updated parameters 222.
  • the HS updated parameters are selected such that each updated parameter may be selected from a different optimization iteration in order to select the best optimized parameter for each of the HS elements.
  • the updater 212 may provide the HS updated parameters 222 through the I/O interface 202, in the form of a file, a graph, a database and/or an abstracted model.
  • the updater 212 may store the HS updated parameters 222 in the storage 208 and/or transmit the HS updated parameters 222 to one or more network nodes over one or more networks connected to the I/O interface 202.
  • FIG. 10 is a schematic illustration of an exemplary flow of a process for optimizing resources of an HS using two cores (threads), according to some embodiments of the present invention.
  • An exemplary process 100A such as the process 100 executed by a system 200A such as the system 200 employs two threads 206 A and 206B such as the cores 206 for optimizing an HS.
  • the process 100A follows the steps of the process 100 as described herein above.
  • An initializer such as the initializer 210 creates a weighted graph 402 A such as the weighted graph 402 according to received HS parameters such as the HS parameters 220.
  • An updater such as the updater 212 receives the graph 402A and adjusts a correlation threshold value according to one or more optimization parameters, for example, a precision.
  • a splitter such as the splitter 214 creates a reduced graph 404D by removing from the graph 402A edges that are below the threshold value set by the updater 212. The splitter 214 may then identify non-overlapping subgraphs, for example, 602D, 602E and/or 602F in the reduced graph 404D. The splitter 214 distributes the non-overlapping subgraphs to the two threads 206A and 206B each executing an optimizer process such as the optimizer 216 to optimize the units (vertexes) associated with the respective non-overlapping subgraphs.
  • the splitter 214 may initiate multiple inner iterations, for example, three.
  • the alternative split 602D is optimized where the splitter 214 assigns the non-overlapping subgraph 504G to the thread 206A and the non-overlapping subgraph 504H to the thread 206B.
  • the splitter 214 initiates a 2 nd inner iteration cycle in which the alternative split 602E is selected for optimization.
  • the splitter 214 assigns the non-overlapping subgraph 5041 to the thread 206A and the non-overlapping subgraph 504J to the thread 206B.
  • the splitter 214 may update one or more of the optimized units (vertexes corresponding to HS elements) such that the updated vertexes are used for the following inner iteration.
  • the updater 212 may initiate another outer iteration by adjusting the correlation threshold value with a higher precision value.
  • the splitter 214 may create an updated version of the reduced graph by removing edges according to the adjusted threshold value.
  • the updater may control the process 100A to repeat until the one or more optimization criteria are met. Prior to each outer iteration, the updater 212 may update one or more of the graph vertexes with the most optimized values such that the following outer iteration is performed using the most optimal HS parameters values identified during previous iterations. After the optimization is complete, the updater 212 may provide HS updated parameters such as the HS updated parameters 222.
  • FIG. 1 1 is a schematic illustration of an exemplary embodiment of a system for optimizing resources of an HS, according to some embodiments of the present invention.
  • a system 200B such as the system 200 for executing an optimization process such as the process 100 includes an initializer such as the initializer 210, an updater such as the updater 212, a splitter such as the splitter 214 and a plurality of optimizer processes such as the optimizer 216 process.
  • the initializer 210 receives HS parameters such as the HS parameters 220 and creates a weighted graph representing the HS such that each vertex represents a respective HS element and every two vertexes are connected with a weighted edge representing the correlation between the respective two HS elements.
  • the initializer 210 may transfer the weighted graph to the updater 212 along with one or more optimization parameters, for example, a precision value.
  • the precision value may be set initially to a relatively low precision value, for example, 0 to allow the optimization process 100 to first identify a rough optimization range and gradually converge to the optimal HS parameters within the range.
  • the updater 212 may update the precision value prior to each outer iteration where the precision value may be used to adjust the correlation threshold value.
  • the correlation threshold value may be gradually increased such that the reduced graph created by the splitter 214 includes less edges and becomes more and more accurate with respect to the original weighted graph (representing the HS) during each additional outer iteration.
  • the updater 212 may increase the precision value up to a predefined maximum precision value, for example, 1.
  • the updater 212 may update one or more of the graph vertexes with the most optimal HS parameter values identified during previous iterations.
  • the updater 212 may repeat the optimization cycle until the one or more optimization criteria are satisfied.
  • the updater 212 may provide HS updated parameters such as the HS updated parameters 222.
  • composition or method may include additional ingredients and/or steps, but only if the additional ingredients and/or steps do not materially alter the basic and novel characteristics of the claimed composition or method.
  • a compound or “at least one compound” may include a plurality of compounds, including mixtures thereof.
  • range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1 , 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.

Abstract

A system of managing resources of a homogenous system (HS) comprising a memory storing a graph representing the HS, the graph comprises vertexes connected by edges, each vertex corresponds to a HS element and each edge has weight defining a rank of correlation between a pair of the HS elements and a processor adapted to identify a plurality of alternative splits of the graph, each comprising non-overlapping subgraphs of the graph and to perform, in each of a plurality of iterations: selecting one of the alternative splits, apportioning each of the non-overlapping subgraphs of the selected alternative split to one of a plurality of processes, executing in parallel the plurality of processes, wherein said plurality of iterations are repeated until a termination criterion is met.

Description

PARALLEL OPTIMIZATION OF HOMOGENEOUS SYSTEMS
BACKGROUND
The present invention, in some embodiments thereof, relates to managing and/or optimizing operational parameters of a homogeneous systems (HS) and, more specifically, but not exclusively, to managing and/or optimizing operational parameters of an HS through concurrent (parallel) optimization of portions (segments) of the HS.
In modern industry, especially in the sphere of informational technologies, more and more types of systems with uniform elements are created. Such HS are evolving with increasing speed and therefore general methods of optimization of HS are becoming highly important. The HS that may be either artificial HS and/or physical HS is typically represented by network. An artificial HS, for example, in the field of informational technologies may include, for example, mobile networks, wired and/or wireless Internet, network of switches in a datacenter, artificial neural network and/or the like. A physical HS may be networks transferring physical objects such as, for example, road networks, pipe networks, cardiovascular system(s) of human organism and/or the like.
An optimization of the HS may be described as maximizing of an objective function that may reflect the HS performance and/or quality of produced result.
SUMMARY
According to an aspect of some embodiments of the present invention there is provided a system of managing resources of a homogenous system (HS), comprising a memory and a processor. The memory is adapted to store a graph representing the HS, the graph comprises a plurality of vertexes connected by a plurality of edges, each vertex corresponds to one of a plurality of elements of the HS and each edge has weight defining a rank of correlation between a pair of the plurality of HS elements. The processor is adapted to identify a plurality of alternative splits of the graph each comprising a plurality of non-overlapping subgraphs of the graph and to perform, in each of a plurality of iterations:
- Selecting one of the plurality of alternative splits.
Apportioning each of the plurality of non-overlapping subgraphs of the selected alternative split to one of a plurality of processes. Executing in parallel the plurality of processes according to the apportioning. Wherein the plurality of iterations are repeated until a termination criterion is met.
The apportioning comprises allocating a plurality of computation cores according to said plurality of non-overlapping subgraphs.
Preferably, the termination criterion is based on an estimation of an effectiveness score of said plurality of non-overlapping subgraphs of said selected alternative split according to an outcome of an optimizing function.
The processor is adapted to create an updated version of the graph by filtering the plurality of edges according to a correlation thresholds. The plurality of alternative splits are identified in the updated version to be optimized during one or more another series of iterations comprising at least one of said plurality of iterations.
The processor is adapted to adjust the correlation threshold following the one or more series of iterations to increase a precision value indicative of an accuracy of the updated version of the graph.
The processor is adapted to calculate the correlation weight for each of the plurality of edges on a basis of parameters in connected vertices.
The processor is adapted to identify a subset of the plurality of vertexes according to one or more size threshold, each one of the plurality of non-overlapping subgraphs comprises one member of the subset.
The processor is adapted to update one or more of the plurality of vertexes with an updated value calculated during one or more previous iterations of the plurality of iterations.
According to an aspect of some embodiments of the present invention there is provided a method of managing resources of a homogenous system (HS), said method comprising
Receiving a graph representing an HS. The graph comprises a plurality of vertexes connected by a plurality of edges. Each vertex corresponds to one of a plurality of elements of the HS and each edge has weight defining a rank of correlation between a pair of the plurality of HS elements.
- Identifying a plurality of alternative splits of the graph. Each of the plurality of alternative splits comprising a plurality of non-overlapping subgraphs of the graph.
Performing, in each of a plurality of iterations, the following: Selecting one of the plurality of alternative splits.
Apportioning each of the plurality of non-overlapping subgraphs of the selected alternative split to one of a plurality of processes.
Executing in parallel the plurality of processes according to the apportioning.
Wherein the plurality of iterations are repeated until a termination criterion is met. Preferably, the termination criterion is based on an estimation of an effectiveness score of said plurality of non-overlapping subgraphs of said selected alternative split according to an outcome of an optimizing function.
Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
In the drawings:
FIG. 1 is a flowchart of an exemplary process for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention;
FIG. 2 is a schematic illustration of an exemplary system for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention;
FIG. 3 is a schematic illustration of exemplary software modules and interaction for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention;
FIG. 4 is a schematic illustration of exemplary reduced graphs created from an exemplary weighted graph, according to some embodiments of the present invention;
FIG. 5 is a schematic illustration of subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention;
FIG. 6 is a schematic illustration of non-overlapping subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention;
FIG. 7 is a schematic illustration of a homogeneous system embodiment of an exemplary wired network divided to non-overlapping subgraphs, according to some embodiments of the present invention;
FIG. 8 is a schematic illustration of a homogeneous system embodiment of an exemplary wireless network antenna coverage area divided to non-overlapping subgraphs, according to some embodiments of the present invention;
FIG. 9 is a schematic illustration of a homogeneous system embodiment of an exemplary road network divided to non-overlapping subgraphs, according to some embodiments of the present invention;
FIG. 10 is a schematic illustration of an exemplary flow of a process for optimizing resources of an HS using two cores (threads), according to some embodiments of the present invention; and
FIG. 1 1 is a schematic illustration of an exemplary embodiment of a system for optimizing resources of an HS, according to some embodiments of the present invention.
DETAILED DESCRIPTION
The present invention, in some embodiments thereof, relates to managing and/or optimizing operational parameters of an HS and, more specifically, but not exclusively, to managing and/or optimizing operational parameters of an HS through concurrent (parallel) optimization of portions (segments) of the HS.
The invention presents systems and methods for managing and/or optimizing operational parameters of a general HS, in particular a large HS comprising a large quantity of similar elements by dividing (splitting) the HS to substantially independent portions that may weakly interact with each other and optimize the independent portions concurrently using a plurality of processing cores. The HS is first converted to a weighted graph comprising a plurality of vertexes each associated with a corresponding HS element and edges connecting the vertexes. The vertexes and edges represent the HS elements and the correlation between the HS elements. The weighted graph is created using data derived from the HS parameters. The weighted graph is then reduced by removing some of the edges to represent the dominant (strong) correlations between the HS elements and remove substantially weak correlations. For each HS element that is optimized a subgraph is identified for the respective vertex. Non-overlapping subgraphs are selected from the subgraphs where the non- overlapping subgraphs do not share vertexes (HS elements). Since the non-overlapping subgraphs are mostly independent of each other they may be optimized separately and concurrently by one or more processing cores. The optimization process may be done through a plurality of iterations controlled by a central processor that monitors the optimization results and may determine a desired optimization level and/or accuracy. During each optimization iteration a different set of non-overlapping subgraphs may be selected and an optimized value may be identified and assigned to each of the HS parameters for the following iteration.
HS optimization using multiple processing cores for concurrent optimization of portions of the HS may present significant advantages compared to existing optimization methods. First, the method is directed to optimize different types of HS each having its specific parameters and/or features, for example, HS type, HS structure, HS elements, objective (optimization) function and/or the like. As opposed to the existing optimization methods that may be HS dependent, by creating an abstract weighted graph representing the HS and translating the HS parameters to vertexes and weighted edges, multiple HS types may be managed and/or optimized in a similar manner. Moreover, by identifying non-overlapping portions of the HS that are substantially independent of each other, each of the portions may be optimized independently and thus all portions may be optimized concurrently using one or more processing cores. Taking advantage of the rapidly evolving multi-core and/or multi- threading technologies may significantly reduce the optimization time compared to the currently existing optimization methods that may operate serially due to interdependence among the HS elements. Furthermore, by controlling and/or regulating the optimized (updated) HS parameters the optimization convergence to optimal HS parameters may be rapidly reached since the optimization involves multiple iterations. The optimization may start using a relatively low optimization goal and gradually improve the optimization goal while the HS parameters may be updated on the fly following each iteration with new parameters calculated in the recent iteration.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
Reference is now made to FIG. 1 , which is a flowchart of an exemplary process for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention. A process 100 for managing and/or optimizing operational parameters of a general HS, in particular a large HS comprising a large quantity of similar elements is executed through concurrent (parallel) optimization of portions (segments) of the HS. The optimization process 100 may be regarded as a process for maximizing an objective function that reflects performance and/or quality of result produced by the HS. The HS is first divided to the portions such that the portions are substantially independent from each other (weakly interacting parts), at least with respect to the optimized elements in each portion. As the portions are independent, the portions impose no and/or negligible constraint(s) on each other and may therefore be processed in parallel to optimize each of the portions. The optimization process may be repeated until one or more optimization criteria are satisfied.
Reference is also made to FIG. 2, which is a schematic illustration of an exemplary system for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention. A system 200 includes an input/output (I/O) interface 202 for designating an HS defined by HS parameters 220 and/or outputting updated HS parameters 222, a processor(s) 204 comprising a plurality of processing cores 206 and a storage 208. The I/O interface 202 may include one or more interfaces, for example, a network interface, a memory interface and/or a storage interface for connecting to the respective resource(s), i.e. network resources, memory resources and/or storage resources. The I/O interface 202 may be used for designating, receiving and/or fetching the HS parameters 220 from, for example, the memory, the network, storage such as the storage 208 and/or the like. Similarly, the I/O interface 202 may be used for storing and/or transmitting the HS updated parameters 222 to, for example, the memory, the network, the storage 208 and/or the like. The processor(s) 204, homogenous or heterogeneous, may be arranged for parallel processing, as clusters and/or as one or more multi core processor(s) each having one or more cores 206. The core 206 may be, for example, a processor, a processing core, a thread, a processing node and/or the like. The processor(s) 204 may comprise one or more distributed processing clusters each comprising one or more processing nodes with processors having one or more cores 206. The distributed processing clusters may communicate with each other through one or more interfaces, for example, a network, a fabric, a direct interconnection, a link and/or the like, the processor(s) 204 may further include one or more vector processors each having multiple processing pipelines that may be considered as the processing cores 206 capable of independently executing program instructions. The storage 208 may include one or more non-transitory persistent storage devices, for example, a hard drive, a Flash array and the like. The storage 208 may further comprise one or more network storage devices, for example, a storage server, a network accessible storage (NAS) a network drive, and/or the like.
The optimization process 100 may be executed by one or more software modules, for example, an initializer 210, an updater 212, a splitter 214 and/or an optimizer 216 each comprising a plurality of program instructions executed by the processor(s) 204 and/or the processing cores 206 from the storage 208. Wherein a software module refers to a plurality of program instructions stored in a non-transitory medium such as the storage 208 and executed by a processor such as the processor(s) 204 and/or the processing cores 206.
Reference is now made to FIG. 3, which is a schematic illustration of exemplary software modules and interaction for optimizing resources of a homogeneous system using multiple processing cores, according to some embodiments of the present invention. An initializer such as the initializer 210, an updater such as the updater 212 and/or a splitter such as the splitter 214 may be executed, for example, by one or more of the processor(s) 204. A plurality of optimization processes such as the optimizer 216 processes may be each executed by a respective processing core such as the processing core 206. The initializer 210 may receive HS parameters such as the HS parameters 220 and initialize the optimization process 100 for the updater 212. The updater 212 controls the optimization process by adjusting the optimization parameters. The splitter 214 may analyze the HS received from the initializer 210 to create an updated version of the HS such that the HS elements that are optimized are substantially independent of each other. The splitter 214 may select non-overlapping portions of the updated HS version such that each of the optimized elements is independent from other optimized elements. The splitter 214 may then distribute each of the non-overlapping portions to one of the plurality of optimizer 216 processes. Each of the processing cores 206 executing the optimizer 216 processes its apportioned non-overlapping portion and provides the calculated results, i.e. optimized parameter(s) back to the splitter 214 that in turn provides them back to the updater 212. The optimization process 100 is conducted through two iteration loops, an outer loop comprising one or more outer iterations and an inner loop comprising one or more inner iterations such that during each outer loop iteration a series of at least one inner loop iterations may take place. The updater 212 controls the entire optimization process 100 by initiating the outer iterations during which the HS parameters are updated with the optimized parameter(s) provided by the optimizers 216 and/or with optimization parameters. The updater 212 checks one or more optimization criteria after each of the iterations to determine effectivity of the optimization cycle. After the optimization criterion(s) are met, the updater 212 may provide HS updated parameters such as the HS updated parameters 222. The splitter 212 controls the inner iteration(s) during which a plurality of portions of the HS are processed and/or optimized concurrently by the plurality of optimizer 216 processes.
Reference is made once again to FIG. 1. As shown at 102, the process 100 starts with the initializer 210 designating and/or receiving the HS parameters 220. The HS parameters 220 may be received and/or designated in one or more formats, for example, a data file, a database, an abstract model and/or the like. The HS parameters 220 describe the HS and may include one or more operational parameters of the HS, for example, HS structure, connected elements, operational parameters of the HS element(s) and/or the like. The HS parameters 220 may further include parameters of the optimization process itself, for example, an objective function (optimization function), a correlation formula, an optimizing function, a number of processing cores 206, a unit size, a precision value, a threshold value and/or the like. The unit size may designate an HS element size, for example, number of correlating (connecting) other elements, hierarchy level and/or the like such that only HS elements having elements size above the unit size are optimized during the process 100. The precision value may indicate, for example, the precision and/or accuracy required for the overall optimization process 100 and/or for optimization of each of the HS parameters. The initializer 210 may initialize the precision value to a minimum value, for example, 0. The threshold value may indicate, for example, a correlation threshold value to filter correlation relations between corresponding (connected) elements of the HS.
The HS parameters 220 may include, for example, regulated parameters of the HS that may be optimized by the process 100, static parameters of the HS that may not be changed and/or dynamic parameters that are external to the HS and may affect the HS.
For example, a wireless network may be considered an HS where the HS elements are, for example, sector antennas. The regulated parameters may include, for example, power of antennas, tilt, height and/or azimuth of positioning of the antenna(s). The static parameters may include, for example, the absolute range of the regulated parameters, absolute location of the infrastructure device(s) and/or the like. The dynamic parameters may include, for example, a number of connected user equipment (UE) devices, wireless traffic volume and/or the like.
As another example, a wired network may be considered an HS where the HS elements are, for example, network switches. The regulated parameters may include, for example, bandwidth of the network switch(s). The static parameters may include, for example, the absolute range of the regulated parameters such as the bandwidth and/or the like. The dynamic parameters may include, for example, network traffic volume and/or the like.
As another example, a road network may be considered an HS where the HS elements are, for example, crossroads (with traffic lights). The regulated parameters may include, for example, green light timing for traffic light(s). The static parameters may include, for example, the absolute range of the regulated parameters such as the green light timing, i.e. maximum and/or minimum time of the green light timing. The dynamic parameters may include, for example, vehicle traffic volume and/or the like.
As shown at 104, the initializer 210 creates a weighted graph to represent the HS. This is done to create a general model of the HS in order to allow the process 100 to be a general-purpose process for managing and/or optimizing a variety of general HSs. The initializer 210 processes the HS parameters 220 and creates the weighted graph representing the HS such that the graph includes vertexes equal to the number of elements in the HS. Each vertex in the graph corresponds to a respective HS element and each edge in the graph has a weight representing a correlation rank between correspondent (connected) elements (vertexes). The initializer 210 puts all regulated, static and dynamic parameters of each element into the corresponding vertex. Using the correlation formula, the initializer 210 calculates a correlation weight for each edge connecting two vertexes in the graph based on the HS parameters 220 of the respective two vertexes. The initializer 210 may then provide the created weighted graph to the updater 212.
As shown at 106, the updater 212 sets an optimization precision by setting a correlation threshold value indicating a minimum level of correlation between two respective vertexes (corresponding to HS elements) in the weighted graph. The optimization process 100 may be performed through a plurality of outer iterations until one or more optimization criteria are satisfied, i.e., met. Following each outer iteration the updater 212 may update the threshold value to improve precision of the optimization process. The updater 212 may initially set the threshold value with relatively low precision and gradually increase precision following each outer iteration to converge on the optimal HS updated parameters 222. The updater 212 may control the optimization process 100 to continue until the precision value reaches a maximum predefined value.
The updater 212 transfers the weighted graph to the splitter 214 together with the updated correlation threshold.
As shown at 108, the splitter 214 updates a version of the weighted graph by creating a reduced graph from the weighted graph according to the updated threshold value such that the reduced graph is less complex allowing division of the graph to subgraphs. The splitter 214 may create the reduced graph by identifying dominant connections (edges) among the vertexes in the weighted graph and removing all edges with values below the updated threshold value.
Reference is now made to FIG. 4, which is a schematic illustration of exemplary reduced graphs created from an exemplary weighted graph, according to some embodiments of the present invention. A weighted graph 402 comprising vertexes 502A, 502B, 502C, 502D, 502E and 502F is processed by a splitter such as the splitter 214 to create one or more reduced graphs 404, for example, 404A, 404B and/or 404C. The splitter 214 may evaluate the edges in the weighted graph and remove every edge having a value (correlation rank) below the threshold defined in the HS parameters 220, i.e. the connection (correlation) between the corresponding two vertexes (elements) is substantially weak. The reduced graphs 404 may therefore include only the edges that represent substantially strong connection (correlation) between respective vertexes (HS elements). The reduced graphs 404 are created at the beginning of each of the outer iterations according to the updated correlation threshold value. For example, the reduced graph 404A is created with an initial threshold value, the reduced graph 404B is created with an updated threshold value adjusted (reduced) according to an increased optimization precision value and the reduced graph 404C is created with an updated threshold value adjusted (further reduced) according to a further increased optimization precision.
To continue the previous examples, for the wireless network, the correlation formula may be, for example, 1 divided by the distance between the antennas (HS elements) such that in case the threshold value is, for example, 0.1 KM"1 (i.e. distance 10 kilometer), any edge indicating a distance larger than 10 KM between two respective vertexes (antennas) is removed. For the wired network, the correlation formula may be, for example, 1 divided by 1 plus a minimal number of switches (HS elements) connected between two respective vertexes (switches). In case, for example, the minimal number of switches connected between two respective switches is set to 4, the threshold value is set to 1/(1+4) = 0.2. Any edge in the weighted graph that is larger than the threshold value is removed from the graph. The same may be applied to the road network with the threshold defined for minimum number of crossroads located between every two respective crossroads.
Reference is made once again to FIG. 1. As shown at 1 10, the splitter 214 designates a subset of units that are vertex(s) (corresponding to respective HS element(s)) optimized by the process 100. The splitter 214 designates the subset of units according to the unit size defined by the HS parameters 220 where the units are the vertex(s) having element size value equal to the unit size. For example, for a reduced graph such as the reduced graph 404, assuming the unit size defines minimum connecting edges, in case the unit size is, for example 1 , every vertex having at least one connecting edge is optimized during the process 100, i.e. all vertexes of the reduced graph 404. For each unit of the subset, the splitter 214 identifies subgraphs in the reduced graph such that each of the subgraphs is associated with a respective one of the units (optimized vertexes) in the subset and includes all the vertexes (nodes) connected to the respective unit.
Reference is now made to FIG. 5, which is a schematic illustration of subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention. Assuming the unit size is set such that all vertexes such as the vertexes 502A, 502B, 502C, 502D, 502E and 502F in a reduced graph such as the reduced graph 404B are units to be optimized, a splitter such as the splitter 214 identifies a plurality of subgraphs 504A, 504B, 504C, 504D, 504E and 504F. The splitter 214 designates the subgraphs 502A-502F such that each of subgraphs 502A-502F is associated with a respective unit (optimized vertexes) and includes all vertexes connected to the unit. For example, the splitter 214 designates the subgraph 504A for the unit 502A to include the unit 502A and the connecting vertexes 502B and 502F. Similarly, the splitter 214 designates the subgraph 504B for the unit 502B to include the unit 502B and the connecting vertexes 502A and 502C. In the same way, the splitter 214 designates the other subgraphs 504C, 504D, 504E and 504F.
Reference is made once again to FIG. 1. As shown at 11 1, the splitter 214 identifies one or more splits of the reduced graph each comprising a set of non- overlapping subgraphs. Naturally, there may be more than one split of non-overlapping subgraphs that may be processed to identify optimal values for the vertexes (Hs elements). Since the non-overlapping subgraphs are substantially independent from each other, the non-overlapping subgraphs may be processed and/or optimized concurrently (i.e. simultaneously or in parallel).
Reference is now made to FIG. 6, which is a schematic illustration of non- overlapping subgraphs identified within an exemplary reduced graph, according to some embodiments of the present invention. A splitter such as the splitter 214 identifies and selects one or more alternative splits of the 602A, 602B and/or 602C each comprising a set of non-overlapping subgraphs such as the subgraphs 502A through 502F. The splitter 214 selects the splits 602 sets such that each unit (optimized vertex) is associated with a subgraph and the subgraphs are not overlapping each other, i.e. have no common vertexes (HS elements). For example, the splitter 214 may designate the alternative split 602A by selecting the subgraph 504A for a unit 502A that comprises in addition vertexes 502B and 502F and the subgraph 504D for a unit 502D comprising vertexes 502C and 502E. The subgraphs 504A and 504D are not overlapping since they do not share any vertexes. Similarly, the splitter may designate the alternative split 602B by selecting the subgraphs 504C and 504E and/or the alternative split 602C by selecting the subgraphs 504B and 504F that are non- overlapping subgraphs. In such way, on the basis of the selected subgraphs, the alternative splits 602 may be produced by brute force search. Reference is now made to FIG. 7, which is a schematic illustration of a homogeneous system embodiment of an exemplary wired network divided to non- overlapping subgraphs, according to some embodiments of the present invention. An HS 700 presents an exemplary wired network comprising a plurality of networking switches (HS elements) connecting a plurality of network nodes divided to four points of delivery (POD) 704A, 704B, 704C and 704D. The switches are connected to each other and the optimization objective may be routing the network traffic such that an average traffic volume goes through each of the switches. The wired network 700 may be transformed to a weighted graph by an initializer such as the initializer 210 and transformed to a reduced graph by an updater such as the updater 212 using the threshold value provided to the initializer 210. The updater 212 may identify subgraphs in the reduced graph such that each unit (optimized vertex) is associated with a subgraph. A splitter such as the splitter 214 may then select one or more subgraphs such as a subgraph 706A and/or a subgraph 706B. The subgraph 706A is selected for a unit 702F and comprises vertexes 702C, 702B, 702J and 7021. The subgraph 706B is selected for a unit 702E and comprises vertexes 702A, 702D, 702G and 702H. The subgraph 706A and subgraph 706B do not share any vertex and are therefore non-overlapping.
Reference is now made to FIG. 8, which is a schematic illustration of a homogeneous system embodiment of an exemplary wireless network antenna coverage area divided to non-overlapping subgraphs, according to some embodiments of the present invention. An HS 800 presents an exemplary wireless network comprising a plurality of coverage sectors 802A through 802L each provided by a plurality of antennas (HS elements). The same process applied to the system 700 may be applied to the system 800 for the objective of positioning the antennas in the area to maximize an average level of radio signal. A splitter such as the splitter 214 may select one or more subgraphs such as a subgraph 804A and/or a subgraph 804B. The subgraph 804A is selected for a unit 802C and comprises vertexes 802C, 802A, 802B, 802D, 802E and 802F. The subgraph 2 804B is selected for a unit 802J and comprises vertexes 802G, 8021, 802H, 802K and 802L. The subgraph 804A and subgraph 804B do not share any vertex and are therefore non-overlapping.
Reference is now made to FIG. 9, which is a schematic illustration of a homogeneous system embodiment of an exemplary road network divided to non- overlapping subgraphs, according to some embodiments of the present invention. An HS 900 presents an exemplary road network comprising a plurality of crossroads 902A through 902J (HS elements) connected to each other. The same process applied to the system 700 may be applied to the system 900 for the objective of adjusting a green light period in traffic lights located at the crossroads to direct vehicles traffic such that an average traffic volume goes through each of the crossroads and/or no traffic jams are accumulated at the crossroads. A splitter such as the splitter 214 may select one or more subgraphs such as a subgraph 904A and/or a subgraph 904B. The subgraph 904 A is selected for a unit 902B and comprises vertexes 902A, 902C, 902D and 902E. The subgraph 904B is selected for a unit 902G and comprises vertexes 902H, 9021, 902F and 902J. The subgraph 904A and subgraph 904B do not share any vertex and are therefore non-overlapping.
Reference is made once again to FIG. 1. As shown at 1 12 the splitter 214 selects one of the alternative splits each comprising a set of subgraphs identified in the reduced graph. During each of one or more inner iterations, the splitter 214 may select an alternate split comprising the set of non-overlapping subgraphs. Where the inner iteration refers to an iteration initiated and controlled by the splitter 214 to optimize non-overlapping subgraphs identified in a given reduced graph. The outer iteration(s) on the other hand are controlled by the updater 212 that updates the correlation threshold such that the splitter 214 creates a new (updated version) reduced graph that is processed through the one or more inner iterations. Therefore, a series of at least one inner loop iteration may take place during each of the outer loop iterations.
As shown at 1 14, the splitter 214 apportions (distributes) the non-overlapping subgraphs to the plurality of optimizer 216 processes each executed by a respective one of the processing cores 206. The splitter 214 may execute a plurality of the inner iterations during which the splitter 214 apportions to the optimizers 216 all possible non-overlapping subgraphs identified in the reduced graph. During each inner iteration the splitter 214 forwards another (alternative) split such as the split 602 comprising the set of the non-overlapping subgraphs identified in the reduced graph to the optimizer 216 processes. Following each inner iteration the splitter 214 may update one or more of the HS parameters (vertexes) with improved parameters identified during previous local iteration(s). The splitter 214 may continue the inner iterations until the optimization performed by the optimizer 216 processes is no longer efficient, i.e. the optimization results in the current inner iteration do not present an improvement compared to the previous inner iteration. The improvement may be measured as an absolute improvement and/or with a predefined minimum increase of quality. Additionally and/or alternatively, the splitter 214 may continue the inner iterations until a predefined time-period for the inner iterations and/or a predefined number of inner iterations are exceeded.
Optionally, only part of the alternate splits 602 is optimized during the inner loop iterations. Typically, in most HS the alternate splits may be relatively equal with respect to quantity, quality and/or correlation of the HS elements within the reduced subgraph. Therefore, in case one of the alternate splits does not present an improvement of the optimization, the probability that other splits of the same reduced subgraph will provide an improvement may be relatively low. Repeating the iterations of the inner loop over all alternate splits may therefore not present significant improvement.
As shown at 1 16, the plurality of optimizer 216 processes concurrently process the non-overlapping subgraphs, each optimizing its respective non-overlapping subgraph. Due to the homogeneous nature of the HS, the optimizer 216 processes may all apply the same objective function (optimization function) to the non-overlapping subgraphs. The optimizer 216 processes may employ one or more of a plurality of objective functions such as, for example, Tabu Search or Simulated Annealing. A pseudo code excerpt 1 presents an exemplary optimization implementation of the Tabu Search objective function.
Pseudo code excerpt 1 :
function optimize(sO, precision) {
Let step = maxStep * (1 -precision)
Let s = tabuSearch(sO, step)
Output: state s
Where maxStep is maximal change of optimized parameter in one optimization cycle and tabuSearch is implementation of Tabu Search algorithm. A pseudo code excerpt 2 presents an exemplary optimization implementation of the Simulated Annealing objective function.
Pseudo code excerpt 2:
function optimize (sO, precision) {
Let s = sO
Let step = maxStep * (1 -precision)
Snew ~ random neighbor of s within step
T = temperature (1 -precision)
IfP(E(s), E(snew), T) > random(0, 1)
then move to the new state: s = snew
}
Where maxStep is maximal change of optimized parameter in one optimization cycle, T is standard temperature parameter of Simulated Annealing technique, temperature function can be any function, which decreases value of T from positive value to 0 (for example, temperature (v) = v), E and P are energy and acceptance functions of Simulated Annealing technique, correspondently.
To continue the previously presented examples, for the wireless network HS, the objective function may be, for example, an average level of radio signal at each area. For the wired network as well as for the road network, the objective function may be, for example, an average traffic volume at each switch or crossroad respectively.
After all the optimizer 216 processes complete processing their apportioned non-overlapping subgraphs of the selected split 602, the splitter 214 collects the calculation results, i.e. optimized parameters from the optimizer 216 processes and forwards the results to the updater 212. As discussed before, the splitter 214 may initiate the inner loop iterations to explore all alternate splits 602 of the reduced subgraph or the splitter 214 may reduce the count of the inner loop iterations by initiating the inner loop over only part of the alternate splits 602.
As shown at 1 17, which is decision point, the splitter 214 determines a termination criterion to be an effectiveness score of the optimization, for example, whether the optimization satisfies one or more optimization criteria. In case the optimization criterion(s) is satisfied i.e. met, the process 100 branches to step 1 18, otherwise - the process 100 branches to step 1 12 and another optimization iteration is initialized over another alternative split. The effectiveness score, i.e. the optimization criterion(s) may simply be, whether the optimization process 100 is no longer efficient, i.e. the optimization results of the current optimization iteration do not present an improvement compared to the previous optimization iteration. The optimization improvement may be measured as an absolute improvement and/or with a predefined minimum increase of quality. Other termination criteria may be used as well, such as a predefined time-period or a predefined number of iterations. That is, the updater 212 may continue the optimization iterations until a predefined time-period for the optimization process 100 and/or a predefined number of optimization iterations are exceeded.
As shown at 1 18, which is decision point, the updater 212 determines whether the precision value is maximal. In case the precision value is not maximal, process 100 branches to step 106 and another iteration is initiated. In case the precision value is maximal, for example, 1 , the process 100 branches to step 120.
Following each iteration the updater 212 may update the HS parameters (as reflected in the vertexes) with the optimized parameters calculated during the previous optimization iteration(s). For example, for a wireless network such as the wireless network 800 the updated parameters may include, for example, updated antenna(s) positioning parameters such as tilt, height and/or azimuth and/or updated antenna(s) transmission power. For a wired network such as the wired network 700 the updated parameters may include, for example, updated settings for the bandwidth of the network switch(s). For a road network such as the road network 900 the updated parameters may include, for example, updated settings for the green light timing for traffic light(s).
As described above (at 106), following each outer iteration, the updater 212 may update (increase) the values of precision and correlation threshold to allow the splitter 214 to achieve higher precision for the reduced graph in representing the HS since more edges are removed. The iterative process thus starts with relatively low precision to identify rough initial optimization values and/or range and gradually increase the precision while updating the HS parameters with newly optimized values to achieve fast convergence to the optimal HS updated parameters 222.
As shown at 120, the updater 212 provides the HS updated parameters 222. The HS updated parameters are selected such that each updated parameter may be selected from a different optimization iteration in order to select the best optimized parameter for each of the HS elements. The updater 212 may provide the HS updated parameters 222 through the I/O interface 202, in the form of a file, a graph, a database and/or an abstracted model. The updater 212 may store the HS updated parameters 222 in the storage 208 and/or transmit the HS updated parameters 222 to one or more network nodes over one or more networks connected to the I/O interface 202.
Reference is now made to FIG. 10, which is a schematic illustration of an exemplary flow of a process for optimizing resources of an HS using two cores (threads), according to some embodiments of the present invention. An exemplary process 100A such as the process 100 executed by a system 200A such as the system 200 employs two threads 206 A and 206B such as the cores 206 for optimizing an HS. The process 100A follows the steps of the process 100 as described herein above. An initializer such as the initializer 210 creates a weighted graph 402 A such as the weighted graph 402 according to received HS parameters such as the HS parameters 220. An updater such as the updater 212 receives the graph 402A and adjusts a correlation threshold value according to one or more optimization parameters, for example, a precision. A splitter such as the splitter 214 creates a reduced graph 404D by removing from the graph 402A edges that are below the threshold value set by the updater 212. The splitter 214 may then identify non-overlapping subgraphs, for example, 602D, 602E and/or 602F in the reduced graph 404D. The splitter 214 distributes the non-overlapping subgraphs to the two threads 206A and 206B each executing an optimizer process such as the optimizer 216 to optimize the units (vertexes) associated with the respective non-overlapping subgraphs. The splitter 214 may initiate multiple inner iterations, for example, three. In the first inner iteration the alternative split 602D is optimized where the splitter 214 assigns the non-overlapping subgraph 504G to the thread 206A and the non-overlapping subgraph 504H to the thread 206B. After the optimizer 216 processes executed by the threads 206A and 206B are done optimizing the alternative split 602D, the splitter 214 initiates a 2nd inner iteration cycle in which the alternative split 602E is selected for optimization. The splitter 214 assigns the non-overlapping subgraph 5041 to the thread 206A and the non-overlapping subgraph 504J to the thread 206B. After the optimizer 216 processes executed by the threads 206A and 206B finish optimizing the alternative split 602E the process is repeated for the alternative split 602F where the non-overlapping subgraph 504K is assigned to the thread 206 A and the non-overlapping subgraph 504L is assigned to the thread 206B. Following each inner iteration, the splitter 214 may update one or more of the optimized units (vertexes corresponding to HS elements) such that the updated vertexes are used for the following inner iteration. After all alternative splits 602 are optimized, the updater 212 may initiate another outer iteration by adjusting the correlation threshold value with a higher precision value. The splitter 214 may create an updated version of the reduced graph by removing edges according to the adjusted threshold value. The updater may control the process 100A to repeat until the one or more optimization criteria are met. Prior to each outer iteration, the updater 212 may update one or more of the graph vertexes with the most optimized values such that the following outer iteration is performed using the most optimal HS parameters values identified during previous iterations. After the optimization is complete, the updater 212 may provide HS updated parameters such as the HS updated parameters 222.
Reference is now made to FIG. 1 1 , which is a schematic illustration of an exemplary embodiment of a system for optimizing resources of an HS, according to some embodiments of the present invention. A system 200B such as the system 200 for executing an optimization process such as the process 100 includes an initializer such as the initializer 210, an updater such as the updater 212, a splitter such as the splitter 214 and a plurality of optimizer processes such as the optimizer 216 process. The initializer 210 receives HS parameters such as the HS parameters 220 and creates a weighted graph representing the HS such that each vertex represents a respective HS element and every two vertexes are connected with a weighted edge representing the correlation between the respective two HS elements. The initializer 210 may transfer the weighted graph to the updater 212 along with one or more optimization parameters, for example, a precision value. The precision value may be set initially to a relatively low precision value, for example, 0 to allow the optimization process 100 to first identify a rough optimization range and gradually converge to the optimal HS parameters within the range. The updater 212 may update the precision value prior to each outer iteration where the precision value may be used to adjust the correlation threshold value. The correlation threshold value may be gradually increased such that the reduced graph created by the splitter 214 includes less edges and becomes more and more accurate with respect to the original weighted graph (representing the HS) during each additional outer iteration. The updater 212 may increase the precision value up to a predefined maximum precision value, for example, 1. Following each outer iteration the updater 212 may update one or more of the graph vertexes with the most optimal HS parameter values identified during previous iterations. The updater 212 may repeat the optimization cycle until the one or more optimization criteria are satisfied. After the optimization process 100 is complete, the updater 212 may provide HS updated parameters such as the HS updated parameters 222.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
It is expected that during the life of a patent maturing from this application many relevant processing technologies will be developed and the scope of the term processing core is intended to include all such new technologies a priori.
As used herein the term "about" refers to ± 10%.
The terms "comprises", "comprising", "includes", "including", "having" and their conjugates mean "including but not limited to". This term encompasses the terms "consisting of and "consisting essentially of.
The phrase "consisting essentially of means that the composition or method may include additional ingredients and/or steps, but only if the additional ingredients and/or steps do not materially alter the basic and novel characteristics of the claimed composition or method.
As used herein, the singular form "a", "an" and "the" include plural references unless the context clearly dictates otherwise. For example, the term "a compound" or "at least one compound" may include a plurality of compounds, including mixtures thereof.
The word "exemplary" is used herein to mean "serving as an example, instance or illustration". Any embodiment described as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments and/or to exclude the incorporation of features from other embodiments.
The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments". Any particular embodiment of the invention may include a plurality of "optional" features unless such features conflict.
Throughout this application, various embodiments of this invention may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1 , 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.
Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases "ranging/ranges between" a first indicate number and a second indicate number and "ranging/ranges from" a first indicate number "to" a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.
It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting.

Claims

WHAT IS CLAIMED IS:
1. A system of managing resources of a homogenous system (HS), comprising: a memory adapted to store a graph representing the HS, wherein said graph comprises a plurality of vertexes connected by a plurality of edges, each said vertex corresponds to one of a plurality of HS elements and each said edge has weight defining a rank of correlation between a pair of said plurality of HS elements; and a processor adapted to identify a plurality of alternative splits of said graph, each comprising a plurality of non-overlapping subgraphs of said graph, and to perform, in each of a plurality of iterations:
selecting one of said plurality of alternative splits;
apportioning each of said plurality of non-overlapping subgraphs of said selected alternative split to one of a plurality of processes;
executing in parallel said plurality of processes according to said apportioning;
wherein said plurality of iterations are repeated until a termination criterion is met.
The system of claim 1 , wherein said apportioning comprises allocating a plurality of computation cores according to said plurality of non-overlapping subgraphs.
3. The system of one of the previous claims, wherein the termination criterion is based on an estimation of an effectiveness score of said plurality of non-overlapping subgraphs of said selected alternative split according to an outcome of an optimizing function.
4. The system of one of the previous claims, wherein said processor is adapted to create an updated version of said graph by filtering said plurality of edges according to a correlation threshold, said plurality of alternative splits are identified in said updated version to be optimized during at least one another series of iterations comprising at least one of said plurality of iterations.
5. The system of any of the previous claims, wherein said processor is adapted to adjust said correlation threshold following said at least one series of iterations to increase a precision value indicative of an accuracy of said updated version of said graph.
6. The system of any one of the previous claims, wherein said processor is adapted to calculate correlation weights for each of said plurality of edges on a basis of parameters in connected vertices.
7. The system of any one of the previous claims, wherein said processor is adapted to identify a subset of said plurality of vertexes according to at least one size threshold, each one of said plurality of non-overlapping subgraphs comprises one member of said subset.
8. The system of any of the previous claims, wherein said processor is adapted to update at least one of said plurality of vertexes with an updated value calculated during at least one previous iteration of said plurality of iterations.
9. A method of managing resources of a homogenous system, HS, said method comprising:
receiving a graph representing the HS, said graph comprises a plurality of vertexes connected by a plurality of edges, each said vertex corresponds to one of a plurality of elements of the HS and each said edge has weight defining a rank of correlation between a pair of said plurality of HS elements;
identifying a plurality of alternative splits of said graph, each of said plurality of alternative splits comprising a plurality of non-overlapping subgraphs of said graph;
performing, in each of a plurality of iterations, the following:
selecting one of said plurality of alternative splits;
apportioning each of said plurality of non-overlapping subgraphs of said selected alternative split to one of a plurality of processes;
executing in parallel said plurality of processes according to said apportioning;
wherein said plurality of iterations are repeated until a termination criterion is met.
PCT/RU2016/000354 2016-06-10 2016-06-10 Parallel optimization of homogeneous systems WO2017213537A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680085083.6A CN109478145B (en) 2016-06-10 2016-06-10 Parallel optimization of homogeneous systems
PCT/RU2016/000354 WO2017213537A1 (en) 2016-06-10 2016-06-10 Parallel optimization of homogeneous systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2016/000354 WO2017213537A1 (en) 2016-06-10 2016-06-10 Parallel optimization of homogeneous systems

Publications (1)

Publication Number Publication Date
WO2017213537A1 true WO2017213537A1 (en) 2017-12-14

Family

ID=57737958

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2016/000354 WO2017213537A1 (en) 2016-06-10 2016-06-10 Parallel optimization of homogeneous systems

Country Status (2)

Country Link
CN (1) CN109478145B (en)
WO (1) WO2017213537A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500876B2 (en) 2020-04-29 2022-11-15 International Business Machines Corporation Method for duplicate determination in a graph
US11531656B1 (en) 2021-06-08 2022-12-20 International Business Machines Corporation Duplicate determination in a graph
US11941056B2 (en) 2020-04-29 2024-03-26 International Business Machines Corporation Method for weighting a graph

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862731B1 (en) * 2000-09-29 2005-03-01 International Business Machines Corp. Net zeroing for efficient partition and distribution
US20050246711A1 (en) * 2004-04-08 2005-11-03 International Business Machines Corporation Method for distributing and geographically load balancing location aware communication device client-proxy applications
US20090007127A1 (en) * 2007-06-26 2009-01-01 David Roberts System and method for optimizing data analysis
US20100180280A1 (en) * 2009-01-14 2010-07-15 Alcatel-Lucent Usa, Incorporated System and method for batch resource allocation
US20120066667A1 (en) * 2010-09-14 2012-03-15 Microsoft Corporation Simulation environment for distributed programs
US20120084789A1 (en) * 2010-09-30 2012-04-05 Francesco Iorio System and Method for Optimizing the Evaluation of Task Dependency Graphs
US20120304192A1 (en) * 2011-05-27 2012-11-29 International Business Machines Lifeline-based global load balancing
US20150106419A1 (en) * 2013-10-16 2015-04-16 International Business Machines Corporation Performing optimized collective operations in an irregular subcommunicator of compute nodes in a parallel computer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323478C (en) * 2004-03-17 2007-06-27 西安交通大学 Reactive optimizing method of power system based on coordinate evolution
CN102096744A (en) * 2011-03-07 2011-06-15 杭州电子科技大学 Irregular iteration parallelization method
US9645848B2 (en) * 2013-05-20 2017-05-09 International Business Machines Corporation Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
CN104239126B (en) * 2013-06-19 2018-03-13 华为技术有限公司 The minimal cut acquisition methods and equipment of a kind of digraph

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862731B1 (en) * 2000-09-29 2005-03-01 International Business Machines Corp. Net zeroing for efficient partition and distribution
US20050246711A1 (en) * 2004-04-08 2005-11-03 International Business Machines Corporation Method for distributing and geographically load balancing location aware communication device client-proxy applications
US20090007127A1 (en) * 2007-06-26 2009-01-01 David Roberts System and method for optimizing data analysis
US20100180280A1 (en) * 2009-01-14 2010-07-15 Alcatel-Lucent Usa, Incorporated System and method for batch resource allocation
US20120066667A1 (en) * 2010-09-14 2012-03-15 Microsoft Corporation Simulation environment for distributed programs
US20120084789A1 (en) * 2010-09-30 2012-04-05 Francesco Iorio System and Method for Optimizing the Evaluation of Task Dependency Graphs
US20120304192A1 (en) * 2011-05-27 2012-11-29 International Business Machines Lifeline-based global load balancing
US20150106419A1 (en) * 2013-10-16 2015-04-16 International Business Machines Corporation Performing optimized collective operations in an irregular subcommunicator of compute nodes in a parallel computer

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CHEN C L P ET AL: "Mapping precedence and communication relations of a large scale computation on a multiprocessor system", 19891114; 19891114 - 19891117, 14 November 1989 (1989-11-14), pages 370 - 375, XP010091467 *
D JANAKI ET AL: "Parallel Simulated Annealing Algorithms", JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1 January 1996 (1996-01-01), pages 207 - 212, XP055349537, Retrieved from the Internet <URL:http://www.sciencedirect.com/science/article/pii/S0743731596901215/pdf?md5=3d0c7048dd034c593a3b401eee8d7f69&pid=1-s2.0-S0743731596901215-main.pdf> [retrieved on 20170224] *
IQBAL M A ET AL: "Heterogeneous partitioning of chain structured image processing tasks", 1993 COMPUTER ARCHITECTURES FOR MACHINE PERCEPTION : [CAMP '93, WORKSHOP ON COMPUTER ARCHITECTURES FOR MACHINE PERCEPTION] ; DECEMBER 15 - 17, 1993, NEW ORLEANS, LOUISIANA, USA ; PROCEEDINGS, IEEE COMPUTER SOCIETY PRESS, LOS ALAMITOS, CALIF. [U.A.], 15 December 1993 (1993-12-15), pages 302 - 311, XP010245381, ISBN: 978-0-8186-5420-6, DOI: 10.1109/CAMP.1993.622485 *
JIE CHEN ET AL: "A measure of the local connectivity between graph vertices", PROCEDIA COMPUTER SCIENCE, vol. 4, 31 December 2011 (2011-12-31), pages 196 - 205, XP028269530, ISSN: 1877-0509, [retrieved on 20110514], DOI: 10.1016/J.PROCS.2011.04.021 *
SATYANARAYANAN R ET AL: "A task allocation scheme for hypercube distributed computing systems using the affinity graph model", 19891122; 19891122 - 19891124, 22 November 1989 (1989-11-22), pages 630 - 633, XP010087879 *
STAVRINIDES G L ET AL: "Scheduling multiple task graphs with end-to-end deadlines in distributed real-time systems utilizing imprecise computations", JOURNAL OF SYSTEMS & SOFTWARE, ELSEVIER NORTH HOLLAND, NEW YORK, NY, US, vol. 83, no. 6, 1 June 2010 (2010-06-01), pages 1004 - 1014, XP027035184, ISSN: 0164-1212, [retrieved on 20100104] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500876B2 (en) 2020-04-29 2022-11-15 International Business Machines Corporation Method for duplicate determination in a graph
US11941056B2 (en) 2020-04-29 2024-03-26 International Business Machines Corporation Method for weighting a graph
US11531656B1 (en) 2021-06-08 2022-12-20 International Business Machines Corporation Duplicate determination in a graph

Also Published As

Publication number Publication date
CN109478145B (en) 2021-04-09
CN109478145A (en) 2019-03-15

Similar Documents

Publication Publication Date Title
CN111260019B (en) Data processing method, device and equipment of neural network model and storage medium
US10754709B2 (en) Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis
US10699036B2 (en) Method and system for testing vehicle
US20190332422A1 (en) Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster
WO2020211205A1 (en) Data processing method and related product
CN110366193B (en) Slice deployment method and device for network arrangement layer bearing of smart grid
US20200311546A1 (en) Method and apparatus for partitioning deep neural networks
EP4177752A1 (en) Task processing method, edge computing device, computer device, and medium
CN109993298B (en) Method and apparatus for compressing neural networks
CN111062467B (en) Automatic neural network subgraph segmentation method applied to AI heterogeneous compiler
WO2017213537A1 (en) Parallel optimization of homogeneous systems
KR101578177B1 (en) Method and system for migration based on resource utilization rate in cloud computing
CN116450312A (en) Scheduling strategy determination method and system for pipeline parallel training
Gao et al. Deep neural network task partitioning and offloading for mobile edge computing
CN111371616A (en) Virtual network function chain deployment method and system for NUMA (non Uniform memory Access) architecture server
CN113015219B (en) Network resource selection method and device based on strategy gradient and storage medium
WO2009142011A1 (en) Decision device with minimum power transmission loss system, method, and program
CN115130683A (en) Asynchronous federal learning method and system based on multi-agent model
CN108134851A (en) The method for controlling quality of service and device of data transmission
CN110958178A (en) Method and device for determining shortest path between systems
CN110362378A (en) A kind of method for scheduling task and equipment
CN105139020A (en) User clustering method and device
CN113015179B (en) Network resource selection method and device based on deep Q network and storage medium
Himpe et al. High performance computing applied to dynamic traffic assignment
CN103678545A (en) Network resource clustering method and device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16822548

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16822548

Country of ref document: EP

Kind code of ref document: A1