Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 05/02/2025 has been entered.
DETAILED ACTION
Claims 1, 3-15 and 17-22 are currently pending and have been examined.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claim 1, 3-12 are rejected under 35 U.S.C. 112(b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
The following claim languages are not clearly understood and indefinite:
As per claim 1, lines 7-11, recites the limitations “selecting … by comparing (1) a first set of weighted paths between the first CPU and the resources within the pool of resources and (2) a second set of weighted paths between pairs of available the resources within the pool of resources” However, it is uncertain and not clearly understood whether the comparing is between the “first set of weighed paths” and the “second weighted paths” or sums of weight path including between the CPU, resources, and pairs of resources.
Claims 3-12, are rejected as being dependent on rejected claim 1.
Claim Rejections - 35 USC § 103
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 of this title, 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, 3-7, 9-15 and 17-21are rejected under 35 U.S.C. 103 as being unpatentable over Sen et al. (U.S. Pub. No. 20190068696 A1) in view of Sherwood et al. (U.S. Pub. No. 20130054807 A1).
Sen was cited in a previous office action.
As per claim 1, Sen teaches the invention substantially as claimed including method for managing resources in a pool of resources of a first enclosure and a second enclosure (Fig. 16, a plurality of sleds including memory resources, compute resources), the method comprising:
managing, by a first computer processing unit (CPU) in the first enclosure, a computing task (par. 0075 One or more of the sleds 1530, 1540, 1550, 1560 may be grouped into a managed node 1570, such as by the orchestrator server 1520, to collectively perform a workload (e.g., an application 1532 executed in a virtual machine or in a container [task]; par. 0083 the compute sled 1630 may be embodied as any type of compute device that has central processing unit (CPU) capable of executing a workload);
determining, by a controller, that the computing task requires use of the resources in the pool of resources (par. 0075 if the QoS targets are not presently satisfied, the orchestrator server 1520 may determine to dynamically allocate additional physical resources to assist in the execution of the workload (e.g., the application 1532) while the workload is executing; par. 0085 determining a set of resources … to execute a workload);
selecting, by the controller, both a first available resource and a second available resource from the resources in the pool of resources by comparing (1) a first set of weighted paths between the first CPU and the resources within the pool of resources … (par. 0105 configured to select resources that not only have a sufficient capacity to execute functions on behalf of the workload at the target quality of service (QoS), but also are located in one or more racks [enclosures]; par. 0100 the resource allocation manager 1850 may prioritize selecting a resource that has the shortest path (e.g., a physical distance and/or a network distance) to the requesting compute sled 1630 from the pool of available resources that satisfy the target QoS; par. 0099 It should be appreciated that the network distance or the network hop count refers to a number of intermediate devices through which data must pass between the requesting compute sled 1630 and a sled that has one or more resources that satisfy the target QoS);
transferring the data between the first CPU and the first available resource to assist with the computing task; (par. 0071 during operation, a compute sled 800 or an accelerator sled 1000 may remotely write to and/or read from [transfer] one or more of the memory sets 1430, 1432 of the memory sled 1200 using a logical address space that maps to physical addresses in the memory sets 1430, 1432; par. 0008 a number of intermediate devices [resources] through which data must pass between the requesting compute sled 1630 and a sled that has one or more resources that satisfy the target QoS); and
Sen does not expressly describe: comparing … (2) a second set of weighted paths between pairs of available the resources within the pool of resources; transferring data between the first available resource and the second available resource to assist with the computing task.
However, Sherwood teaches: comparing … (2) a second set of weighted paths between pairs of available the resources within the pool of resources (par. 0046] As an example of using latency [as weight] as the primary criteria for selection of the primary-secondary host pair, consider the various possible network links [paths] between each data processing system, as shown in FIG. 3. Also, consider that the minimum network latency is from DPS1 302 to DPS2 310, while the latency from DPS2 310 to either of DPS3 318 or DPS4 326 is the same, and greater than the latency from DPS1 302 to DPS2 310. In this example, DPS1 302 would be designated as the initial primary host and DPS2 310 is designated as the initial secondary host);
transferring data between the first available resource and the second available resource to assist with the computing task (par. 0031 transfer data and operating parameters from primary host DPS 100 to secondary host 102).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Sen with that of Sherwood because they are directed to managing/allocating cloud resources. This would enable the system to realize performance and reliability gains that are not achievable when selecting a primary-secondary host pair based simply on whether a backup computer has sufficient resources (par.0006).
As per claim 3, Sen further teaches: wherein the first available resource is either a data storage device, a graphical processing unit (GPU), or memory, and wherein the second available resource is either a data storage device, a GPU, or memory (par. 0054 physical resources of the expansion chassis-less circuit board substrate may include, but is not limited to, processors, memory devices, storage devices, and/or accelerator circuits [GPUs]).
A per claim 4, Sen further teaches: wherein the first available resource is of a different type of resource than the second available resource (par. 0075 managed node may be embodied as an assembly of physical resources 620, such as processors 820, memory resources 720, accelerator circuits. Thus, selected resources maybe of different types).
As per claim 5, Sen further teaches: wherein the first available resource is positioned in the first enclosure, and wherein the second available resource is positioned in the second enclosure (par. 0027 resources in a managed node may even belong to sleds belonging to different racks, and even to different pods. Thus, selected resources maybe located or positioned on different racks, and even pods).
As per claim 6, Sen further teaches: wherein each of the resources in within the pool of available resources is communicatively coupled to a fabric (par. 0027 … the sleds may be connected with a fabric using Intel Omni-Path technology).
As per claim 7, Sen further teaches: wherein the fabric comprises a data bus (par. 0042 the I/O subsystem 622 may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, integrated sensor hubs, firmware devices, communication links (e.g., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.), and/or other components and subsystems to facilitate the input/output operations. In the illustrative embodiment, the I/O subsystem 622 is embodied as, or otherwise includes, a double data rate 4 (DDR4) data bus or a DDR5 data bus).
As per claim 9, Sen further teaches: wherein the first set and the second set of weighted paths are based, at least in part, on a number of switches between the first CPU and resources in the pool of resources (par. 0108 the network distance refers to a number of intermediate devices through which data must pass between the requesting compute sled 1630 and a sled that has one or more resources that satisfy the target QoS; par. 0027 in the illustrative embodiment, the sleds in each pod 110, 120, 130, 140 are connected to multiple pod switches (e.g., switches that route data communications to and from sleds within the pod). The pod switches, in turn, connect with spine switches 150 that switch communications among pods (e.g., the pods 110, 120, 130, 140) in the data center 100).
As per claim 10, Sen further teaches: wherein the first set and the second set of weighted paths are based, at least in part, on a static component and a dynamic component, which changes over time (par. 0100 … may prioritize selecting a resource that has the shortest path [which is static] (e.g., a physical distance and/or a network distance) to the requesting compute sled 1630 from the pool of available resources; Further, par. 100, resource allocation manager 1850 may select resources that not only have sufficient capacity (e.g., a low enough present utilization) to execute functions on behalf of the workload at the target quality of service, but that are also located in rack(s) that have a level of reliability and capacity (e.g., low network load on the top of rack switch, a relatively low error rate, etc.) commensurate with the target quality of service [which maybe dynamic]).
As per claim 11, Sen further teaches: wherein the first set and the second set of weighted paths are associated with edges between pairs of nodes, wherein one of the nodes represents the first CPU (par. 0099 may be further configured to determine a distance from an individual resource [e.g., memory] to a requesting compute sled 1630 [CPU] that is requesting the orchestrator server 1620 to compose a managed node. For example, Fig. 15, links/edges between a CPU in a compute sled 1530 and a memory in a memory sled 1540).
As per claim 12, Sen further teaches: wherein the comparing the first set and the second set of weighted paths includes determining the weighted path associated with the lowest weight (par. 0099 … the resource analyzer 1840 may determine a shortest path (e.g., a physical distance and/or a network distance) and prioritize a resource that has the shortest path to the requesting compute sled 1630 from the available resources that satisfies the target QoS that may be used by the resource allocation manager 1850 to allocate the resources to compose a managed node).
As per claim 13, Sen teaches the invention as claimed including a system comprising:
a central controller comprising memory that stores instructions (Fig. 16, Orchestrator Server 1620), which, when executed, cause the central controller to:
select a first available resource from resources in a pool of resources—each communicatively coupled to a fabric—in a first enclosure and in a second enclosure by comparing a first set of weighted paths between a CPU and a first type of the resources, select a second available resource from the resources in the pool of resources by comparing a second set of weighted paths between the CPU and a second type of the resources that is different than the first type (par. 0085 determining a set of resources … to execute a workload; par. 0100 the resource allocation manager 1850 may prioritize selecting a resource that has the shortest path (e.g., a physical distance and/or a network distance) to the requesting compute sled 1630 from the pool of available resources that satisfy the target QoS; par. 0105 configured to select resources that not only have a sufficient capacity to execute functions on behalf of the workload at the target quality of service (QoS), but also are located in one or more racks [enclosures]; par. 0110 the orchestrator server 1620 may transmit a unique address of each determined resource to the requesting compute sled 1630 to compose a requested managed node. Further, for example, Fig. 6 describes a plurality of resources which may include first physical resources, second physical resources selected; wherein, par. 0027 … the sleds [resources] may be connected with a fabric using Intel Omni-Path technology), and
instruct the CPU to access the first available resource and the second available resource via the fabric and to transfer data between the (1) first available resource and the third available resource and (2) the CPU and the first and second available resources to assist with a computing task managed by the CPU (par. 0071 during operation, a compute sled [which includes one or more CPUs] 800 or an accelerator sled 1000 may remotely write to and/or read from [transfer] one or more of the memory sets 1430, 1432 of the memory sled 1200 using a logical address space that maps to physical addresses in the memory sets 1430, 1432; par. 0008 a number of intermediate devices [resources] through which data must pass between the requesting compute sled 1630 and a sled that has one or more resources that satisfy the target QoS).
Sen does not expressly teach: select a third available resource from the resources in the pool of resources by comparing a third set of weighted paths between pairs of the resources.
However, Sherwood teaches: select a third available resource from the resources in the pool of resources by comparing a third set of weighted paths between pairs of the resources (par. 0046] As an example of using latency [as weight] as the primary criteria for selection of the primary-secondary host pair, consider the various possible network links [paths] between each data processing system, as shown in FIG. 3. Also, consider that the minimum network latency is from DPS1 302 to DPS2 310, while the latency from DPS2 310 to either of DPS3 318 or DPS4 326 is the same, and greater than the latency from DPS1 302 to DPS2 310. In this example, DPS1 302 would be designated as the initial primary host and DPS2 310 is designated as the initial secondary host);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Sen with that of Sherwood because they are directed to managing/allocating cloud resources. This would enable the system to realize performance and reliability gains that are not achievable when selecting a primary-secondary host pair based simply on whether a backup computer has sufficient resources (par.0006).
As per claim 14, Sen further teaches: the first enclosure housing a first portion of the pool of resources comprising a first set of data storage devices, a first set of memory, and a first set of graphical processing units; the second enclosure housing a second portion of the pool of resources comprising a second set of data storage devices, a second set of memory, and a second set of graphical processing units; and the fabric (Fig. 15; par. 0075 describe system 1510 includes an orchestrator server 1520, which may be embodied as a managed node comprising a compute device (e.g., a compute sled 800) executing management software (e.g., a cloud operating environment, such as OpenStack) that is communicatively coupled to multiple sleds 400 including a large number of compute sleds 1530 (e.g., each similar to the compute sled 800), memory sleds 1540 (e.g., each similar to the memory sled 1400), accelerator sleds 1550 (e.g., each similar to the memory sled 1000), and storage sleds 1560 (e.g., each similar to the storage sled 1200); par. 0027 … the sleds [resources] may be connected with a fabric using Intel Omni-Path technology).
As per claim 15, Sen further teaches: wherein the fabric includes a set of switches, wherein a weight of each of the first set, second set, and the third set of weighted paths is based, at least in part, on the number of switches between the CPU and a given one of the resources (par. 0108 the network distance refers to a number of intermediate devices through which data must pass between the requesting compute sled 1630 and a sled that has one or more resources that satisfy the target QoS; par. 0027 in the illustrative embodiment, the sleds in each pod 110, 120, 130, 140 are connected to multiple pod switches (e.g., switches that route data communications to and from sleds within the pod). The pod switches, in turn, connect with spine switches 150 that switch communications among pods (e.g., the pods 110, 120, 130, 140) in the data center 100; par. 0027 … the sleds may be connected with a fabric using Intel Omni-Path technology).
As per claim 17, Sen further teaches: a first set of CPUs, including the CPU, positioned in the first enclosure and communicatively coupled to the fabric; and
a second set of CPUs positioned in the second enclosure and communicatively coupled to the fabric (fig. 15, describes plurality compute sleds [sets of CPUs] communicatively coupled to plurality of memory sleds, accelerator sleds and storage sleds; wherein, par. 0027 the sleds may be connected with a fabric using Intel Omni-Path technology).
As per claim 18, Sen further teaches: wherein the first available resource, the second available resource, and the third available resource are selected based on the respective weighted paths associated with the lowest weight (par. 0099 … the resource analyzer 1840 may determine a shortest path (e.g., a physical distance and/or a network distance) and prioritize a resource that has the shortest path to the requesting compute sled 1630 from the available resources that satisfies the target QoS that may be used by the resource allocation manager 1850 to allocate the resources to compose a managed node).
As per claim 19, Sen further teaches wherein the first set, second set, and third set of weighted paths are based, at least in part, on a static component and a dynamic component (par. 0100 … may prioritize selecting a resource that has the shortest path [which is static] (e.g., a physical distance and/or a network distance) to the requesting compute sled 1630 from the pool of available resources; Further, par. 100, resource allocation manager 1850 may select resources that not only have sufficient capacity (e.g., a low enough present utilization) to execute functions on behalf of the workload at the target quality of service, but that are also located in rack(s) that have a level of reliability and capacity (e.g., low network load on the top of rack switch, a relatively low error rate, etc.) commensurate with the target quality of service [which maybe dynamic]).
As per claim 20, it is a non-transitory computer-readable medium having similar limitations as claim 13. Thus, claim 20 is rejected for the same rationale as applied to claim 13.
As per claim 21, Sen further teaches: wherein the selecting both the first available resource and the second available resource comprises comparing a sum of weighted paths between (1) the first CPU and the available resources (par. 0100 the resource allocation manager 1850 may prioritize selecting a resource that has the shortest path (e.g., a physical distance and/or a network distance) to the requesting compute sled 1630 from the pool of available resources that satisfy the target QoS; wherein, par. 0108 the network distance refers to a number of intermediate devices [sum of weighted paths between resources] through which data must pass between the requesting compute sled 1630 and a sled that has one or more resources that satisfy the target QoS). Sherwood further teaches: wherein the selecting … comprises comparing … weighted paths between … (2) the pairs of available resources (par. 0046] As an example of using latency [as weight] as the primary criteria for selection of the primary-secondary host pair, consider the various possible network links [paths] between each data processing system, as shown in FIG. 3. Also, consider that the minimum network latency is from DPS1 302 to DPS2 310, while the latency from DPS2 310 to either of DPS3 318 or DPS4 326 is the same, and greater than the latency from DPS1 302 to DPS2 310. In this example, DPS1 302 would be designated as the initial primary host and DPS2 310 is designated as the initial secondary host).
As per claim 22, Sen further teaches: wherein the first set and the second set of weighted paths are based, at least in part, on a static component and a dynamic component, wherein the static component is zero for the resources located in the first enclosure, wherein the static component is non-zero for the resources located in the second enclosure (par. 0076 the orchestrator server 1520 may utilize … the performance (e.g., congestion, latency, bandwidth) of the path through the network to the resource [dynamic component]; par. 0100 the resource allocation manager 1850 may prioritize selecting a resource that has the shortest path (e.g., a physical distance and/or a network distance) [static component] to the requesting compute sled 1630 from the pool of available resources that satisfy the target QoS, wherein resources within a sled may have no static component, while for resources on different sleds maybe be non-zero).
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Sen in view Sherwood as applied to claims 1 and 13 above, and further in view of Tan et al. (U.S. Patent No. 11954238 B1).
Tan was cited in a previous office action.
As per claim 8, Sen and Sherwood do not expressly describe: wherein the data bus is a peripheral component interconnect express (PCle) data bus.
However, Tan teaches: wherein the data bus is a peripheral component interconnect express (PCle) data bus (col. 7, lines 27-28, The switch 116 may, for example, be a PCIe switch that is coupled to a PCIe bus).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the teaching of Sen and Sherwood by incorporating a PCIe bus as disclosed by Tan because using a PCIe bus would provide lower latency and higher data transfer rates between processor executing workloads and other resources in such system.
Applicant's arguments with respect to claim 1 have been considered but are moot in view of the new ground(s) of rejection.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Willy W. Huaracha whose telephone number is (571)270-5510. The examiner can normally be reached on M-F 8:30-5:00pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aimee Li can be reached on (571) 272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WH/
Examiner, Art Unit 2195
/BING ZHAO/Primary Examiner, Art Unit 2151