Control starts at block 702 in which the load balancing application 104 initially assigns weights and biases in the machine learning module 106 based on estimates. A determination is made at block 704 as to whether a predetermined number (e.g. N where N is a natural number, such as 1000) of I/O operations have completed in the host bus adapter 114 since the last adjustment of weights and biases. If so (“Yes” branch 706), control proceeds to block 708 in which weights and biases are adjusted in the machine learning module 106 based on a margin of error computed from the deviation of a generated output of the machine learning module 106 from an expected output of the machine learning module 106, where the expected output may be computed by the load balancing application 104. This is referred to as training the machine learning module 106 by adjustment of weights and biases so that learning occurs in the machine learning module 106 to provide improved outputs in the future.
In