DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s remarks filed July 8, 226 have been fully considered.
With respect to the 35 USC § 112 related arguments, these arguments are moot due to Applicant’s amendments to the claims.
With respect to the 35 USC § 103 related arguments, Applicant argues that the claims are allowable because:
“Accordingly, by the rejection's own findings, the entire weight of teaching a plurality of instrumentation modules in the SoC rests on Maurya alone. Further, the rejection alleges that Maurya performs the claimed periodic collection and analysis of statistical data by which the hardware container is managed. Therefore, if Maurya fails to disclose the claimed instrumentation modules in the SoC. the rejection necessarily fails irrespective of the teachings of the remaining references.” (Applicant’s Remarks, Pg. 9).
Examiner respectfully disagrees. In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). As discussed in the instant Office Action, the amended claim language is rejected with a combination of the applied prior art. For example, the Cannata reference, when combined with the other reference teaches instrumentation modules. ([0092], Telemetry might arise from activity monitors comprising software agents or daemons deployed to compute units).
“Maurya fails to disclose periodic collection and analysis of statistical data, as required by the claims.” (Applicant’s Remarks, Pg. 9).
Examiner respectfully disagrees. In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). As discussed in the Office Action the Cannata reference teaches the limitation at issue. ([0027], management processors may provide templates for compute units as well as dynamic adjustments based on telemetry data; and [0092], Telemetry for the triggers can be monitored by a management processor, and responsive to the telemetry satisfying one or more thresholds or triggers, then adjustments to the target compute units can be automatically made according to the policies by the management processor; Examiner Note: target compute units are based on hardware containers: [0016], hardware configurations provide several preconfigured or predetermined configurations which allow for faster user deployment of arbitrarily defined machines, referred to herein as compute units, for various data processing and storage tasks. The term machine template is used herein, and other terms can also be applied, such as ... hardware container; and [0092], Telemetry might arise from activity monitors comprising software agents or daemons deployed to compute units)).
“Applicant respectfully submits that Maurya fails to disclose the teaching of instrumentation modules in the SoC, and that no articulated reason supports combining Maurya with the base combination to arrive at this limitation.” (Applicant’s Remarks, Pg. 9).
Examiner respectfully disagrees. As discussed in the prior Office Action, Maurya teaches this limitation because Maurya teaches implementing the functionality of its embodiments on a SOC. ([0018], data provided by the container statistics agents enables the scheduler to monitor and analyze the distribution of containers throughout the hosts of the system; and [0088], functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include...System-on-a-chip systems (SOCs))).
In response to applicant’s argument that there is no teaching, suggestion, or motivation to combine the references, the examiner recognizes that obviousness may be established by combining or modifying the teachings of the prior art to produce the claimed invention where there is some teaching, suggestion, or motivation to do so found either in the references themselves or in the knowledge generally available to one of ordinary skill in the art. See In re Fine, 837 F.2d 1071, 5 USPQ2d 1596 (Fed. Cir. 1988), In re Jones, 958 F.2d 347, 21 USPQ2d 1941 (Fed. Cir. 1992), and KSR International Co. v. Teleflex, Inc., 550 U.S. 398, 82 USPQ2d 1385 (2007). In this case, each of the applied prior art references are related to telemetry monitoring and resource allocation.
“The only apparent basis for connecting these two disparate teachings is Applicant's own claim language, used as a hindsight roadmap to reconstruct the claimed invention.” (Applicant’s Remarks, Pg. 10).
Examiner respectfully disagrees. In response to applicant's argument that the examiner's conclusion of obviousness is based upon improper hindsight reasoning, it must be recognized that any judgment on obviousness is in a sense necessarily a reconstruction based upon hindsight reasoning. But so long as it takes into account only knowledge which was within the level of ordinary skill at the time the claimed invention was made, and does not include knowledge gleaned only from the applicant's disclosure, such a reconstruction is proper. See In re McLaughlin, 443 F.2d 1392, 170 USPQ 209 (CCPA 1971).
“Because none of the cited references, alone or in combination, address this specific technical problem in the manner recited in claim 1, the cited combination fails to render claim 1 obvious.” (Applicant’s Remarks, Pg. 11).
Examiner respectfully disagrees. In response to applicant's argument that Rivas in view of Metsch, Cannata, and Maurya is nonanalogous art, it has been held that a prior art reference must either be in the field of the inventor’s endeavor or, if not, then be reasonably pertinent to the particular problem with which the inventor was concerned, in order to be relied upon as a basis for rejection of the claimed invention. See In re Oetiker, 977 F.2d 1443, 24 USPQ2d 1443 (Fed. Cir. 1992). In this case, Rivas, Metsch, Cannata, and Maurya are all in the same field of endeavor as the claimed invention. For example, these references are each related to telemetry monitoring and resource allocation.
“The rejection appears to rely solely on the superficial commonality that an identifier may expire and be reused. The rejection does not articulate any specific technical reason why a person of ordinary skill in the art, addressing intra-SoC hardware resource allocation and metering, would have looked to a network-layer UE discovery identifier scheme, nor does it explain how Koo's teachings would be implemented within the resource identifier pool of a processing element as claimed. Even if the cited references were combined in the manner proposed, reusing a temporary UE identifier for device discovery would not teach or suggest reusing a globally unique resource identifier for a second SoC resource after a predefined cycle of allocation, metering, and resource usage limit.” (Applicant’s Remarks, Pg. 12).
Examiner respectfully disagrees. In response to applicant's argument that Koo is nonanalogous art, it has been held that a prior art reference must either be in the field of the inventor’s endeavor or, if not, then be reasonably pertinent to the particular problem with which the inventor was concerned, in order to be relied upon as a basis for rejection of the claimed invention. See In re Oetiker, 977 F.2d 1443, 24 USPQ2d 1443 (Fed. Cir. 1992). In this case, Koo teaches reusable resource identifiers in a resource management and allocation context. . ([0030], A temporary identifier that was assigned to a first UE and the expiration value of which has expired may subsequently be assigned to a second UE with a new expiration value. Thus the set of temporary identifiers is a renewable resource, with the temporary identifiers shared (at different times) among different UEs; and [0112], The higher authorized issuer may refrain from allocating/issuing a temporary identifier to any lower authorized issuer or UE while the temporary identifier is allocated to a lower authorized issuer in order to prevent a potential temporary identifier collision. By doing this, an authorized issuer maintains a completely random pool of temporary identifiers, which guarantees the privacy of the UE for which a temporary identifier is issued).
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-2, 4-10, 13-18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Rivas et al. (US 12530222) in view of Metsch et al. (US 20180027060), Cannata et al. (US 20200341930), and Maurya et al. (US 20230229490).
As per claim 1, Rivas teaches the invention substantially as clamed including a method for managing hardware containerization in a wireless network architecture (Column 5, Lines 59-62, the cloud-based QC environment may provide on-demand access to a shared pool of configurable computing resources; Column 6, Lines 6-12, the servers 108 may provide services by defining virtualized resources for each user account. For instance, the virtualized resources may be constructed as virtual machines, containers, or virtualized resources that can be provisioned for a user account... An example computing system that utilizes containers as virtualized resources is shown in FIG. 13; and Column 28, Lines 38-40, example computing system 1308 can provide services to the user devices 110, for example, as a cloud-based or remote-accessed computer system), comprising:
transmitting to a host processor, capability information of a plurality of hardware units (Column 24, Lines 48-53, the scheduler may send resource requests to a resource availability/allocation engine for identification of resource offerings and communication of the same to the scheduler. The resource availability/allocation engine may utilize an algorithm or application of select criteria in order to identify resource offerings for a particular user) in a system on chip (SoC) (Column 4, Lines 12-19, resources 107 may include ...systems-on-chips (SoCs)),
wherein the capability information of each hardware unit from the one or more plurality of hardware units includes a plurality of controllable hardware allocation parameters (Column 24, Lines 53-57, A wide range of algorithms and criteria can be chosen for use by the resource availability/allocation engine including first come first served allocation of resources, allocation of resources optimized to make maximum use of a QPU, etc.; Column 7, Lines 28-33, the servers 108 may select a particular quantum processing unit (QPU) or other computing resource based on availability of the resource, speed of the resource, information or state capacity of the resource, a performance metric (e.g., process fidelity) of the resource, or based on a combination of these and other factors; and Column 27, Lines 52-62, a container 1322 gets executed based on access policies, priorities and any other pre-defined criteria on one node 1320. In some cases, scheduling and allocation of a node 1320 can be static according to a time window of a client. For example, any queued jobs that are submitted can be executed when the time window of the quantum processing system (e.g., QPU 1326) becomes available. In some cases, scheduling or allocation of a node can be managed according to the priorities such as, for example, time during a day, cost, and capacity of the computing resources), and
wherein a set of hardware units is selected from the plurality of hardware units (Column 7, Lines 25-28, servers 108 can select the type of computing resource (e.g., quantum or classical) to execute an individual program, or part of a program, in the computing system 101) by the host processor (Column 5, Lines 41-42, servers 108 operate as a host system for the cloud-based QC environment) based on the capability information (Column 7, Lines 28-33, servers 108 may select a particular quantum processing unit (QPU) or other computing resource based on availability of the resource, speed of the resource, information or state capacity of the resource, a performance metric (e.g., process fidelity) of the resource, or based on a combination of these and other factors);
receiving, by the selected set of hardware units, configuration information that includes a selection of one or more hardware allocation parameters (Column 17, Lines 21-23, quantum execution engine 426 can be reconfigured to target the ISA, the rack 440, and calibration specifications (e.g., operating points, pulses, etc.) for that particular QPU 450; and Column 17, Lines 39-44, a computing environment can be configured to optimize a particular type of execution. For example, a computing system can be configured/reconfigured to emphasize MAXCUT-style parametrized ansatz hybrid classical/quantum programs that involve a (classical) optimization loop); and
based on the received configuration information, configuring a hardware container to enable an SoC resource allocation (Column 12, Lines 39-43, virtualized representations may provide each user account a respective virtualized resource 222 that can be loaded on the host server 220 (e.g., concurrently) to access a collection of virtual resources (e.g., classical processors, memory, operating system, applications, etc.); Examiner Notes: 1) the claimed “hardware container” is mapped to Rivas’ “virtualized representations”: Column 12, Lines 35-37, virtualized representation of the execution environment allows many user accounts to concurrently utilize the hardware resources in the computing system; and 2) Rivas’ resources include system-on-chips: Column 6, Lines 47-62, servers 108 can allocate quantum and classical computing resources in the hybrid computing environment...The classical computing resources in the hybrid environment may include, for example,...systems-on-chips (SoCs), or other types of computing modules) related to a control group (Column 12, Lines 39-40, virtualized representations may provide each user account a respective virtualized resource 222; and Column 12, Lines 44-47, the virtualized resource 222 may be implemented as a virtual machine image that operates on virtual computing resource such as...a container; Examiner Note: Applicant’s specification uses the term “control group” interchangeably with the term “container”: [0172], In existing systems and methods, process containers or control groups are limited to resources, such as memory and generic control CPU compute, which can be scheduled by the operating system. Therefore, such software containers, manifested as process containers, only provide CaaS) and a namespace of SoC resources (Column 28, Lines 30-32, a custom namespace may be created to segregate users onto separate underlying resources for security or capacity management reasons) via a plurality of hardware modules in the SoC (Column 4, Lines 11-21, resources 107 may include ...systems-on-chips (SoCs), etc., or combinations of these and other types of computing modules)
Rivas fails to specifically teach, wherein the capability information of each hardware unit from the one or more plurality of hardware units includes … a plurality of types of statistics and parameters associated with collected statistical data to be collected by a plurality of instrumentation modules; receiving, by the selected set of hardware units, configuration information that includes ...one or more types of statistics associated with one or more processing flows from the host processor; and managing the hardware container based on a periodic collection and analysis of statistical data via a plurality of instrumentation modules in the SoC, wherein, based on the periodic collection and analysis of the statistical data by the selected set of hardware units at run-time, an impact of the one or more processing flows tracked at the host processor.
However, Metsch teaches, wherein the capability information of each hardware unit from the one or more plurality of hardware units includes … a plurality of types of statistics and parameters associated with collected statistical data ([0069], orchestrator server 1240 may obtain a profile in which the output parameter set is indicative of capacities, types of resources, architecture features supported by the resources, and/or a target location of the resources; Examiner Note: Metsch collects statistics related to statistics and parameters in an obtained profile: [0041], physical infrastructure 1100A may feature an advanced telemetry system that performs telemetry reporting that is sufficiently robust to support remote automated management of physical infrastructure 1100A. In various embodiments, telemetry information provided by such an advanced telemetry system may support features such as failure prediction/prevention capabilities and capacity planning capabilities; [0045], virtual infrastructure management framework 1150B may use/consult telemetry data in conjunction with performing such resource allocation. In various embodiments, an application/service management framework 1150C may be implemented in order to provide QoS management capabilities for cloud services 1140; and [0058], environment 1400 includes telemetry data 1402 which may be embodied as data indicative of the performance and conditions (e.g., resource utilization, operating frequencies, power usage, one or more temperatures, fan speeds, etc.) of resources allocated to each managed node 1260 as the managed nodes 1260 execute the workloads assigned to them. Additionally, the illustrative environment 1400 includes resource allocation objective data 1404 indicative of user-defined thresholds or goals (“objectives”) to be satisfied during the execution of the workloads. In the illustrative embodiment, the objectives pertain to power consumption, life expectancy, heat production, and performance of the resources allocated to the managed nodes 1260 ) … wherein the plurality of types of statistics characterize operational behavior of each hardware unit ([0047], the orchestrator server is further to collect telemetry data indicative of performance and conditions (e.g., resource utilization, one or more temperatures of one or more resources, fan speeds, etc.); and [0058], environment 1400 includes telemetry data 1402 which may be embodied as data indicative of the performance and conditions (e.g., resource utilization, operating frequencies, power usage, one or more temperatures, fan speeds, etc.) of resources allocated to each managed node 1260 as the managed nodes 1260 execute the workloads assigned to them); and
receiving, by the selected set of hardware units, configuration information that includes ...one or more types of statistics associated with one or more processing flows from the host processor ([0058], the illustrative environment 1400 includes resource allocation objective data 1404 indicative of user-defined thresholds or goals (“objectives”) to be satisfied during the execution of the workloads. In the illustrative embodiment, the objectives pertain to power consumption, life expectancy, heat production, and performance of the resources allocated to the managed nodes 1260).
Rivas and Metsch are analogous because they are both related to telemetry monitoring and resource allocation. Rivas teaches a method of time-based resource allocation of a shared pool of resources to hardware containers based on resource capabilities and workload requirements. (Column 5, Lines 57-64, cloud-based QC environment may be deployed in a “serverless” computing architecture. For instance, the cloud-based QC environment may provide on-demand access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, services, quantum computing resources, classical computing resources, etc.) that can be provisioned for requests from user devices 110; Column 11, Lines 32-35, operations performed by the controllers 106A may be scheduled for execution over a series of clock cycles, and clock signals from one or more clocks can be used to control the relative timing of each operation or groups of operations; Column 20, Line 67-Column 21, Line 4, QPU multitenancy can be provided by a computing system in which several users can have access to the same hardware resource (e.g., the same chip) in a single QPU (e.g., simultaneously or otherwise);and Column 23, Lines 30-36, enable engagement of virtualized resources and to permit utilization of quantum resources for a specific calendared time (e.g., a reservation). The access control information may include for example, an instruction set architecture (ISA), an end time of reservation, identification of quantum resource to be accessed, or a combination of these and other types of information; and Column 29, Lines 46-52, the container management and execution system 1312 can use its collective hardware resources (represented as the nodes 1320) to operate containers 1322 from a number of different user devices (clients) or a number of different virtualized resources, or to operate multiple containers 1322 from the same client representing for example multiple instances of a container). Rivas also teaches performance monitoring (Column 27, Lines 15-23, computing system 1308 will have access to a data storage 1324 in the (remote) data center 1330 for the purposes of storing and accessing periodic measurements made on the quantum computing system. Such measurements may be used to manage performance of the quantum processing unit (QPU) 1326, to provide necessary information for compiling of quantum applications and to provide general performance information useful for the maintenance and operation of the quantum computing system 1314 ). Metsch teaches a method of resource allocation, including adjustment of resource allocation, based on performance monitoring and workload requirements.([0062], adjust the allocation of resources to the managed nodes 1260 to enable assigned workloads to be executed in satisfaction of one or more threshold objectives, which may be specified in the input parameter set associated with each workload and/or in the resource allocation objective data 1404; and [0058], environment 1400 includes telemetry data 1402 which may be embodied as data indicative of the performance and conditions (e.g., resource utilization, operating frequencies, power usage, one or more temperatures, fan speeds, etc.) of resources allocated to each managed node 1260 as the managed nodes 1260 execute the workloads assigned to them. Additionally, the illustrative environment 1400 includes resource allocation objective data 1404 indicative of user-defined thresholds or goals (“objectives”) to be satisfied during the execution of the workloads. In the illustrative embodiment, the objectives pertain to power consumption, life expectancy, heat production, and performance of the resources allocated to the managed nodes 1260). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, container orchestration mechanism taught by Rivas would be modified with Metsch’s mechanism for utilizing telemetry data to achieve resource allocation objections resulting in a system that performs time-based resource allocation based on resource telemetry data and resource capabilities. Therefore, it would have been obvious to combine the teachings of Rivas and Metsch.
The combination of Rivas-Metsch fails to specifically teach, wherein the capability information of each hardware unit from the one or more plurality of hardware units includes …a plurality of types of statistics and parameters associated with collected statistical data to be collected by a plurality of instrumentation modules; and managing the hardware container based on a periodic collection and analysis of statistical data via a plurality of instrumentation modules, wherein, based on the periodic collection and analysis of the statistical data by the selected set of hardware units at run-time, an impact of the one or more processing flows tracked at the host processor.
However, Cannata teaches, wherein the capability information of each hardware unit from the one or more plurality of hardware units includes …a plurality of types of statistics and parameters associated with collected statistical data ([0023], the telemetry data may show that the current usage level of the allocated storage resources of a storage compute unit is approaching one hundred percent and allocate an additional storage device to the compute unit; and [0054], GUI 114 also can provide telemetry information for the operation of system 100 to end users, such as in one or more status interfaces or status views. The state of various components or elements of system 100 can be monitored through GUI 114, such as processor/CPU state, network state, storage unit state, PCIe element state, among others. Various performance metrics, error statuses can be monitored using GUI 114 or user interface 112; and [0069], software 320 can drive processor 300 to receive and monitor telemetry data, statistical information, operational data, and other data to provide telemetry to users and alter operation of clusters according to the telemetry data, policies, or other data and criteria) to be collected by a plurality of instrumentation modules ([0092], Telemetry might arise from activity monitors comprising software agents or daemons deployed to compute units); and
managing the hardware container based on a periodic collection and analysis of statistical data ([0027], management processors may provide templates for compute units as well as dynamic adjustments based on telemetry data; and [0092], Telemetry for the triggers can be monitored by a management processor, and responsive to the telemetry satisfying one or more thresholds or triggers, then adjustments to the target compute units can be automatically made according to the policies by the management processor; Examiner Note: target compute units are based on hardware containers: [0016], hardware configurations provide several preconfigured or predetermined configurations which allow for faster user deployment of arbitrarily defined machines, referred to herein as compute units, for various data processing and storage tasks. The term machine template is used herein, and other terms can also be applied, such as ... hardware container) via a plurality of instrumentation modules ([0092], Telemetry might arise from activity monitors comprising software agents or daemons deployed to compute units),
wherein, based on the periodic collection and analysis of the statistical data by the selected set of hardware units at run-time, an impact of the one or more processing flows tracked at the host processor ([0023], the management processors 110 may analyze telemetry data of the compute unit to determine the utilization of the current resources. Based on the current utilization, a dynamic adjustment policy may specify that processing resources, storage resources, networking resources, and so on be allocated to the compute unit or removed from the compute unit).
The combination of Rivas-Metsch and Cannata are analogous because they are each related to telemetry monitoring and resource allocation. Rivas teaches a method of time-based resource allocation of a shared pool of resources to hardware containers based on resource capabilities and workload requirements. Rivas also teaches performance monitoring. Metsch teaches a method of resource allocation, including adjustment of resource allocation, based on performance monitoring and workload requirements. Cannata teaches a method of allocating a hardware container and managing resource allocation to said hardware containers, including modifying said hardware containers, using telemetry data, wherein the telemetry data is collected by telemetry agents. (Abstract, Machine templates are described herein that provide for enhanced configuration and deployment of arrangements of physical computing components coupled over a communication fabric. In one example, a method includes presenting a user interface indicating a plurality of templates each specifying at least a predefined arrangement of physical computing components for inclusion in compute units, and receiving a user selection indicating a selected template among the plurality of templates to form a target compute unit; [0023], the management processors 110 may analyze telemetry data of the compute unit to determine the utilization of the current resources. Based on the current utilization, a dynamic adjustment policy may specify that processing resources, storage resources, networking resources, and so on be allocated to the compute unit or removed from the compute unit and [0104], A software configuration, such as operating system, user applications, system applications, virtualized components, telemetry elements, device drivers, customizations, or other software configurations can be deployed to the compute unit for usage by a processor of the compute unit. ). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, container orchestration mechanism taught by the combination of Rivas-Metsch would be modified with Cannata’s mechanism for telemetry monitoring and resource allocation based on telemetry data including resource allocation modifications based on said telemetry data. This combination would result in a system that performs time-based resource allocation based on resource telemetry data and resource capabilities. Therefore, it would have been obvious to combine the teachings of the combination of Rivas-Metsch and Cannata.
The combination of Rivas-Metsch-Cannata fails to specifically teach, plurality of instrumentation modules in the SoC.
However, Maurya teaches, a plurality of instrumentation modules in the SoC ([0018], data provided by the container statistics agents enables the scheduler to monitor and analyze the distribution of containers throughout the hosts of the system; and [0088], functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include...System-on-a-chip systems (SOCs)).
The combination of Rivas-Metsch-Cannata and Maurya are analogous because they are each related to telemetry monitoring and resource allocation. Rivas teaches a method of time-based resource allocation of a shared pool of resources to hardware containers based on resource capabilities and workload requirements. Rivas also teaches performance monitoring and resource allocation in a system on a chip environment. (Column 12, Lines 39-43, virtualized representations may provide each user account a respective virtualized resource 222 that can be loaded on the host server 220 (e.g., concurrently) to access a collection of virtual resources (e.g., classical processors, memory, operating system, applications, etc.; and Column 4, Lines 12-19, resources 107 may include ...systems-on-chips (SoCs))). Metsch teaches a method of resource allocation, including adjustment of resource allocation, based on performance monitoring and workload requirements. Cannata teaches a method of allocating a hardware container and managing resource allocation to said hardware containers, including modifying said hardware containers, using telemetry data, wherein the telemetry data is collected by telemetry agents. Maurya teaches a method of telemetry monitoring in a SoC container management system using telemetry collection modules. ([0017], container statistics agent deployed on each host of the system collects container statistics of each node on the host. These container statistics are sent by the container statistics agent to a centralized scheduler of the distributed computing system; [0018], container statistics data pipeline from collection by the agent to analysis by the scheduler enables the system to react rapidly and efficiently to unbalanced container distribution. As a result, the negative impacts of hosts being overloaded, datapaths being negatively affected, or the like are reduced or even entirely avoided; and [0088], hardware logic components that can be used include ...System-on-a-chip systems (SOCs)). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, container orchestration mechanism taught by the combination of Rivas-Metsch-Cannata would be modified with Maurya’s telemetry monitoring modules resulting in a system that collects telemetry data for available resources in an SOC system. Therefore, it would have been obvious to combine the teachings of the combination of Rivas-Metsch-Cannata and Maurya.
As per claim 2, Cannata teaches, further comprising:
based on the tracked impact of the one or more processing flows, receiving re-configuration information from the host processor by the selected set of hardware units at run-time ([0107], adjustments made to the compute unit can comprise changes to the composition of devices employed in the compute unit. For example, one or more components can be added, removed, or reconfigured based on the adjustments. These changes can be made to bring the operation of the compute unit to within a desired operational range according to the dynamic adjustment policies),
wherein the re-configuration information includes at least one of a new hardware allocation parameter ([0107], When processor utilization exceeds a target level, then the dynamic adjustment policies can indicate that additional processing capacity be brought into the compute unit. Conversely, when excess capacity is detected for a compute unit, then a portion of that capacity can be removed from the compute unit and returned to a free pool of resources for use by other compute units. The dynamic changes can be achieved by altering the logical partitioning within the communication fabric) and a new statistic type and parameters within an intellectual property (IP) of the SoC ([0023], during operation, the management processors 110 may analyze telemetry data of the compute unit to determine the utilization of the current resources. Based on the current utilization, a dynamic adjustment policy may specify that processing resources, storage resources, networking resources, and so on be allocated to the compute unit or removed from the compute unit; and [0027], select policies ...to migrate the compute unit to physical components utilizing the other communication protocol if the utilization exceeds a second threshold. Similarly, the opposite adjustments may be performed if utilization falls below the respective thresholds).
As per claim 4, Cannata teaches, further comprising:
publishing a list of supported SoC resources within the hardware container of the SoC ([0016], machine template is used herein, and other terms can also be applied, such as hardware template or hardware container. Machine templates describe potential compute units and comprise a preconfigured or predetermined configuration among physical hardware elements and software configurations; and [0022], management processors 110 may provide a user interface which may present machine templates for compute units that may specify hardware components to be allocated, as well as software and configuration information, for compute units created using the template).
As per claim 5, Metsch teaches, further comprising:
metering the SoC resource usage based on continuous monitoring of the statistical data ([0061], telemetry monitor 1430, which may be embodied as hardware, firmware, software, virtualized hardware, emulated architecture, and/or a combination thereof as discussed above, is configured to collect the telemetry data 1402 from the managed nodes 1260 as the managed nodes 1260 execute the workloads assigned to them. The telemetry monitor 1430 may actively poll each of the managed nodes 1260 for updated telemetry data 1402 on an ongoing basis).
As per claim 6, Cannata teaches, further comprising:
providing a standardized telemetry interface ([0054], GUI 114 also can provide telemetry information for the operation of system 100 to end users, such as in one or more status interfaces or status views. The state of various components or elements of system 100 can be monitored through GUI 114, such as processor/CPU state, network state, storage unit state, PCIe element state, among others. Various performance metrics, error statuses can be monitored using GUI 114 or user interface 112. User interface 112 can provide other user interfaces than GUI 114, such as command line interfaces (CLIs), application programming interfaces (APIs), or other interfaces) and authentication hooks for the periodic collection of the statistical data ([0059], management driver 141 monitors operation of the associated processing module 120 and software executed by a CPU of processing module 120 and provides telemetry for this operation to management processor 110...Management driver 141 provides functionality to allow each processing module 120 to participate in the associated compute unit and/or cluster, as well as provide telemetry data to an associated management processor. In examples in which compute units include physical components that utilize multiple or different communications protocols, management driver 141 may provide functionality to enable inter-protocol communication to occur within the compute unit; and [0092], Telemetry might arise from activity monitors comprising software agents or daemons deployed to compute units ;and [0117], telemetry data can originate from host processors which execute monitoring software, such as telemetry elements, activity monitors, daemons, agents, and the like, and transfer telemetry data to management CPU 810. This telemetry data might arise from telemetry elements comprising IPMI elements for the compute unit or communication fabric. Other sideband monitoring circuitry and telemetry circuitry can also be employed and report telemetry to management CPU 810).
As per claim 7, Rivas teaches, wherein the hardware container is isolated from a group of resources in the SoC intellectual property (SIP) (Column 28, Lines 20-22, each of the nodes 1320 of the computing system 1308 may include multiple namespaces to support the services provided to the user; and Column 28, Lines 30-32, a custom namespace may be created to segregate users onto separate underlying resources for security or capacity management reasons... the multiple namespaces share the computing resources within the computing system 1308. This sharing of compute resources is facilitated by the Container Management & Execution System 1312).
As per claim 8, Rivas teaches, further comprising:
for the one or more processing flows, maintaining counters for counting events (Column 23, Lines 37-40, a calendar may be implemented as a database representation of events (“reservations”), where a reservation is a block of time in the calendar, between a start time and an end time; and Column 23, Line 66-Column 24, Line 1, a heartbeat is sent to the hybrid classical/quantum computer system; the heartbeat may be generated by a chronometer) that trigger exceptions or interrupts (Column 24, Line 1-Column 3, At 1120, the scheduler engine routine is activated by the heartbeat; Column 24, Lines 18-26, the scheduler engine compares the data pulled from the calendar with the information pulled regarding which jobs are actually engaged and may perform an appropriate action based on the comparison. In the example shown in FIG. 11, the scheduler engine performs one or more of the operations represented at 1170, 1172 and 1174 in FIG. 11 based on the comparison at 1160. At 1170, if a job is engaged and the job has no reservation NOW, then disengage the job), wherein the exceptions or the interrupts are triggered when a cycle count exceeds a pre-programmed threshold value (Column 24, Lines 32-36, process 1100 may be run at any time, although in some implementations heartbeats can have a frequency which is at minimum the inverse of the minimum booking time (epoch) on the system, or the scheduler process interval).
As per claim 9, Rivas teaches, wherein the SoC resource allocation is enabled differently for different categories of domain-specific functions of processor tiles in the SoC (Column 5, Lines 9-16, a compiler can compile a program to a format that targets a specific quantum resource in the computer system 101; and Column 4, Lines 12-19, resources 107 may include ...systems-on-chips (SoCs); Column 17, Lines 21-23, quantum execution engine 426 can be reconfigured to target the ISA, the rack 440, and calibration specifications (e.g., operating points, pulses, etc.) for that particular QPU 450; and Column 17, Lines 39-44, a computing environment can be configured to optimize a particular type of execution. For example, a computing system can be configured/reconfigured to emphasize MAXCUT-style parametrized ansatz hybrid classical/quantum programs that involve a (classical) optimization loop), wherein the SoC resource allocation corresponds to at least one of processing cycles of one or more processors (Rivas, Column 11, Lines 30-35, the controllers 106A include one or more clocks that control the timing of operations. For example, operations performed by the controllers 106A may be scheduled for execution over a series of clock cycles, and clock signals from one or more clocks can be used to control the relative timing of each operation or groups of operations) or the plurality of hardware units, memory space, bus bandwidth, and interface bandwidth.
As per claim 10, Rivas teaches, further comprising:
performing a plurality of allocation functions via the plurality of hardware modules in the SoC (Column 6, Lines 2-10, servers 108 may operate as a cloud provider that dynamically manages the allocation and provisioning of physical computing resources (e.g., GPUs, CPUs, QPUs, etc.). Accordingly, the servers 108 may provide services by defining virtualized resources for each user account. For instance, the virtualized resources may be constructed as virtual machines, containers, or virtualized resources that can be provisioned for a user account and in an example implementation may be configured by a user).
Rivas fails to specifically teach, wherein the plurality of allocation functions includes adding hardware elements in the hardware container and partitioning the hardware elements.
However, Cannata teaches, wherein the plurality of allocation functions includes adding hardware elements in the hardware container ([0016], various thresholds can be established for the hardware containers or templates which allow for adding or removal of hardware elements from individual compute units according to performance needs, utilization amounts, capacity requirements, and other factors) and partitioning the hardware elements ([0040], NT port-based segregation or domain-based segregation can allow physical components (i.e. CPU, GPU, storage, network) only to have visibility to those components that are included via the segregation/partitioning. Thus, groupings among a plurality of physical components can be achieved using logical partitioning among the PCIe fabric).
The same motivation used in the rejection of claim 1 is applicable to the instant claim.
As per claim 13, Rivas teaches, further comprising:
generating a resource identifier group (RIG) associated with the hardware container (Column 6, Lines 5-12, the servers 108 may provide services by defining virtualized resources for each user account. For instance, the virtualized resources may be constructed as virtual machines, containers, or virtualized resources that can be provisioned for a user account and in an example implementation may be configured by a user. An example computing system that utilizes containers as virtualized resources is shown in FIG. 13), wherein the RIG includes a predefined limit on usage of the SoC resource (Column 23, Lines 29-32, scheduler can provide access control information (ACI) to the system, for instance, to enable engagement of virtualized resources and to permit utilization of quantum resources for a specific calendared time (e.g., a reservation)).
As per claim 14, Rivas teaches, wherein utilization of the SoC resource in the RIG is enabled by a resource scheduler within a corresponding processing element (Column 11, Lines 30-38, the controllers 106A include one or more clocks that control the timing of operations. For example, operations performed by the controllers 106A may be scheduled for execution over a series of clock cycles, and clock signals from one or more clocks can be used to control the relative timing of each operation or groups of operations. In some implementations, the controllers 106A may include classical computer resources that perform some or all of the operations of the servers 108 described above).
As per claim 15, this is the “system claim” corresponding to claim 1 and is rejected for the same reasons. The same motivation used in the rejection of claim 1 is applicable to the instant claim.
As per claim 16, this claim is similar to claim 2 and is rejected for the same reasons.
As per claim 17, this claim is similar to claim 9 and is rejected for the same reasons.
As per claim 18, this claim is similar to claim 10 and is rejected for the same reasons.
As per claim 20, Rivas teaches, wherein the processor is further configured to perform operations related to:
generate a resource identifier group (RIG) associated with the hardware container (Column 6, Lines 5-12, the servers 108 may provide services by defining virtualized resources for each user account. For instance, the virtualized resources may be constructed as virtual machines, containers, or virtualized resources that can be provisioned for a user account and in an example implementation may be configured by a user. An example computing system that utilizes containers as virtualized resources is shown in FIG. 13), wherein the RIG includes a predefined limit on usage of the SoC resource (Column 23, Lines 29-32, scheduler can provide access control information (ACI) to the system, for instance, to enable engagement of virtualized resources and to permit utilization of quantum resources for a specific calendared time (e.g., a reservation)),
wherein utilization of the SoC resource in the RIG is enabled by a resource scheduler within a corresponding processing element (Column 11, Lines 30-38, the controllers 106A include one or more clocks that control the timing of operations. For example, operations performed by the controllers 106A may be scheduled for execution over a series of clock cycles, and clock signals from one or more clocks can be used to control the relative timing of each operation or groups of operations. In some implementations, the controllers 106A may include classical computer resources that perform some or all of the operations of the servers 108 described above).
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over the combination of Rivas-Metsch-Cannata-Maurya as applied to independent claims 1 and 15 and in further view of Kay et al. (US 20140169196).
As per claim 3, the combination of Rivas-Metsch-Cannata- Maurya fails to specifically teach, further comprising: based on a correlation of measurements corresponding to the collection of the statistical data with an external reference time, capturing timestamps for the statistical data, wherein the impact of the one or more processing flows is tracked at the host processor based on the captured timestamps; and based on the captured timestamps for the statistical data, deriving overall peak usage conditions for the SoC resource.
However, Kay 201 teaches, further comprising:
based on a correlation of measurements corresponding to the collection of the statistical data with an external reference time, capturing timestamps for the statistical data ([0110], content of the timestamp may be determined based on a time reference signal provided by a time source coupled to the microcode controlled state machines 1204),
wherein the impact of the one or more processing flows is tracked at the host processor based on the captured timestamps ([0034], the network device 602 may insert and/or remove a timestamp from one or more packets included in the data flow as part of measuring network latency for the data flow); and
based on the captured timestamps for the statistical data, deriving overall peak usage conditions for the SoC resource ([0055], network device 602 may also measure network latency for each packet in the data flow, may determine per-flow network latency (such as an average of per-packet network latencies for packets included in a data flow) and jitter (variation in the network latency), and may report per-flow network latency and jitter to the management station 604; and [0066], network latency and jitter analysis logic 706 may be configured to perform analysis on measured per-packet network latency data to obtain per-flow network latency and jitter information...The mathematical operation may include at least one of a minimum, a maximum, an average, a convolution, a moving average, a sum of squares, a linear filtering operation, and a nonlinear filtering operation).
The combination of Rivas-Metsch-Cannata-Maurya and Kay are analogous because they are each related to telemetry monitoring and resource allocation. Rivas teaches a method of time-based resource allocation of a shared pool of resources to hardware containers based on resource capabilities and workload requirements. Metsch teaches a method of resource allocation, including adjustment of resource allocation, based on performance monitoring and workload requirements. Cannata teaches a method of allocating a hardware container and managing resource allocation to said hardware containers, including modifying said hardware containers, using telemetry data, wherein the telemetry data is collected by telemetry agents. Cannata also teaches traffic monitoring. ([0035], on-sled processor or control system for traffic statistics and status monitoring, among other operations). Maurya teaches a method of telemetry monitoring in a SoC container management system using telemetry collection modules. Kay teaches a method of capturing telemetry information regarding data flows including timestamp information for metric analysis and resource management. ([0028], management station 604 may monitor, collect, and display traffic analysis data from the network devices 602, and may provide control commands to the network devices 602. In this way, the management station may enable an operator, from a single location, to monitor and control network devices 602 deployed worldwide; and [0033], network devices 602 may efficiently perform monitoring, filtering, aggregation, replication, balancing, timestamping, and/or modification of network traffic within a unified architecture, based on rules that may be highly granular (such as granular to the bit) anywhere within the network traffic, while at the same time acting as a "bump in the wire" by minimizing perturbation of the network traffic introduced by the network devices 602. By performing at least this wide variety of functions, the network devices 602 may obtain network analysis data... The searching and ranking capability of the management station 604 has a compelling combination of advantages, because this capability can be across network devices 602 deployed worldwide, can be across this broad range of characteristics, and can take into account dynamic changes in search results and/or in ranking of the search results due to dynamic variations in the network analysis data. The searching and ranking capability of the management station 604 can also enable flexible, efficient, and context-based analysis and filtering of the large quantity of network analysis data available at the management station 604). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, container orchestration mechanism taught by the combination of Rivas-Metsch-Cannata-Maurya would be modified with Kay’s mechanism for deriving timestamp information resulting in a system that manages resources based on time-based telemetry data. Therefore, it would have been obvious to combine the teachings of the combination of Rivas-Metsch-Cannata-Maurya and Kay.
Claims 11 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Rivas-Metsch-Cannata-Maurya as applied to independent claims 1 and 15 and in further view of Koo et al. (US 20150079906).
As per claim 11, the combination of Rivas-Metsch-Cannata-Maurya fails to specifically teach, further comprising: controlling a first SoC resource based on a globally unique resource identifier within a processing element, wherein a resource identifier pool is shared across a plurality of compute resources.
However, Koo teaches, further comprising:
controlling a first SoC resource based on a globally unique resource identifier within a processing element ([0029], Any UE or network node or application server that stores the details of a valid assignment (a long-term identifier of the discoverable UE, a temporary identifier, and an indication of the expiration value) will cease to store those details, or will mark the assignment as no longer valid, once the expiration value has expired),
wherein a resource identifier pool is shared across a plurality of compute resources ([0041], network node 304 may maintain a pool of unassigned temporary identifiers, which includes both temporary identifiers that have never been assigned to any discoverable UE and temporary identifiers that were previously assigned to a discoverable UE but that previous assignment is no longer valid. (In other words, once the expiration value assigned to an assignment has expired, the temporary identifier of that assignment is returned to the pool of unassigned temporary identifiers.) In this case, the network node 304 may assign the temporary identifier T-ID from the pool of unassigned temporary identifiers).
The combination of Rivas-Metsch-Cannata-Maurya and Koo are analogous because they are each related resource management. Rivas teaches a method of time-based resource allocation of a shared pool of resources to hardware containers based on resource capabilities and workload requirements. Metsch teaches a method of resource allocation, including adjustment of resource allocation, based on performance monitoring and workload requirements. Cannata teaches a method of allocating a hardware container and managing resource allocation to said hardware containers, including modifying said hardware containers, using telemetry data, wherein the telemetry data is collected by telemetry agents. Maurya teaches a method of telemetry monitoring in a SoC container management system using telemetry collection modules. Koo teaches a method of managing resource identifies for discoverable resources, including reusing identifiers after an expiration period. ([0030], A temporary identifier that was assigned to a first UE and the expiration value of which has expired may subsequently be assigned to a second UE with a new expiration value. Thus the set of temporary identifiers is a renewable resource, with the temporary identifiers shared (at different times) among different UEs). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, container orchestration mechanism taught by the combination of Rivas-Metsch-Cannata-Maurya would be modified with Koo’s resource identifier management reuse resulting in a system that manages resources based on time-based telemetry data where resource identifiers can be reused. Therefore, it would have been obvious to combine the teachings of the combination of Rivas-Metsch-Cannata-Maurya and Koo.
As per claim 12, the combination of Rivas-Metsch-Cannata-Maurya fails to specifically teach, further comprising: reusing a globally unique resource identifier for a second SoC resource after a predefined cycle of allocation, metering, and resource usage limit.
However, Koo teaches, further comprising: reusing a globally unique resource identifier for a second SoC resource after a predefined cycle of allocation, metering, and resource usage limit ([0030], A temporary identifier that was assigned to a first UE and the expiration value of which has expired may subsequently be assigned to a second UE with a new expiration value. Thus the set of temporary identifiers is a renewable resource, with the temporary identifiers shared (at different times) among different UEs; and [0051], once the expiration value assigned to an assignment has expired, the temporary identifier of that assignment is returned to the pool of unassigned temporary identifiers).
The same motivation used in the rejection of claim 11 is applicable to the instant claim.
As per claim 19, this claim is similar to claim 11 and is rejected for the same reasons. The same motivation used in the rejection of claim 11 is applicable to the instant claim.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MELISSA A HEADLY whose telephone number is (571)272-1972. The examiner can normally be reached Monday- Friday 9-5:30pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached at 571-272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/MELISSA A HEADLY/Examiner, Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197