EP4323868A1 - System and method of dynamically partitioning computers at runtime - Google Patents
System and method of dynamically partitioning computers at runtimeInfo
- Publication number
- EP4323868A1 EP4323868A1 EP21723713.0A EP21723713A EP4323868A1 EP 4323868 A1 EP4323868 A1 EP 4323868A1 EP 21723713 A EP21723713 A EP 21723713A EP 4323868 A1 EP4323868 A1 EP 4323868A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- subset
- partition
- computer
- workload
- hardware
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 49
- 238000000638 solvent extraction Methods 0.000 title abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 314
- 230000015654 memory Effects 0.000 claims description 58
- 230000004044 response Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 45
- 230000007246 mechanism Effects 0.000 description 16
- 238000013459 approach Methods 0.000 description 15
- 238000004088 simulation Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006378 damage Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Definitions
- the present disclosure relates generally to the field of hardware partitioning and more specifically, to a system and a method of dynamically partitioning computers at runtime.
- data centres are used to organize, process, store and distribute large amounts of data.
- partitioning is used for workload management and consolidation of data at the data centre.
- a typical workload includes a plurality of programs running in a computer system. Further, the workload in the data centre usually don't translate directly to a specific hardware.
- the data centre usually permits and supports a plurality of physical servers, networking equipments, and the like.
- the servers have become more prominent and robust in terms of capacity and performance, but the typical workload (e.g., a cloud workload) requires far less resources (such as a less central processing unit (CPU), memory, and storage devices) than available on such servers. As a result, running a single workload on a single server results in a large underutilization of the server.
- each server in such a way that each partition of the server suits a specific workload.
- each workload may require its own operating system (OS), and running several operating systems on a same hardware (e.g., the server) is traditionally not possible without virtualization technology (or custom hardware).
- the conventional virtualization technology relies on hardware extensions (or simulations) to execute several virtual machines on a same physical machine.
- a single hardware may host many virtual machines (e.g., using hardware extensions) in the virtualization technology, and each virtual machine runs a specific workload.
- each virtual machine assumes control of a virtual hardware either simulated by a hypervisor software or implemented by a hardware architecture.
- the virtualization technology relies on a hypervisor layer to host and operate a virtualization stack, which drastically impacts performance levels, such as reduction in overheads.
- containerization is used, where all the workloads run on the same operating system and are isolated by the same operating system instance, which just gives an illusion of all workloads being alone.
- the containerization allows the single operating system to isolate subsets of its processes from one another. Each process belongs to a container, and the corresponding process can interact and observe only processes of its own container.
- the containerization is done on top of the operating system, where all the containers run on the top of the same operating system instance, such as an underlying operating system manages the resources for all containers (and for itself).
- the containerization's underlying operating system has a discretion of their allocation to all running processes, which belongs to the container. Therefore, the containerization is not suitable for workloads, which require different operating system types (or versions).
- Some conventional solutions are based on hardware technologies that provides an ability to partition the computer system into several logical machines. However, such solutions rely on hardware extensions and granularity of sharable resources which makes the solution resource intensive. Other conventional solutions involve partitioning the resources into two equal parts. However, such conventional solutions are still not able to dynamically control the partitions and resource assignment which is essential for handling workloads. Thus, there exists a technical problem with running several operating systems on the same hardware.
- the present disclosure provides a system and a method of dynamically partitioning computers at runtime.
- the present disclosure seeks to provide a solution to the existing problem of running several operating systems on the same hardware without affecting performace of the hardware.
- An objective of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in the prior art and provides an improved system and method of dynamically partitioning computers at runtime to run several operating systems on the same hardware.
- the present disclosure provides a computer comprising a controller and a hardware resource set comprising a plurality of hardware resources.
- the controller is configured to receive an indication of a first workload, generate a first partition of the computer by assigning a first subset of hardware resources to the first workload, and execute the first workload in the first partition on the assigned first subset of hardware resources, wherein the first subset is smaller than the hardware resource set.
- the controller is further configured to receive an indication of a second workload, generate a second partition of the computer by assigning a second subset of hardware resources to the second workload, and execute the second workload in the second partition on the assigned second subset of hardware resources, wherein the second subset is smaller than the hardware resource set.
- a controller provides dynamic partitioning of a computer at runtime, based on a received indication of a first workload and a second workload. Further, the first and the second workloads are used to assign partitions of the computer to a specific subset of hardware resources so as to ensure the hardware resource limits. Therefore, in comparison to the conventional approach, the dynamic partitioning of the computer of the present disclosure assumes no hardware extensions of the computer and does not require simulation of the hardware resources of the computer. Moreover, the computer runs the controller that accounts for the hardware resources and manages partitions, such as a first partition and a second partition of the computer. Therefore, the dynamic partitioning of the computer runs directly on/with the hardware resources (or physical resources), thereby reducing overheads and performance penalties in comparison to the conventional approach.
- the controller is further configured to be based on software instructions that are executed by the controller.
- it is advantageous to use a software-based solution for hardware partitioning of the computer.
- the controller is further configured to determine a first operating system for the first workload and to initiate the first operating system on the first subset of hardware resources and execute the first workload under the first operating system, and determine a second operating system for the second workload and to initiate the second operating system on the second subset of hardware resources and execute the second workload under the second operating system.
- a first operating system and a second operating system boots using only an allocated subset of hardware resources.
- the present disclosure provides an operating system mechanism to enable sharing/partitioning of the hardware resources between multiple operating systems, such as the first operating system and the second operating system with such operating system mechanism.
- the controller is further configured to determine the first subset of hardware resources based on properties for the first workload.
- the controller enables allocation and management of the hardware resources.
- the first operating system is not the same as the second operating system.
- the present disclosure can be used for the workloads which require different operating system types (or versions).
- the plurality of hardware resources comprises a plurality of processor cores and a plurality of memories
- the first subset of hardware resources comprises a first subset of processor cores and a first subset of memories
- the second subset of hardware resources comprises a second subset of processor cores and a second subset of memories.
- the first subset of hardware resources and the second subset of hardware resources are beneficial to run two desired operating systems separately.
- the controller is further configured to discontinue executing of the first workload in the first partition and to mark the first subset of hardware resources as available, thereby deleting the first partition.
- the controller is capable of removing a partition of the computer.
- the controller is further configured to add a further hardware resource to the first partition by assigning the further hardware resource to the first subset of hardware resources.
- the controller is able to add a further hardware resource, thus the partitions can be resized by assigning further hardware resources. Moreover, the controller is capable to dynamically control the number of partitions and hardware resource assignments of the computer.
- the controller is further configured to add the further hardware resource to the first partition in response to receiving a request for additional hardware from the first partition.
- the controller of the present disclosure enables resizing of the hardware resources to add further hardware resource to the first partition.
- the controller is capable to dynamically control hardware resource assignment of the computer, based on the requirement.
- the controller is further configured to remove a yielded hardware resource from the first partition by removing the yielded hardware resource from the first subset of hardware resources, thereby executing the first workload in the first partition on the first subset of hardware resources without the yielded hardware resource.
- the partitions of the computer can be resized by removing the yielded hardware resource from the first subset of hardware resources.
- a shared hardware resource is part of the first subset of hardware resources and a part of the second subset of hardware resources, wherein the controller is further configured to execute the first workload in the first partition utilizing the shared hardware resource for a time period.
- the hardware resources can be shared and not just partitioned.
- the dynamic partition of the present disclosure does not ensures isolation between the partitions of the computer and cannot enforces access control.
- the controller is further configured to receive an indication of a third workload, determine whether there are hardware resources available for a third subset of hardware resources and if not retrieve hardware resources from the first and/or the second partition, assign the available hardware resources to the third subset of hardware resources, wherein the third subset is smaller than the hardware resource set, generate a third partition of the computer by assigning the third subset of hardware resources to the third workload, and execute the third workload in the third partition on the assigned third subset of hardware resources.
- a partition, a creation, a destruction or a modification are managed by the controller and done under consensus.
- the present disclosure provides a method for use in a computer comprising a hardware resource set comprising a plurality of hardware resources.
- the method comprising receiving an indication of a first workload, generating a first partition of the computer by assigning a first subset of hardware resources to the first workload, executing the first workload in the first partition on the assigned first subset of hardware resources, wherein the first subset is smaller than the hardware resource set.
- the controller is further configured to receiving an indication of a second workload, generating a second partition of the computer by assigning a second subset of hardware resources to the second workload and executing the second workload in the second partition on the assigned second subset of hardware resource, wherein the second subset is smaller than the hardware resource set.
- FIG. 1 is a block diagram of a computer comprising a controller and a hardware resource set, in accordance with an embodiment of the present disclosure
- FIG. 2 is a flowchart of a method for use in the computer comprising the hardware resource set, in accordance with an embodiment of the present disclosure.
- FIG. 3 is an illustration of the computer, in accordance with an embodiment of the present disclosure.
- an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent.
- a non-underlined number relates to an item identified by a line linking the non- underlined number to the item.
- the non-underlined number is used to identify a general item at which the arrow is pointing.
- FIG. 1 is a block diagram of a computer comprising a controller and a hardware resource set, in accordance with an embodiment of the present disclosure.
- a block diagram 100 of a computer 102 comprises a controller 104 and a hardware resource set 106.
- the hardware resource set 106 further comprises a plurality of hardware resources 106A to 106N.
- the present disclosure provides a computer 102 comprising a controller 104 and a hardware resource set 106 comprising a plurality of hardware resources 106A to 106N, the controller 104 being configured to: receive an indication of a first workload 108; generate a first partition 114 of the computer 102 by assigning a first subset of hardware resources 106A to 106N to the first workload 108; and execute the first workload 108 in the first partition 114 on the assigned first subset of hardware resources 106A to 106N, wherein the first subset is smaller than the hardware resource set 106, and wherein the controller 104 is further configured to receive an indication of a second workload 110; generate a second partition 116 of the computer 102 by assigning a second subset of hardware resources 106A to 106N to the second workload 110; and execute the second workload 110 in the second partition 116 on the assigned second subset of hardware resources 106Ato 106N, wherein the second subset is smaller than the hardware resource set 106.
- the computer 102 comprises the controller 104 and the hardware resource set 106.
- the computer 102 includes suitable logic, circuitry, and interfaces that executes dynamic hardware partitioning by augmenting the running software (specifically, operating systems), where each workload is able to run on a subset of available hardware resources.
- each partition acts as a collection of compute resources (CPU, memory, devices) and allows a workload to run with its desired operating system type and version.
- the computer 102 is configured to resize dynamically generated partitions by assigning and un-assigning resources. Examples of computer 102 include, but are not limited to, a server, a cloud server, a computing device of a datacenter, a laptop computer, a mainframe computer, and other computers, such as a personal computer having different workloads.
- the controller 104 includes suitable logic, circuitry, and interfaces that is configured to receive different workloads, such as the first workload 108 and the second workload 110 and further enable execution of such workloads on the computer 102.
- the controller 104 is further configured to trigger (i.e., create, delete, or resize) different partitions of the computer 102, such as the first partition 114 and the second partition 116, and to execute different workloads based on different partitions of the computer 102.
- the controller 104 may also be referred to as a processor, a management system, or a management unit executing a management functionality.
- the hardware resource set 106 comprises a plurality of hardware resources 106A to 106N. Each of the plurality of hardware resource 106A to 106N is utilised by a given workload such as the first workload 108 and the second workload 110. Examples of the hardware resource set 106 include, but are not limited to a central processing unit (CPU), a memory, a solid state device, and the like. In an example, a first workload 108 has its respective hardware resource such as hardware resource 106 A having a respective CPU and memory.
- a workload broadly is any program or application that runs on any computer. Workload also refers to the amount of work (or load) that a software or an applcation imposes on the underlying computing resources.
- Each of the workload such as the first workload 108, the second workload 110, and the third workload 112 corresponds to a potential amount of processing the computer 102 will have to do in a fixed period of time.
- the first workload 108, the second workload 110, and the third workload 112 may comprises details such as an amount of programs, the number of users connecting to its applications, how much time and processing power interactions consume, and the like.
- the first workload 108 may include a first operating system
- the second workload 110 may include a second operating system
- the third workload 112 may include a third operating system.
- the first partition 114, the second partition 116, and the third partition 118 correspond to a logical division of memory and resources of the computer 102.
- the controller 104 is configured to receive an indication of the first workload 108.
- the controller 104 of the computer 102 receives the indication (or an external command) of the first workload 108.
- the indication of the first workload 108 is received from an external device so as to trigger the partition of the computer 102.
- the controller 104 is configured to receive the indication of the first workload 108 from a computing device associated with the computer 102.
- the first workload 108 is used for augmenting running software (specifically, operating systems) of the computer 102 so as to achieve dynamic hardware partitioning of the computer 102.
- the controller 104 is further configured to determine a first subset of hardware resources 106A to 106N based on properties for the first workload 108.
- the controller 104 is configured to unplug the running (or already allocated) hardware resources 106A to 106N based on the properties for the first workload 108 so as to determine the first subset of hardware resources 106A to 106N.
- the controller 104 determines the hardware resource 106 A from the hardware resource set 106 based on the properties of the first workload 108. Therefore, the controller 104 enables allocation and management of the hardware resources 106A to 106N.
- the properties for the first workload 108 may include an amount of programs, a number of users connecting to its applications, time and processing power interactions consume, and the like.
- the controller 104 is further configured to generate the first partition 114 of the computer 102 by assigning a first subset of hardware resources 106 A to 106N to the first workload 108.
- the controller 104 is further configured to execute the first workload 108 in the first partition 114 on the assigned first subset of hardware resources 106A to 106N, wherein the first subset is smaller than the hardware resource set 106.
- the controller 104 is further configured to receive an indication of a second workload 110, generate a second partition 116 of the computer 102 by assigning a second subset of hardware resources 106 A to 106N to the second workload 110, and execute the second workload 110 in the second partition 116 on the assigned second subset of hardware resources 106A to 106N, wherein the second subset is smaller than the hardware resource set 106.
- the controller 104 generates the first partition 114 of the computer 102 based on the received indication of the first workload 108 and generates the second partition 116 of the computer 102 based on the received indication of the second workload 110.
- the controller 104 assign the first subset of hardware resources 106A to 106N to the first workload 108 and assign the second subset of hardware resources 106A to 106N to the second workload 110.
- the controller 104 assign the hardware resource 106A to the first workload 108 based on the received indication of the first workload 108 and also assign the hardware resource 106B to the second workload 110 based on the received indication of the second workload 110.
- the first partition 114 of the computer 102 acts as a collection of resources (i.e. a hardware resource 106A) such as a central processing unit, a memory, storage devices, and the like.
- the second partition 116 of the computer 102 acts as a collection of resources (i.e., a hardware resource 106B) such as another central processing unit, another memory, another storage devices, and the like. Therefore, the controller 104 is accounting the available hardware resources 106A to 106N and its allocation to the first partition 114 and the second partition 116 of the computer 102. Thereafter, the controller 104 executes the first workload 108 in the first partition 114 and on the assigned first subset of hardware resources 106A to 106N and executes the second workload 110 in the second partition 116 on the assigned second subset of hardware resources 106A to 106N.
- resources i.e., a hardware resource 106B
- the controller 104 is accounting the available hardware resources 106A to 106N and its allocation to the first partition 114 and the second partition 116 of the computer 102. Thereafter, the controller 104 executes the first workload 108 in the first partition 114 and on the assigned first subset of hardware resources 106A to 106N and executes the second
- the controller 104 executes the first workload 108 (e.g., a program set) on the assigned hardware resource 106A which is allocated to the first workload 108 and in the first partition 114 of the computer 102.
- the controller 104 executes the second workload 110 (e.g., another program set) on the assigned hardware resource 106B which is allocated to the second workload 110, and in the second partition 116 of the computer 102. Therefore, the partitions of the computer 102, such as the first partition 114 and the second partition 116, are assigned to a specific subset of hardware resources 106A to 106N so as to ensure the hardware resources 106A to 106N are efficiently utilised.
- the computer 102 runs the controller 104 (or a management service) that accounts for hardware resources 106A to 106N (or all devices) and manages the first partition 114 and the second partition 116 of the computer 102.
- the controller 104 can be implemented as a single entity running on one of the partitions of the computer 102 (or on a separate machine, or even implemented in a distributed nature, running on all/some of the partitions at once maintaining a consensus among all running parts).
- the controller 104 of the computer 102 provides dynamic partitioning of the computer 102, such as with the first partition 114 and the second partition 116.
- the dynamic partitioning of the computer 102 in comparison to conventional partitioning assumes no hardware extensions of the computer 102 and does not require simulation of the hardware resources 106A to 106N of the computer 102. Further, the dynamic partitioning of the computer 102 runs directly on/with the hardware resources 106A to 106N (or physical resources), thereby reduces overheads and performance penalties.
- the controller 104 is further configured to be based on software instructions that are executed by the controller 104.
- the controller 104 is based on software instructions, therefore the present disclosure provides a software-based solution for hardware partitioning of the computer 102.
- the present disclosure can be implemented in conventional computers without a need for much hardware upgradations.
- the controller 104 is further configured to determine a first operating system for the first workload 108 and to initiate the first operating system on the first subset of hardware resources 106A to 106N and execute the first workload 108 under the first operating system.
- the controller 104 is further configured to determine a second operating system for the second workload 110 and to initiate the second operating system on the second subset of hardware resources 106A to 106N and execute the second workload 110 under the second operating system.
- the computer 102 is a single multicore machine, where initially a single operating system is running on the hardware resource set 106 of the computer 102. Further, the controller 104 of the computer 102 determines the first operating system for the first workload 108 and the second operating system for the second workload 110.
- the first partition 114 of the computer 102 allows the first workload 108 to run with its desired operating system type, such as the first operating system on the first subset of hardware resources 106A to 106N.
- the second partition 116 of the computer 102 allows the second workload 110 to run with its desired operating system type, such as the second operating system on the second subset of hardware resources 106A to 106N.
- the initial operating system of the computer 102 schedules new operating systems on the allocated hardware resource set 106. Therefore, the new operating system, such as the first operating system and the second operating system boots using only the allocated subset of hardware resources 106A to 106N. For example, the first operating system boots only the hardware resource 106A, and the second operating system boots only the hardware resource 106B.
- the two different operating systems run in a partitioned mode of the computer 102.
- the new operating system such as the first operating system and the second operating system, also spawns the controller 104 (or the management service).
- the present disclosure provides an operating system mechanism to enable sharing/partitioning of the hardware resource set 106 between multiple operating systems, such as the first operating system and the second operating system, with such operating system mechanism.
- the number of concurrent operating systems is dynamic, and the hardware resource set 106 (and device) distribution among the concurrent operating systems is also dynamic.
- the first operating system is not the same as the second operating system.
- the concurrent operating systems can be of different versions and kinds.
- the present disclosure can be used for the workloads which require different operating system types (or versions).
- the first operating system may be Linux v5.5
- the second operating system can be Linux v 4.16.
- the examples of operating systems are only indicative and various other operating systems may be used without limiting the scope of the disclsoure.
- the different operating systems may have different versions, or the OS itself may be different.
- the plurality of hardware resources 106A to 106N comprises a plurality of processor cores and a plurality of memories
- the first subset of hardware resources 106A to 106N comprises a first subset of processor cores and a first subset of memories
- the second subset of hardware resources 106A to 106N comprises a second subset of processor cores and a second subset of memories.
- the number of active partitions of the computer 102 is based on the hardware resources 106A to 106N, where each subset of hardware resources 106A to 106N has granularity based on which it will be able to partition, such as a memory by pages, central processing units (CPUs) by cores, and the like.
- the first subset of hardware resources 106A to 106N includes the first subset of processor cores and the first subset of memories and the second subset of hardware resources 106A to 106N, such as the hardware resource 106B includes the second subset of processor cores and the second subset of memories.
- each subset of hardware resources 106A to 106N includes a different subset of the memories (or memory by pages), processor cores (or central processing units by cores), and the like, so as to run a desired operating system separately.
- the controller 104 is further configured to discontinue executing the first workload 108 in the first partition 114 and to mark the first subset of hardware resources 106A to 106N as available, thereby deleting the first partition 114.
- the controller 104 is responsible to plug/unplug the hardware resources 106A to 106N, such as through a command.
- a mechanism residing inside each partition, such as the first partition 114 is responsible to plug/unplug the hardware resources 106A to 106N. Therefore, the controller 104 may discontinue to execute the first workload 108 in the first partition 114 of the computer 102.
- the controller 104 may further stop (or destroy) the operating system of the first partition 114, and also delete the first partition 114, and the hardware resources 106Ato 106N are collected by remaining partitions of the computer 102 according to a defined assignment. Therefore, the controller 104 is capable to remove partition by requesting the mechanism inside the partition to stop the operating system. In an implementation, the controller 104 provides book-keeping of what hardware is allocated to the current operating system and also schedule arbitrary code on unplugged central processing unit core of the corresponding partition, such as the first partition 114.
- the controller 104 is further configured to add a further hardware resource to the first partition 114 by assigning the further hardware resource to the first subset of hardware resources 106A to 106N.
- the controller 104 requests one partition of the computer 102, such as the first partition 114 to plug in a further hardware resource.
- the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
- the controller 104 is further configured to add the further hardware resource to the first partition 114 in response to receiving a request for additional hardware resource from the first partition 114.
- the controller 104 receives an external request (or command) for additional hardware resource from a partition, such as the first partition 114 of the computer 102.
- the controller 104 adds the further hardware resource to the first partition 114 of the computer 102. Therefore, the first partition 114 of the computer 102 can be resized based on the received request, and the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
- the request for additional hardware resource from the first partition 114 is based on a determination that the assigned subset of hardware resources 106A to 106N is not sufficient.
- the subset of hardware resources 106A to 106N such as a hardware resource 106C assigned to a workload, is not sufficient to execute the corresponding workload in the corresponding partition of the computer 102.
- the controller 104 receives a request for additional hardware from the first partition 114. Therefore, the controller 104 is capable to dynamically control hardware resource assignment of the computer 102, based on the requirement.
- the controller 104 is further configured to remove a yielded hardware resource from the first partition 114 by removing the yielded hardware resource from the first subset of hardware resources 106A to 106N, thereby executing the first workload 108 in the first partition 114 on the first subset of hardware resources 106A to 106N without the yielded hardware resource.
- the controller 104 receive a request for additional hardware resource. However, there may be no free hardware resources 106A to 106N that are available. For example, all the hardware resources 106A to 106N are already assigned to different workloads.
- the controller 104 remove a yielded hardware resource (i.e., unused or extra hardware resource) from one of the partitions, such as the first partition 114 of the computer 102, by removing the yielded hardware resource from the first subset of hardware resources 106A to 106N. For example, by removing the yielded first subset of memories from the first partition 114. As a result, the controller 104 executes the first workload 108 in the first partition 114 on the first subset of hardware resources 106A to 106N without the yielded hardware resource, such as without the first subset of memories. Moreover, by virtue of the partitions, the computer 102 can be resized.
- a yielded hardware resource i.e., unused or extra hardware resource
- the partitions of the computer 102 can be resized by removing the yielded hardware resource from the first subset of hardware resources 106A to 106N. Further, the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
- a shared hardware resource is part of the first subset of hardware resources 106A to 106N and a part of the second subset of hardware resources 106A to 106N, wherein the controller 104 is further configured to execute the first workload 108 in the first partition 114 utilizing the shared hardware resource for a time period.
- the controller 104 receives a request for additional hardware.
- the shared hardware resource is used, which is part of the first subset as well as the second subset of hardware resources 106A to 106N.
- the shared hardware resource is utilized for a time period so as to execute the first workload 108 in the first partition 114.
- the controller 104 actively shifts execution from first partition 114 to the second partition 116.
- one partition of the computer 102 such as the first partition 114 can cooperatively context- switch between one another, such as by yielding the central processing unit core and resuming the central processing unit state of other partition.
- the hardware resources 106A to 106N can be shared and not just partitioned.
- the time period is until the first partition 114 hands over the shared hardware resource.
- the controller 104 receives a request for additional hardware. However, there may be no free hardware resources 106A to 106N that are available. Therefore, the controller 104 requests the first partition 114 of the computer 102 to schedule the time period until the first partition 114 hands over the shared hardware resource.
- the dynamic partition of the present disclosure does not ensure isolation between the partitions of the computer 102 and cannot enforce access control.
- the dynamic partition of the computer 102 does not ensure isolation between partitions, such as the first partition 114 and the second partition 116, and cannot enforce access control, as all cooperation is voluntary.
- the controller 104 is further configured to receive an indication of a third workload 112, determine whether there are hardware resources 106A to 106N available for a third subset of hardware resources 106A to 106N and if not retrieve hardware resources 106A to 106N from the first partition 114 and/or the second partition 116, assign the available hardware resources 106A to 106N to the third subset of hardware resources 106A to 106N, wherein the third subset is smaller than the hardware resource set 106.
- the controller 104 is further configured to generate a third partition 118 of the computer 102 by assigning the third subset of hardware resources 106A to 106N to the third workload 112, and execute the third workload 112 in the third partition 118 on the assigned third subset of hardware resources 106A to 106N.
- the controller 104 of the computer 102 receives an indication (or an external command) of the third workload 112, such as from an external device. Thereafter, the controller 104 determines the availability of the hardware resources 106A to 106N for the third subset of hardware resources 106A to 106N.
- the controller 104 unplug the already running (or already allocated or unallocated) hardware resources 106A to 106N based on the properties for the third workload 112 so as to determine the third subset of hardware resources 106A to 106N. For example, the controller 104 unplugs the hardware resources 106A to 106N allocated to the first partition 114 and/or the second partition 116 of the computer 102 and determine the third subset of hardware resources 106A to 106N.
- the controller 104 retrieve the hardware resources 106A to 106N from the first partition 114 and/or the second partition 116 of the computer 102. Thereafter, the controller 104 assigns the determined (or retrieved) hardware resources 106A to 106N to the third subset of hardware resources 106A to 106N. Moreover, the controller 104 assign the third subset of hardware resources 106A to 106N to the third workload 112 so as to create the third partition 118 of the computer 102. For example, the controller 104 assign the hardware resource 106C to the third workload 112 based on the received indication of the third workload 112, and also creates the third partition 118 of the computer 102 for the third workload 112.
- the third partition 118 of the computer 102 acts as a collection of the third subset of hardware resources 106A to 106N.
- the third subset of hardware resources 106A to 106N includes a third subset of processor cores and a third subset of memories. Therefore, the controller 104 is accounting the available hardware resources 106A to 106N and its allocation to the third partition 118 of the computer 102. Thereafter, the controller 104 executes the third workload 112 in the third partition 118 on the assigned third subset of hardware resources 106A to 106N. For example, the controller 104 executes the third workload 112 on the assigned hardware resource 106C which is allocated to the third workload 112, and in the third partition 118 of the computer 102.
- the controller 104 is able to create a new partition, such as the third partition 118 of the computer 102 by requesting one or more partitions to yield the hardware resources 106A to 106N (if no free hardware resources are available), and/or by requesting one partition to schedule a new operating system on one of the allocated central processing unit cores.
- the controller 104 of the computer 102 provides dynamic partitioning of the computer 102 at runtime. Further, the dynamic partitioning of the computer 102 runs directly on the hardware resources 106A to 106N (or physical resources), thereby reduces overheads and performance penalties.
- the computer 102 runs the controller 104 (or a management service) that accounts for the hardware resources 106 A to 106N and manages different partitions, such as the first partition 114, the second partition 116, and the third partition 118 of the computer 102.
- the controller 104 of the computer 102 provides dynamic partitioning of the computer 102.
- the dynamic partitioning of the computer 102 assumes no hardware extensions of the computer 102 and does not require simulation of the hardware resources 106A to 106N of the computer 102.
- the dynamic partitioning of the computer 102 runs directly on/with the hardware resources 106A to 106N (or physical resources), thereby reduces overheads and performance penalties.
- the dynamic partition creation/destruction/modification is managed by the controller 104 (or management services).
- FIG. 2 is a flowchart of a method for use in the computer comprising the hardware resource set, in accordance with an embodiment of the present disclosure.
- FIG.2 is described in conjunction with elements from FIG. 1. With reference to FIG.2, there is shown a method 200 that includes steps 202 to 212.
- the present disclosure provides a method 200 for use in the computer 102 comprising a hardware resource set 106 comprising a plurality of hardware resources 106A to 106N, the method 200 comprising: receiving an indication of a first workload 108; generating a first partition 114 of the computer 102 by assigning a first subset of hardware resources 106A to 106N to the first workload 108; and executing the first workload 108 in the first partition 114 on the assigned first subset of hardware resources 106A to 106N, wherein the first subset is smaller than the hardware resource set 106, and wherein the controller 104 is further configured to receiving an indication of a second workload 110; generating a second partition 116 of the computer 102 by assigning a second subset of hardware resources 106A to 106N to the second workload 110; and executing the second workload 110 in the second partition 116 on the assigned second subset of hardware resources 106Ato 106N, wherein the second subset is smaller than the hardware resource set 106.
- the method 200 for use in the computer 102 comprising a hardware resource set 106 comprising a plurality of hardware resources 106A to 106N.
- the method 200 is used to provide dynamic partitioning of the computer 102.
- the method 200 comprises, receiving an indication of a first workload 108 by the controller 104.
- the method 200 comprises the controller 104 managing dynamic partitions for the computer 102.
- the controller 104 comprises receiving the indication (or an external command) of the first workload 108.
- the indication of the first workload 108 is received from an external device, for triggering partition of the computer 102.
- the first workload 108 is used for augmenting running software (specifically, operating systems) of the computer 102 so as to achieve dynamic partitioning of the computer 102.
- the method 200 further comprises determining, by the controller 104, a first subset of hardware resources 106A to 106N based on properties for the first workload 108
- the controller 104 comprises unplugging the running (or already allocated) hardware resources 106A to 106N based on the properties for the first workload 108, and determining the first subset of hardware resources 106A to 106N.
- the controller 104 comprises determining the hardware resource 106A from the hardware resource set 106 based on the properties of the first workload 108. Therefore, the controller 104 enables allocation and management of the hardware resources 106Ato 106N.
- the properties for the first workload 108 may include an amount of programs, a number of users connecting to its applications, time and processing power interactions consume, and the like.
- the method 200 further comprises, generating a first partition 114 of the computer 102 by assigning a first subset of hardware resources 106 A to 106N to the first workload 108.
- the controller 104 comprises generaing the first partition 114 of the computer 102 based on the received indication of the first workload 108, and also assigning the first subset of hardware resources 106A to 106N to the first workload 108.
- the first partition 114 of the computer 102 acts as a collection of the first subset of hardware resources 106A to 106N, such as with a central processing unit, a memory, devices, and the like. Therefore, the controller 104 comprises accounting the available hardware resources 106A to 106N and its allocation to the first partition 114 of the computer 102
- the method 200 further comprises, executing the first workload 108 in the first partition 114 on the assigned first subset of hardware resources 106A to 106N, wherein the first subset is smaller than the hardware resource set 106.
- the method 200 comprises the controller 104 executing the first workload 108 in the first partition 114 and on the assigned first subset of hardware resources 106A to 106N.
- the controller 104 executes the first workload 108 in the first partition 114 of the computer 102, and on the hardware resource 106A, which is allocated to the first workload 108.
- the controller 104 of the computer 102 comprises providing dynamic partitioning of the computer 102, such as with the first partition 114.
- the dynamic partitioning of the computer 102 assumes no hardware extensions of the computer 102 and does not require simulation of the hardware resources 106A to 106N of the computer 102. Further, the dynamic partitioning of the computer 102 runs directly on/with the hardware resources 106A to 106N (or physical resources), thereby reducing overheads and performance penalties.
- the method 200 further comprises, receiving an indication of a second workload 110 by the controller 104.
- the controller 104 of the computer 102 further comprises receiving the indication of the second workload 110.
- the indication of the second workload 110 is received from an external device for triggering partition of the computer 102.
- the second workload 110 is used for augmenting running software (specifically, operating systems) of the computer 102 so as to achieve dynamic partitioning of the computer 102.
- the method 200 further comprises, generating a second partition 116 of the computer 102 by assigning a second subset of hardware resources 106A to 106N to the second workload 110.
- the controller 104 comprises determining the second subset of hardware resources 106A to 106N based on properties for the second workload 110. Thereafter, the controller 104 comprises generating the second partition 116 of the computer 102 based on the received indication of the second workload 110 and also assigning the second subset of hardware resources 106A to 106N to the second workload 110.
- the second partition 116 of the computer 102 acts as a collection of the second subset of hardware resources 106A to 106N, such as with other central processing units, other memory, devices, and the like. Therefore, the controller 104 accounts the available hardware resources 106A to 106N and its allocation to the second partition 116 of the computer 102.
- the method 200 further comprises, executing the second workload 110 in the second partition 116 on the assigned second subset of hardware resources 106A to 106N, wherein the second subset is smaller than the hardware resource set 106.
- the controller 104 comprises executing the second workload 110 in the second partition 116 and on the assigned second subset of hardware resources 106A to 106N.
- the controller 104 executing the second workload 110 in the second partition 116 of the computer 102, and on the hardware resource 106B, which is allocated to the second workload 110.
- the controller 104 of the computer 102 comprises providing dynamic partitioning of the computer 102, such as with the second partition 116.
- the dynamic partitioning of the computer 102 assumes no hardware extensions of the computer 102 and does not require simulation of the hardware resources 106A to 106N. Further, the dynamic partitioning of the computer 102 runs directly on/with the hardware resources 106A to 106N (or physical resources), thereby reducing overheads and performance penalties.
- the method 200 further comprises determining, by the controller 104, a first operating system for the first workload 108 and initiating the first operating system on the first subset of hardware resources 106A to 106N and executing the first workload 108 under the first operating system.
- the method 200 further comprises determining, by the controller 104, a second operating system for the second workload 110 and initiating the second operating system on the second subset of hardware resources 106A to 106N and executing the second workload 110 under the second operating system.
- the computer 102 is a single multicore machine, where initially a single operating system is running on the hardware resource set 106 of the computer 102.
- the controller 104 of the computer 102 comprises determining the first operating system for the first workload 108 and the second operating system for the second workload 110.
- the first partition 114 of the computer 102 comprises allowing the first workload 108 to run with its desired operating system type, such as the first operating system on the first subset of hardware resources 106A to 106N.
- the second partition 116 of the computer 102 comprises allowing the second workload 110 to run with its desired operating system type, such as the second operating system on the second subset of hardware resources 106A to 106N.
- the initial operating system of the computer 102 schedules new operating systems on the allocated hardware resource set 106.
- the new operating system such as the first operating system and the second operating system boots using only the allocated subset of hardware resources 106A to 106N.
- the first operating system boots only the hardware resource 106A
- the second operating system boots only the hardware resource 106B.
- the two different operating systems run in a partitioned mode of the computer 102.
- the new operating system such as the first operating system and the second operating system, also spawns the controller 104 (or the management service).
- the present disclosure provides an operating system mechanism to enable sharing/partitioning of the hardware resource set 106 between multiple operating systems, such as the first operating system and the second operating system, with such operating system mechanism.
- the number of concurrent operating systems is dynamic
- the hardware resource set 106 (and device) distribution among the concurrent operating systems is also dynamic.
- the method 200 further comprises discontinuing execution of the first workload 108 in the first partition 114 and marking the first subset of hardware resources 106A to 106N as available, thereby deleting the first partition 114.
- the controller 104 is responsible for plugging/unplugging the hardware resources 106A to 106N, such as through a command.
- a mechanism residing inside each partition, such as the first partition 114 is responsible for plugging/unplugging the hardware resources 106A to 106N. Therefore, the controller 104 may discontinue executing the first workload 108 in the first partition 114 of the computer 102.
- the controller 104 may further comprise stoping (or destroying) the operating system of the first partition 114, and also deleting the first partition 114, and the hardware resources 106A to 106N are collected by remaining partitions of the computer 102 according to a defined assignment. Therefore, the controller 104 is capable to remove the partition by requesting the mechanism inside the partition for stoping the operating system.
- the controller 104 provides book keeping of what hardware is allocated to the current operating system and also schedule arbitrary code on unplugged central processing unit core of the corresponding partition, such as the first partition 114.
- the method 200 further comprises adding, by the controller 104, a further hardware resource to the first partition 114 by assigning the further hardware resource to the first subset of hardware resources 106A to 106N.
- the controller 104 comprises requesting one partition of the computer 102, such as the first partition 114 for plugging a further hardware resource.
- the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
- the method 200 further comprises adding, by the the controller 104, the further hardware resource to the first partition 114 in response to receiving a request for additional hardware resource from the first partition 114.
- the controller 104 comprises receiving an external request (or command) for additional hardware resource from a partition, such as the first partition 114 of the computer 102.
- the controller 104 comprises adding the further hardware resource to the first partition 114 of the computer 102. Therefore, the first partition 114 of the computer 102 can be resized based on the received request, and the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
- the method 200 further comprises removing, by the controller 104, a yielded hardware resource from the first partition 114 by removing the yielded hardware resource from the first subset of hardware resources 106A to 106N, thereby executing the first workload 108 in the first partition 114 on the first subset of hardware resources 106A to 106N without the yielded hardware resource.
- the controller 104 comprises receiving a request for additional hardware resource. However, there may be no free hardware resources 106A to 106N that are available. For example, all the hardware resources 106A to 106N are already assigned to different workloads.
- the controller 104 comprises removing a yielded hardware resource (i.e., unused or extra hardware resource) from one of the partitions, such as the first partition 114 of the computer 102, by removing the yielded hardware resource from the first subset of hardware resources 106A to 106N. For example, by removing the yielded first subset of memories from the first partition 114.
- the controller 104 executes the first workload 108 in the first partition 114 on the first subset of hardware resources 106A to 106N without the yielded hardware resource, such as without the first subset of memories.
- the computer 102 can be resized.
- the partitions of the computer 102 can be resized by removing the yielded hardware resource from the first subset of hardware resources 106A to 106N. Further, the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
- the method 200 further comprises receiving, by the controller 104, an indication of a third workload 112, determining whether there are hardware resources 106A to 106N available for a third subset of hardware resources 106A to 106N and if not, retrieving hardware resources 106A to 106N from the first partition 114 and/or the second partition 116, assigning the available hardware resources 106A to 106N to the third subset of hardware resources 106A to 106N, wherein the third subset is smaller than the hardware resource set 106.
- the method 200 further comprises generating, by the controller 104, a third partition 118 of the computer 102 by assigning the third subset of hardware resources 106A to 106N to the third workload 112 and executing the third workload 112 in the third partition 118 on the assigned third subset of hardware resources 106A to 106N.
- the controller 104 of the computer 102 comprises receiving an indication (or an external command) of the third workload 112, such as from an external device. Thereafter, the controller 104 comprises determining the availability of the hardware resources 106A to 106N for the third subset of hardware resources 106A to 106N.
- the controller 104 comprises unplugging the already running (or already allocated) hardware resources 106A to 106N based on the properties for the third workload 112, for determining the third subset of hardware resources 106A to 106N. For example, the controller 104 comprises unplugging the hardware resources 106A to 106N allocated to the first partition 114 and/or the second partition 116 of the computer 102 and determining the third subset of hardware resources 106A to 106N.
- the controller 104 comprises retrieving the hardware resources 106 A to 106N from the first partition 114 and/or the second partition 116 of the computer 102. Thereafter, the controller 104 comprises assigning the determined (or retrieved) hardware resources 106A to 106N to the third subset of hardware resources 106A to 106N. Moreover, the controller 104 comprises assigning the third subset of hardware resources 106A to 106N to the third workload 112 for creating the third partition 118 of the computer 102.
- the controller 104 comprises assigning the hardware resource 106C to the third workload 112 based on the received indication of the third workload 112, and also creating the third partition 118 of the computer 102 for the third workload 112.
- the third partition 118 of the computer 102 acts as a collection of the third subset of hardware resources 106A to 106N.
- the third subset of hardware resources 106A to 106N includes a third subset of processor cores and a third subset of memories. Therefore, the controller 104 comprises accounting the available hardware resources 106A to 106N and its allocation to the third partition 118 of the computer 102.
- the controller 104 executes the third workload 112 in the third partition 118 on the assigned third subset of hardware resources 106A to 106N.
- the controller executes the third workload 112 on the assigned hardware resource 106C which is allocated to the third workload 112, and in the third partition 118 of the computer 102.
- the controller 104 comprises creating a new partition, such as the third partition 118 of the computer 102. For example, by requesting one or more partitions to yield the hardware resources 106A to 106N (if no free hardware resources are available) and/or by requesting one partition to schedule a new operating system on one of the allocated central processing unit cores.
- the method 200 accounts for the hardware resources 106A to 106N and managing different partitions, such as the first partition 114 and the second partition 116 of the computer 102.
- the method 200 comprises providing dynamic partitioning of the computer 102.
- the dynamic partitioning of the method 200 assumes no hardware extensions of the computer 102 and does not require simulation of the hardware resources 106A to 106N.
- the dynamic partitioning of the computer 102 runs directly on/with the hardware resources 106 A to 106N (or physical resources), thereby reducing overheads and performance penalties.
- the dynamic partition creation/destruction/modification are managed by the method 200 (or management services) and done under consensus. In other words, all running management services maintain consensus about hardware resource-to-partition allocation and management of plugging and unplugging the hardware resources 106 A to 106N.
- the present disclosure provides a computer-readable media comprising instructions that when loaded into and executed by the controller 104 enables the controller 104 to execute the method 200.
- a computer program product comprising a non-transitory computer-readable medium having computer instructions stored thereon, the computer instructions being executable by the controller 104 the computer 102 to execute the method 200.
- Examples of implementation of the non-transitory computer- readable medium include, but is not limited to, Electrically Erasable Programmable Read- Only Memory (EEPROM), Random Access Memory (RAM), Read-Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer-readable storage medium, and/or CPU cache memory.
- the computer- readable medium for providing a non-transient memory may include, 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.
- FIG. 3 is an illustration of a computer, in accordance with an embodiment of the present disclosure.
- FIG. 3 is described in conjunction with elements from FIG. 1.
- a block diagram 300 that includes the computer 102, that includes the first partition 114, the second partition 116, and the third partition 118, and a management system 302, a software 304, a hardware 306, and coop mechanism 308A, 308B and 308C.
- first operating system (OS) 310 There is further shown a first operating system (OS) 310, a second operating system 312, a third operating system 314, a first central processing unit (CPUl) 316, a second central processing unit (CPU2) 318, a third central processing unit (CPU3) 320, and a fourth central processing unit (CPU4) 322.
- first memory (MEMl) 324 a first memory (MEMl) 324, a second memory (MEM2) 326, a third memory (MEM3) 328, a fourth memory (MEM4) 330, a first solid-state device (SSD1) 332, a second solid-state device (SSD2) 334, a third solid-state device (SSD3) 336, a fourth solid-state device (SSD3) 338, a first network interface card (NICl) 340, and a second network interface card (NIC2) 342.
- the management system 302 corresponds to the controller 104 of FIG. 1.
- the management system 302 is configured to receive different workloads, such as the first workload 108, the second workload 110, and the third workload 112.
- the management system 302 is further configured to trigger (or create, or delete, or resize) different partitions of the computer 102, such as the first partition 114, the second partition 116, and the third partition 118, and also to execute different workloads based on different partitions of the computer 102.
- the software 304 of the computer 102 corresponds to a software portion (or part) of the computer 102.
- the software 304 may also be referred to as a software set that includes executable instructions (and/or executable files).
- the hardware 306 corresponds to the hardware resource set 106 of FIG. 1.
- the hardware 306 comprises a plurality of hardware resources (e.g., hardware resources 106A to 106N). Examples of hardware 306 includes but are not limited to a central processing unit (CPU), a memory, a memory device, a device, and the like.
- the coop mechanism 308A, 308B and 308C is included in the software 304 of the computer 102.
- the coop mechanism 308A, 308B and 308C is used by each partition of the computer 102 so that the partitions can cooperatively context- switch between one another (e.g., by yielding the central processing unit core and resuming the central processing unit state of other partition).
- the first operating system 310, the second operating system 312, and the third operating system 314 are part of software 304 and are assigned to different partitions of the computer 102.
- the first operating system 310 is assigned to the first partition 114
- the second operating system 312 is assigned to the second partition 116
- the third operating system 314 is assigned to the third partition 118.
- Each of the first central processing unit 316, the second central processing unit 318, the third central processing unit 320, and the fourth central processing unit 322 includes suitable logic, circuitry, interfaces, and/or code that is configured to execute different operating systems of different partitions of the computer 102.
- Examples of the first central processing unit 316, the second central processing unit 318, the third central processing unit 320, and the fourth central processing unit 322 include, but are not limited to, a Reduced Instruction Set Computing (RISC) processor, an Application-Specific Integrated Circuit (ASIC) processor, a Complex Instruction Set Computing (CISC) processor, an Explicitly Parallel Instruction Computing (EPIC) processor, a Very Long Instruction Word (VLIW) processor, a graphics processing unit (GPU), a state machine, and/or other processors or circuits.
- RISC Reduced Instruction Set Computing
- ASIC Application-Specific Integrated Circuit
- CISC Complex Instruction Set Computing
- EPIC Explicitly Parallel Instruction Computing
- VLIW Very Long Instruction Word
- GPU graphics processing unit
- state machine and/or other processors or circuits.
- Each of the first memory 324, the second memory 326, the third memory 328, and the fourth memory 330 includes suitable logic, circuitry, and/or interfaces that is configured to store a machine code and/or a set of the instructions executable by the corresponding central processing units.
- Examples of implementation of the first memory 324, the second memory 326, the third memory 328, and the fourth memory 330 may include, but are not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Dynamic Random Access Memory (DRAM), Random Access Memory (RAM), Read-Only Memory (ROM), Flash memory, and/or CPU cache memory.
- EEPROM Electrically Erasable Programmable Read-Only Memory
- DRAM Dynamic Random Access Memory
- RAM Random Access Memory
- ROM Read-Only Memory
- Flash memory and/or CPU cache memory.
- Each of the first solid-state device (SSD1) 332, the second solid-state device (SSD2) 334, the third solid-state device (SSD3) 336, and the fourth solid-state device (SSD3) 338 includes suitable logic, circuitry, and/or interfaces that is configured to store the corresponding operating systems and/or a set of the instructions executable by the corresponding central processing units.
- the first network interface card (NICl) 340 and the second network interface card (NIC2) 342 include suitable logic, circuitry, and/or interfaces that is configured to connect an external device.
- the computer 102 is a single multicore machine, where initially a single operating system is running on the hardware 306 of the computer 102. Thereafter, the management system 302 of the computer 102 receives an indication (or an external command) of the first workload 108 (of FIG.1) and an indication of the second workload 110 (of FIG.1) so as to trigger partitions of the computer 102. Moreover, the management system 302 generates the first partition 114 of the computer 102 based on the received indication of the first workload 108 and generates the second partition 116 of the computer 102 based on the received indication of the second workload 110.
- the management system 302 is configured to unplug the running (or already allocated) hardware 306 based on the properties for the first workload 108 and the second workload 110 so as to determine a first subset and a second subset of hardware 306.
- the management system 302 further assigns the first subset of hardware 306 to the first partition 114 and assign the second subset of hardware 306 to the second partition 116.
- the management system 302 assign the first central processing unit 316, the second central processing unit 318, the first memory 324, the first solid-state device 342, and the second network interface card 342 to the first partition 114, as shown in FIG. 3.
- the management system 302 assign the fourth central processing unit 322, the fourth memory 330, the second solid-state device 334, and the fourth solid-state device 338 to the second partition 116 of the computer 102, as shown in FIG. 3.
- the first workload 108 and the second workload 110 are used for augmenting running software (specifically, operating systems) of the computer 102 so as to achieve dynamic hardware partitioning of the computer 102. Therefore, the management system 302 is accounting the available hardware 306 and its allocation to the first partition 114 and the second partition 116 of the computer 102. Thereafter, the management system 302 executes the first workload 108 in the first partition 114 and on the assigned first subset of hardware 306 and executes the second workload 110 in the second partition 116 on the assigned second subset of hardware 306.
- the management system 302 of the computer 102 determines the first operating system 310 for the first workload 108, and the second operating system 312 for the second workload 110. Thereafter, the first partition 114 of the computer 102 allows the first workload 108 to run with its desired operating system type, such as the first operating system 310 on the first subset of hardware 306. Similarly, the second partition 116 of the computer 102 allows the second workload 110 to run with its desired operating system type, such as the second operating system 312 on the second subset of hardware 306. In other words, the initial operating system of the computer 102 schedules new operating systems on the allocated hardware 306. Therefore, the new operating system, such as the first operating system 310 and the second operating system 312, boots using only an allocated subset of hardware 306.
- the first operating system 310 and the second operating system 312 run in a partitioned mode of the computer 102.
- the new operating system such as the first operating system 310 and the second operating system 312 also spawns the management system 302 (or the controller 104). Therefore, the present disclosure provides an operating system mechanism to enable sharing/partitioning of the hardware 306 between multiple operating systems, such as the first operating system 310 and the second operating system 312 with such operating system mechanism.
- the number of concurrent operating systems is dynamic, and the hardware 306 (and device) distribution among the concurrent operating systems is also dynamic. Therefore, the partitions of the computer 102, such as the first partition 114 and the second partition 116, are assigned to a specific subset of hardware resources 106A to 106N so as to ensures the hardware resources 106A to 106N limits.
- the management system 302 of the computer 102 also receives an indication of the third workload 112 (of FIG. 1). Thereafter, the management system 302 determines the availability of the hardware 306 for a third subset of hardware 306. In an example, if the hardware 306 (or the hardware resources 106A to 106N of FIG. 1) are available, then the management system 302 unplug the already running (or already allocated) hardware 306 based on the properties for the third workload 112, so as to determine the third subset of hardware 306. For example, the management system 302 unplug the hardware 306 allocated to the first partition 114 and/or the second partition 116 of the computer 102 and determine the third subset of hardware 306.
- the management system 302 retrieves the hardware 306 from the first partition 114 and/or the second partition 116 of the computer 102. Thereafter, the management system 302 assigns the determined (or retrieved) hardware 306 to the third subset of hardware 306. Moreover, the management system 302 assigns the third subset of hardware 306 to the third workload 112 so as to create the third partition 118 of the computer 102. In an example, the management system 302 assigns the third subset of hardware 306 to the third workload 112 based on the properties of the third workload 112.
- the management system 302 assign the third central processing unit 320, the second memory 326, the third memory 328, the third solid-state device 336, and the first network interface card 340 to the third partition 118 of the computer 102, as shown in FIG. 3. Therefore, the management system 302 is accounting for the available hardware 306 and its allocation to the third partition 118 of the computer 102. Thereafter, the management system 302 executes the third workload 112 in the third partition 118 on the assigned third subset of hardware 306. In an implementation, the management system 302 of the computer 102 determines the third operating system 314 for the third workload 112.
- the third partition 118 of the computer 102 allows the third workload 112 to run with its desired operating system type, such as the third operating system 314 on the third subset of hardware 306.
- the third operating system 314 is different from the first operating system 310 and the second operating system 312.
- the present disclosure can be used for the workloads which require different operating system types (or versions).
- the management system 302 receives a request for additional hardware 306.
- a shared hardware is used, which is the part of the two subsets of the hardware 306, for example, part of the first subset as well as the second subset of hardware 306.
- the shared hardware 306 is utilized for a time period so as to execute the first workload 108 in the first partition 114.
- a plurality of the hardware 306 has to be over committed, such as a central processing unit partitions using the same hardware resource execute at the same time.
- the management system 302 actively shifts execution from first partition 114 to the second partition 116, such as through the coop mechanism 308A, 308B and 308C.
- one partition of the computer 102 such as the first partition 114, can cooperatively context- switch between one another, such as by yielding the central processing unit core (e.g., first central processing unit 316) and resuming the central processing unit state of other partition.
- the hardware 306 can be shared and not just partitioned.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2021/061688 WO2022233399A1 (en) | 2021-05-04 | 2021-05-04 | System and method of dynamically partitioning computers at runtime |
Publications (1)
Publication Number | Publication Date |
---|---|
EP4323868A1 true EP4323868A1 (en) | 2024-02-21 |
Family
ID=75801601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP21723713.0A Pending EP4323868A1 (en) | 2021-05-04 | 2021-05-04 | System and method of dynamically partitioning computers at runtime |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4323868A1 (zh) |
CN (1) | CN117280325A (zh) |
WO (1) | WO2022233399A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266823B2 (en) * | 2002-02-21 | 2007-09-04 | International Business Machines Corporation | Apparatus and method of dynamically repartitioning a computer system in response to partition workloads |
-
2021
- 2021-05-04 WO PCT/EP2021/061688 patent/WO2022233399A1/en active Application Filing
- 2021-05-04 EP EP21723713.0A patent/EP4323868A1/en active Pending
- 2021-05-04 CN CN202180097729.3A patent/CN117280325A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022233399A1 (en) | 2022-11-10 |
CN117280325A (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Enabling FPGAs in the cloud | |
US10908968B2 (en) | Instantiating a virtual machine with a virtual non-uniform memory architecture and determining a highest detected NUMA ratio in a datacenter | |
US9766945B2 (en) | Virtual resource scheduling for containers with migration | |
US10740148B2 (en) | Accelerated data operations in virtual environments | |
EP2411915B1 (en) | Virtual non-uniform memory architecture for virtual machines | |
US11093297B2 (en) | Workload optimization system | |
US8661435B2 (en) | System and method for affinity dispatching for task management in an emulated multiprocessor environment | |
US10353739B2 (en) | Virtual resource scheduling for containers without migration | |
US8661448B2 (en) | Logical partition load manager and balancer | |
US20100115510A1 (en) | Virtual graphics device and methods thereof | |
Gu et al. | GaiaGPU: Sharing GPUs in container clouds | |
US10474484B2 (en) | Offline management of virtualization software installed on a host computer | |
US9176787B2 (en) | Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor | |
US20190146847A1 (en) | Dynamic distributed resource management | |
CN102141931A (zh) | 一种创建虚拟机的方法、虚拟机监控器及虚拟机系统 | |
Satzke et al. | Efficient gpu sharing for serverless workflows | |
Gankevich et al. | Constructing virtual private supercomputer using virtualization and cloud technologies | |
US10810117B2 (en) | Virtualization of multiple coprocessor memory | |
US9971785B1 (en) | System and methods for performing distributed data replication in a networked virtualization environment | |
US9158554B2 (en) | System and method for expediting virtual I/O server (VIOS) boot time in a virtual computing environment | |
US20150220442A1 (en) | Prioritizing shared memory based on quality of service | |
US20150186180A1 (en) | Systems and methods for affinity dispatching based on network input/output requests | |
US20190278714A1 (en) | System and method for memory access latency values in a virtual machine | |
EP4323868A1 (en) | System and method of dynamically partitioning computers at runtime | |
Yang et al. | The implementation of a virtual desktop infrastructure with GPU accelerated on OpenStack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20231115 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) |