Federated management of data operators on near-memory compute nodes
View Patent ↗Examples described herein relate to federated management of data operators across multiple near-memory compute (NMC) nodes attached to memory devices in a network-attached memory system. Federated management includes loading, executing, and scaling data operators across the multiple NMC nodes together as a group. Examples include receiving a data access request from a client application and loading data operators in the multiple NMC nodes based on a data access pattern associated with the data access request. Examples include scaling the data operators based on performance metrics for the data operators or the multiple NMC nodes in correlation with client application performance. The multiple NMC nodes may dynamically scale the data operators based on request-load, execution frequency of data operators, resource availability, or other scaling strategies. Examples also include loading and scaling the data operators based on one or more of request characteristics or data operator characteristics.
1 . A method comprising:
receiving, at a first near-memory compute (NMC) node attached to a first memory device of a network-attached memory system, a request to access data stored in the network-attached memory system from a client application, wherein the first NMC node is communicatively coupled to a second NMC node attached to a second memory device of the network-attached memory system;
loading federated data operators at the first NMC node and the second NMC node, wherein the federated data operators are functions executed based on a data access pattern associated with the request; and
scaling the federated data operators based on performance metrics for the federated data operators in correlation with client application performance, wherein scaling the federated data operators based on performance metrics for the federated data operators in correlation with client application performance comprises:
determining performance metrics for the federated data operators;
determining a performance metric for the client application from which the request was received;
determining a correlation between the performance metrics for the federated data operators and the performance metric for the client application, the correlation being indicative of a relationship between the performance metrics for the federated data operators and the performance metric for the client application; and
scaling the federated data operators according to the correlation between the performance metrics for the federated data operators and the performance metric for the client application.
2 . The method of claim 1 , wherein the data access pattern is one or more of a parallel access pattern, dataflow pattern, or a predefined access pattern.
3 . The method of claim 2 , wherein loading the federated data operators at the first NMC node and the second NMC node comprises:
determining that the data access pattern is the parallel access pattern; and
loading identical federated data operators at the first NMC node and the second NMC node, wherein the identical federated data operators are executed simultaneously at the first NMC node and the second NMC node.
4 . The method of claim 2 , wherein loading the federated data operators at the first NMC node and the second NMC node comprises:
determining that the data access pattern is the dataflow pattern; and
loading a first set of federated data operators at the first NMC node and a second set of federated data operators at the second NMC node, wherein the first set of federated data operators and the second set of federated data operators are executed at different periods.
5 . The method of claim 2 , wherein loading the federated data operators at the first NMC node and the second NMC node comprises:
determining that the data access pattern is a predefined access pattern, wherein the predefined access pattern is a combination of the parallel access pattern and the dataflow pattern;
loading identical federated data operators at the first NMC node and the second NMC node, wherein the identical federated data operators are executed simultaneously at the first NMC node and the second NMC node at a first period; and
loading a first set of federated data operators at the first NMC node and a second set of federated data operators at the second NMC node, wherein the first set of federated data operators is executed at a second period and the second set of federated data operators is executed at a third period.
6 . The method of claim 1 , wherein scaling the federated data operators comprises:
responsive to scaling the federated data operators at the first NMC node, scaling the federated data operators at the second NMC node.
7 . The method of claim 1 , wherein scaling the federated data operators comprises:
responsive to determining that a request-load at the first NMC node is greater than a predetermined threshold range, scaling the federated data operators at the first NMC node, wherein the scaling includes one or more of increasing the federated data operators at the first NMC node or increasing resources allocated to the federated data operators at the first NMC node.
8 . The method of claim 1 , wherein scaling the federated data operators comprises:
determining a request-load at the first NMC node and the second NMC node; and
scaling the federated data operators at the first NMC node and the second NMC node based on the request-load at the first NMC node and the second NMC node.
9 . The method of claim 1 , wherein scaling the federated data operators comprises:
for each of the federated data operators, assigning a rank indicative of a frequency of execution of the federated data operator; and
scaling the federated data operators based on the rank assigned to the federated data operators.
10 . The method of claim 1 , wherein the performance metrics are measured at each of the federated data operators, and wherein the performance metrics are based on one or more of data transfer, latency, bandwidth, or energy savings.
11 . The method of claim 10 , further comprising:
swapping a first set of federated data operators with a second set of federated data operators by reallocating resources of the first set of federated data operators to the second set of federated data operators.
12 . A non-transitory machine-readable medium storing instructions executable by a processing resource, the instructions comprising instructions to:
receive, at a first near-memory compute (NMC) node attached to a first memory device of a network-attached memory system, a request to access data stored in the network-attached memory system from a client application, wherein the first NMC node is communicatively coupled to a second NMC node attached to a second memory device of the network-attached memory system;
determine a data access pattern associated with the request;
load, according to the data access pattern associated with the request, federated data operators at the first NMC node and the second NMC node, wherein the federated data operators are functions executed based on the data access pattern associated with the request; and
scale the federated data operators based on performance metrics for the federated data operators in correlation with client application performance, wherein scaling the federated data operators based on performance metrics for the federated data operators in correlation with client application performance comprises:
determining performance metrics for the federated data operators;
determining a performance metric for the client application from which the request was received;
determining a correlation between the performance metrics for the federated data operators and the performance metric for the client application, the correlation being indicative of a relationship between the performance metrics for the federated data operators and the performance metric for the client application; and
scaling the federated data operators according to the correlation between the performance metrics for the federated data operators and the performance metric for the client application.
13 . The non-transitory machine-readable medium of claim 12 , wherein the instructions to scale the federated data operators further comprising instructions to:
responsive to determining that a request-load in a period is greater than a threshold and that resource consumption amount is in a threshold range:
identify a first federated data operator from the federated data operators at the first NMC node; and
add a new first federated data operator at the first NMC node by swapping resources allocated to a second federated data operator.
14 . The non-transitory machine-readable medium of claim 12 , wherein the instructions to scale the federated data operators further comprising instructions to:
responsive to determining that a request-load in a period is greater than a threshold and that resource consumption amount is in a threshold range:
allocate additional resources to a first federated data operator at the first NMC node by swapping out resources allocated to a second federated data operator at the first NMC node.
15 . The non-transitory machine-readable medium of claim 12 , wherein the instructions to scale the federated data operators further comprising instructions to:
create a third federated data operator by combining a first federated data operator and a second federated data operator.
16 . The non-transitory machine-readable medium of claim 12 , wherein the instructions to scale the federated data operators further comprising instructions to:
unload a first federated data operator from the first NMC node; and
load the first federated data operator at a client device hosting the client application.
17 . The non-transitory machine-readable medium of claim 12 , wherein the instructions to scale the federated data operators further comprising instructions to:
determine that a first federated data operator is associated with a first operator type and that a second federated data operator is associated with a second operator type; and
responsive to determining that the first operator type and the second operator type do not correspond to a predefined set of operator types, scaling one of the first federated data operator or the second federated data operator.
18 . A device comprising:
a processing resource; and
a machine-readable storage medium comprising instructions executable by the processing resource to:
receive a request to access data stored in a network-attached memory system from a client application;
load federated data operators based on one or more of request characteristics of the request or operator characteristics of the federated data operators, wherein the federated data operators are deployed across multiple near memory compute (NMC) nodes communicatively coupled to the device; and
scale the federated data operators based on performance metrics for the federated data operators in correlation with client application performance, wherein scaling the federated data operators based on performance metrics for the federated data operators in correlation with client application performance comprises:
determining performance metrics for the federated data operators;
determining a performance metric for the client application from which the request was received;
determining a correlation between the performance metrics for the federated data operators and the performance metric for the client application, the correlation being indicative of a relationship between the performance metrics for the federated data operators and the performance metric for the client application; and
scaling the federated data operators according to the correlation between the performance metrics for the federated data operators and the performance metric for the client application.
19 . The device of claim 18 , wherein the request characteristics of the requests comprises one or more of: a number of the requests, a type of the client application, or a type of the data requested.
20 . The device of claim 18 , wherein the operator characteristics of the federated data operators comprises one or more of data operator availability or data operator specified in the requests.