EP4323868A1 - System and method of dynamically partitioning computers at runtime - Google Patents

System and method of dynamically partitioning computers at runtime

Info

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
Application number
EP21723713.0A
Other languages
German (de)
French (fr)
Inventor
Saggi Mizrahi
Dima KUZNETSOV
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing 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 Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Publication of EP4323868A1 publication Critical patent/EP4323868A1/en
Pending legal-status Critical Current

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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

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)

Abstract

A computer comprises a controller, and a hardware resource set comprises a plurality of hardware resources. The controller is configured to receive an indication of a first workload and a second workload. The computer is further configured to generate a first partition of the computer by assigning a first subset of hardware resources to the first workload and generate a second partition of the computer by assigning a second subset of hardware resources to the second workload. The computer executes the first workload in the first partition on the assigned first subset of hardware resources and executes the second workload in the second partition on the assigned second subset of hardware resources. The first subset and the second subset of hardware resources are smaller than the hardware resource set. The controller provides dynamic partitioning of the computer and reduces overheads and performance penalties.

Description

SYSTEM AND METHOD OF DYNAMICALLY PARTITIONING COMPUTERS
AT RUNTIME
TECHNICAL FIELD 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.
BACKGROUND
Generally, data centres are used to organize, process, store and distribute large amounts of data. In such data centres, 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. Nowadays, 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.
Therefore, it is desirable to partition each server in such a way that each partition of the server suits a specific workload. However, in such cases, 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. In other words, 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. Further, each virtual machine assumes control of a virtual hardware either simulated by a hypervisor software or implemented by a hardware architecture. However, 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. In certain scenarios, 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. However, 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). Moreover, 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.
Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional approaches of running several operating systems on the same hardware in the conventional computer systems. SUMMARY
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.
One or more objectives of the present disclosure is achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims.
In one aspect, 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.
In the present disclosure 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.
In an implementation form, the controller is further configured to be based on software instructions that are executed by the controller. In this implementation, it is advantageous to use a software-based solution for hardware partitioning of the computer.
In an implementation form, 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.
In this implementation, a first operating system and a second operating system boots using only an allocated subset of hardware resources. Moreover, 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.
In an implementation form, the controller is further configured to determine the first subset of hardware resources based on properties for the first workload.
By virtue of determining the first subset of hardware resources, the controller enables allocation and management of the hardware resources.
In an implementation form, the first operating system is not the same as the second operating system.
As the first operating system is not the same as the second operating system, therefore the present disclosure can be used for the workloads which require different operating system types (or versions).
In an implementation form, the plurality of hardware resources comprises a plurality of processor cores and a plurality of memories, and wherein the first subset of hardware resources comprises a first subset of processor cores and a first subset of memories and the second subset of hardware resources comprises a second subset of processor cores and a second subset of memories. In this implementation, the first subset of hardware resources and the second subset of hardware resources are beneficial to run two desired operating systems separately.
In an implementation form, 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.
In to this implementation, the controller is capable of removing a partition of the computer.
In an implementation form, 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.
As 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.
In an implementation form, 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.
In an implementation form, wherein the request for additional hardware from the first partition is based on a determination that the assigned subset is not sufficient.
In this implementation, it is advantageous to receive request to resize the partitions of the computer. Moreover, the controller is capable to dynamically control hardware resource assignment of the computer, based on the requirement.
In an implementation form, 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. In this implementation, the partitions of the computer can be resized by removing the yielded hardware resource from the first subset of hardware resources.
In an implementation form, 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.
By virtue of using a shared hardware resource, the hardware resources can be shared and not just partitioned. Beneficially, as compared to the conventional approach, the dynamic partition of the present disclosure does not ensures isolation between the partitions of the computer and cannot enforces access control.
In an implementation form, 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.
Beneficially, a partition, a creation, a destruction or a modification are managed by the controller and done under consensus.
In another aspect, 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.
The disclosed method achieves all the technical effects of the present disclosure.
It is to be appreciated that all the aforementioned implementation forms can be combined. It has to be noted that all devices, elements, circuitry, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.
Additional aspects, advantages, features and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.
BRIEF DESCRIPTION OF THE DRAWINGS
The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers.
Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:
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; and
FIG. 3 is an illustration of the computer, in accordance with an embodiment of the present disclosure.
In the accompanying drawings, 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. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing.
DETAILED DESCRIPTION OF EMBODIMENTS
The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the present disclosure are also possible.
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. With reference to FIG. 1, there is shown a block diagram 100 of a computer 102. The 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. There is further shown a first workload 108, a second workload 110, a third workload 112, a first partition 114, a second partition 116 and a third partition 118.
In one aspect, 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. In this case, 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. In an example, 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. In an example, the first workload 108 may include a first operating system, the second workload 110 may include a second operating system, and 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.
In operation, 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. In an example, the indication of the first workload 108 is received from an external device so as to trigger the partition of the computer 102. In another example, the controller 104 is configured to receive the indication of the first workload 108 from a computing device associated with the computer 102. In other words, 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.
In accordance with an embodiment, 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. In other words, 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. For example, 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.
In the present disclosure, 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. In other words, 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. Moreover, 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. For example, 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. In other words, 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. Moreover, 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. For example, 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. Similarly, 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. Moreover, 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. In an example, 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). Beneficially, in comparison to the conventional approach, 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. Moreover, 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.
In accordance with an embodiment, the controller 104 is further configured to be based on software instructions that are executed by the controller 104. As the controller 104 is based on software instructions, therefore the present disclosure provides a software-based solution for hardware partitioning of the computer 102. As a result, the present disclosure can be implemented in conventional computers without a need for much hardware upgradations.
In accordance with an embodiment, 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. In an implementation, 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. 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 on the first subset of hardware resources 106A to 106N. 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 on the second subset of hardware resources 106A to 106N. In other words, 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. Moreover, the two different operating systems run in a partitioned mode of the computer 102. In comparions to some conventional computers where running more than one operating system on same hardware is not possible. In an implementation, the new operating system, such as the first operating system and the second operating system, also spawns the controller 104 (or the management service). Moreover, 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. In an implementation, 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.
In accordance with an embodiment, the first operating system is not the same as the second operating system. In other words, the concurrent operating systems can be of different versions and kinds. Beneficially as compared to the conventional approach, the present disclosure can be used for the workloads which require different operating system types (or versions). In an example, the first operating system may be Linux v5.5, and 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. For instance, the different operating systems may have different versions, or the OS itself may be different.
In accordance with an embodiment, the plurality of hardware resources 106A to 106N comprises a plurality of processor cores and a plurality of memories, and wherein the first subset of hardware resources 106A to 106N comprises a first subset of processor cores and a first subset of memories and the second subset of hardware resources 106A to 106N comprises a second subset of processor cores and a second subset of memories. In an implementation, 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. In an example, if only eight cores are available for the computer 102, then only eight partitions can be active at any given time, and the partitions of the computer 102 will need to be scheduled and swapped voluntarily by one of the currently active partitions. Therefore, the first subset of hardware resources 106A to 106N, such as the hardware resource 106A, 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. In other words, in the dynamic partitioning the computer 102, 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.
In accordance with an embodiment, 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. In an implementation, the controller 104 is responsible to plug/unplug the hardware resources 106A to 106N, such as through a command. In other words, 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. Thereby, the first subset of the hardware resources 106A to 106N, such as the hardware resource 106A, is available for further allocation. In other words, 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.
In accordance with an embodiment, 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. In other words, the controller 104 requests one partition of the computer 102, such as the first partition 114 to plug in a further hardware resource. As the further hardware resource is assigned to the first subset of hardware resources 106A to 106N, therefore, the first partition 114 can be resized by assigning further hardware resources 106A to 106N. Moreover, the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102. In accordance with an embodiment, 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. In an implementation, 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. Moreover, based on the received request, 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.
In accordance with an embodiment, 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. In an implementation, 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. In such as case, 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.
In accordance with an embodiment, 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. In an implementation, 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. Thus, in such a case, 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. Therefore, 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.
In accordance with an embodiment, 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. In an implementation, the controller 104 receives a request for additional hardware. However, there may be no free hardware resources 106A to 106N that are available. In such a case, 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. As a result, the shared hardware resource is utilized for a time period so as to execute the first workload 108 in the first partition 114. In other words, several hardware resources 106A to 106N are used (such as a central processing unit), and different partitions are uses the same hardware resource and execute it at the same time. In an implementation, the controller 104 actively shifts execution from first partition 114 to the second partition 116. For example, 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. Beneficially, as compared to the conventional approach, the hardware resources 106A to 106N can be shared and not just partitioned.
In accordance with an embodiment, the time period is until the first partition 114 hands over the shared hardware resource. In an implementation, 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. Beneficially, as compared to the conventional approach, the dynamic partition of the present disclosure does not ensure isolation between the partitions of the computer 102 and cannot enforce access control. In an implementation, 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.
In accordance with an embodiment, 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. In other words, 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. In an implementation, if the hardware resources 106A to 106N are available, then 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. In another implementation, if no free hardware resources 106A to 106N are available, then 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. In other words, the third partition 118 of the computer 102 acts as a collection of the third subset of hardware resources 106A to 106N. For example, 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.
In other words, 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. Beneficially, in comparison to the conventional approach, 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.
Therefore, in the present disclosure, 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. Beneficially in comparison with the conventional approach, the controller 104 of the computer 102 provides dynamic partitioning of the computer 102. Moreover, 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 reduces overheads and performance penalties. Moreover, 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.
In another aspect, 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.
At step 202, 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. Moreover, the controller 104 comprises receiving the indication (or an external command) of the first workload 108. In an example, the indication of the first workload 108 is received from an external device, for triggering partition of the computer 102. In other words, 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.
In accordance with an embodiment, 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 In other words, 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. For example, 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.
At step 204, 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. In other words, 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. In other words, 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
At step 206, 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. In other words, 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. For example, 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. Beneficially in comparison with the conventional approach, the controller 104 of the computer 102 comprises providing dynamic partitioning of the computer 102, such as with the first partition 114. Moreover, 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.
At step 208, the method 200 further comprises, receiving an indication of a second workload 110 by the controller 104. In other words, the controller 104 of the computer 102 further comprises receiving the indication of the second workload 110. In an example, the indication of the second workload 110 is received from an external device for triggering partition of the computer 102. In other words, 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.
At step 210, 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. In an example, 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. In other words, 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.
At step 212, 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. In other words, 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. For example, 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. Beneficially in comparison with the conventional approach, the controller 104 of the computer 102 comprises providing dynamic partitioning of the computer 102, such as with the second partition 116. Moreover, 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.
In accordance with an embodiment, 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. In an implementation, 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. Thereafter, 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. Thereafter, 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. Similarly, 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. In other words, 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. Moreover, the two different operating systems run in a partitioned mode of the computer 102. In an implementation, the new operating system, such as the first operating system and the second operating system, also spawns the controller 104 (or the management service). Moreover, 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. In an implementation, 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.
In accordance with an embodiment, 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. In an implementation, the controller 104 is responsible for plugging/unplugging the hardware resources 106A to 106N, such as through a command. In other words, 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. Thereby, the first subset of the hardware resources 106A to 106N, such as the hardware resource 106A, is available for further allocation. In other words, 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. 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.
In accordance with an embodiment, 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. In other words, the controller 104 comprises requesting one partition of the computer 102, such as the first partition 114 for plugging a further hardware resource. As the further hardware resource is assigned to the first subset of hardware resources 106A to 106N, therefore, the first partition 114 can be resized by assigning further hardware resources 106A to 106N. Moreover, the controller 104 is capable to dynamically control the number of partitions and hardware resource assignment of the computer 102.
In accordance with an embodiment, 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. In an implementation, 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. Moreover, based on the received request, 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.
In accordance with an embodiment, 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. In an implementation, 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. Thus, in such a case, 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. 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. Therefore, 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.
In accordance with an embodiment, 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. In other words, 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. In an implementation, if the hardware resources 106A to 106N are available, then 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. In another implementation, if no free hardware resources 106A to 106N are available, then 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. For example, 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. In other words, the third partition 118 of the computer 102 acts as a collection of the third subset of hardware resources 106A to 106N. For example, 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. 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 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. In other words, 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.
Therefore, 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. Beneficially in comparison with the conventional approach, the method 200 comprises providing dynamic partitioning of the computer 102. Moreover, 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. Further, 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. Moreover, 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.
In another aspect, 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. In one aspect, a computer program product is provided 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. With reference to FIG. 3, there is shown 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. 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. There is further shown 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. For example, the first operating system 310 is assigned to the first partition 114, the second operating system 312 is assigned to the second partition 116, and 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.
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.
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.
Initially, 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. In an implementation, 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. For example, 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. Similarly, 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.
In other words, 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.
In an implementation, 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. Moreover, the first operating system 310 and the second operating system 312 run in a partitioned mode of the computer 102. In an implementation, 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. In an implementation, 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.
In an implementation, 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. In another example, if no free hardware 306 is available, then 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. For example, 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. Thereafter, 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. In an example, the third operating system 314 is different from the first operating system 310 and the second operating system 312. Beneficially as compared to the conventional approach, the present disclosure can be used for the workloads which require different operating system types (or versions).
In an implementation, the management system 302 receives a request for additional hardware 306. However, there may be no free hardware 306 that is available. In such a case, 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. As a result, the shared hardware 306 is utilized for a time period so as to execute the first workload 108 in the first partition 114. In other words, 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. In an implementation, 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. For example, 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. Beneficially, as compared to the conventional approach, the hardware 306 can be shared and not just partitioned.
Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as "including", "comprising", "incorporating", "have", "is" used to describe and claim the present disclosure are intended to be construed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. Reference to the singular is also to be construed to relate to the plural. 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 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". It is appreciated that certain features of the present disclosure, 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 combination or as suitable in any other described embodiment of the disclosure.

Claims

1. 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 (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).
2. The computer (102) according to claim 1, wherein the controller (104) is further configured to be based on software instructions that are executed by the controller (104).
3. The computer (102) according to any previous claim 1, wherein the controller (104) is further configured to determine a first operating system (310) for the first workload (108) and to initiate the first operating system (310) on the first subset of hardware resources (106A to 106N) and execute the first workload (108) under the first operating system (310), and determine a second operating system (312) for the second workload (110) and to initiate the second operating system (312) on the second subset of hardware resources (106A to 106N) and execute the second workload (110) under the second operating system (312).
4. The computer (102) according to any previous claim, wherein the controller (104) is further configured to determine the first subset of hardware resources (106A to 106N) based on properties for the first workload (108).
5. The computer (102) according to any previous claim, wherein the first operating system (310) is not the same as the second operating system (312).
6. The computer (102) according to any previous claim, wherein the plurality of hardware resources (106A to 106N) comprises a plurality of processor cores and a plurality of memories, and wherein the first subset of hardware resources (106A to 106N) comprises a first subset of processor cores and a first subset of memories and the second subset of hardware resources (106A to 106N) comprises a second subset of processor cores and a second subset of memories.
7. The computer (102) according to any previous claim, wherein the controller (104) is further configured to discontinue executing of the first workload (108) in the in the first partition (112) and to mark the first subset of hardware resources (106A to 106N) as available, thereby deleting the first partition (112).
8. The computer (102) according to any previous claim, wherein the controller (104) is further configured to add a further hardware resource to the first partition (112) by assigning the further hardware resource to the first subset of hardware resources (106A to 106N).
9. The computer (102) according to claim 8, wherein the controller (104) is further configured to add the further hardware resource to the first partition (112) in response to receiving a request for additional hardware resource from the first partition (112).
10. The computer (102) according to claim 8, wherein the request for additional hardware resource from the first partition (112) is based on a determination that the assigned subset of hardware resources (106A to 106N) is not sufficient.
11. The computer (102) according to any previous claim, wherein the controller (104) is further configured to remove a yielded hardware resource from the first partition (112) 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 (112) on the first subset of hardware resources (106A to 106N) without the yielded hardware resource.
12. The computer (102) according to any previous claim, wherein 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 (112) utilizing the shared hardware resource for a time period.
13. The computer (102) according to claim 12, wherein the time period is until the first partition (112) hands over the shared hardware resource.
14. The computer (102) according to any previous claim, wherein 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 (106 A to 106N) and if not retrieve hardware resources (106 A to 106N) from the first 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); 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).
15. A method (200) for use in computer (102) comprising a hardware resource set (106) comprising a plurality of hardware resources (106 A to 106N), the method 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 (106 A 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 (106A to 106N), wherein the second subset is smaller than the hardware resource set (106).
16. A computer-readable media comprising instructions that when loaded into and executed by a controller (104) enables the controller (104) to execute the method (200) according to claim 15.
EP21723713.0A 2021-05-04 2021-05-04 System and method of dynamically partitioning computers at runtime Pending EP4323868A1 (en)

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 (en)
CN (1) CN117280325A (en)
WO (1) WO2022233399A1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
WO2022233399A1 (en) 2022-11-10
CN117280325A (en) 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
EP2411915B1 (en) Virtual non-uniform memory architecture for virtual machines
US10740148B2 (en) Accelerated data operations in virtual environments
US11093297B2 (en) Workload optimization system
US8661435B2 (en) System and method for affinity dispatching for task management in an emulated multiprocessor environment
US8661448B2 (en) Logical partition load manager and balancer
US20100115510A1 (en) Virtual graphics device and methods thereof
US9176787B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
US10474484B2 (en) Offline management of virtualization software installed on a host computer
Gu et al. GaiaGPU: Sharing GPUs in container clouds
US20190146847A1 (en) Dynamic distributed resource management
Gankevich et al. Constructing virtual private supercomputer using virtualization and cloud technologies
Satzke et al. Efficient gpu sharing for serverless workflows
US10810117B2 (en) Virtualization of multiple coprocessor memory
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
US20150160973A1 (en) Domain based resource isolation in multi-core systems
US9158554B2 (en) System and method for expediting virtual I/O server (VIOS) boot time in a virtual computing environment
US20150186180A1 (en) Systems and methods for affinity dispatching based on network input/output requests
EP4323868A1 (en) System and method of dynamically partitioning computers at runtime
US20190278714A1 (en) System and method for memory access latency values in a virtual machine
Um et al. Development of a virtualized supercomputing environment for genomic analysis
Park et al. Ballooning graphics memory space in full GPU virtualization environments
US20190278715A1 (en) System and method for managing distribution of virtual memory over multiple physical memories

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