A method , comprising: sending , by one or more processors, input data to a plurality of computing devices (115A-N) configured to process the input data , wherein a respective portion of the input data is sent to each of the plurality of computing devices (115A-N) according to a load-balancing distribution; receiving , from a first computing device of the plurality of computing devices (115A-N), data characterizing memory bandwidth for a memory device on the first computing device and over a period of time; determining , at least from the data characterizing the memory bandwidth and a memory bandwidth saturation point for the first computing device, that the first computing device can process additional data within a predetermined latency threshold, wherein the memory bandwidth saturation point for the first computing device is determined by: receiving measures of access latency at different memory bandwidths , each memory bandwidth corresponding to a respective measure of access latency, wherein access latency is a measure of time to access data stored on the memory device; and identifying a first memory bandwidth as the memory bandwidth saturation point for the first computing device as a point where a rate of change of the access latency increases faster than a constant or linear relationship between access latency and a bandwidth identified for memory bandwidths below the first memory bandwidth ; and in response to determining that the first computing device can process additional data within the predetermined latency threshold, sending the additional data to the first computing device. sending , by one or more processors, input data to a plurality of computing devices (115A-N) configured to process the input data , wherein a respective portion of the input data is sent to each of the plurality of computing devices (115A-N) according to a load-balancing distribution; receiving , from a first computing device of the plurality of computing devices (115A-N), data characterizing memory bandwidth for a memory device on the first computing device and over a period of time; determining , at least from the data characterizing the memory bandwidth and a memory bandwidth saturation point for the first computing device, that the first computing device can process additional data within a predetermined latency threshold, wherein the memory bandwidth saturation point for the first computing device is determined by: receiving measures of access latency at different memory bandwidths , each memory bandwidth corresponding to a respective measure of access latency, wherein access latency is a measure of time to access data stored on the memory device; and identifying a first memory bandwidth as the memory bandwidth saturation point for the first computing device as a point where a rate of change of the access latency increases faster than a constant or linear relationship between access latency and a bandwidth identified for memory bandwidths below the first memory bandwidth ; and receiving measures of access latency at different memory bandwidths , each memory bandwidth corresponding to a respective measure of access latency, wherein access latency is a measure of time to access data stored on the memory device; and identifying a first memory bandwidth as the memory bandwidth saturation point for the first computing device as a point where a rate of change of the access latency increases faster than a constant or linear relationship between access latency and a bandwidth identified for memory bandwidths below the first memory bandwidth ; and in response to determining that the first computing device can process additional data within the predetermined latency threshold, sending the additional data to the first computing device. <EOS>