Scheduling optimization of parallel linear algebra algorithms using
  Supervised Learning
  Linear algebra algorithms are used widely in a variety of domains, e.g
machine learning, numerical physics and video games graphics. For all these
applications, loop-level parallelism is required to achieve high performance.
However, finding the optimal way to schedule the workload between threads is a
non-trivial problem because it depends on the structure of the algorithm being
parallelized and the hardware the executable is run on. In the realm of
Asynchronous Many Task runtime systems, a key aspect of the scheduling problem
is predicting the proper chunk-size, where the chunk-size is defined as the
number of iterations of a for-loop assigned to a thread as one task. In this
paper, we study the applications of supervised learning models to predict the
chunk-size which yields maximum performance on multiple parallel linear algebra
operations using the HPX backend of Blaze's linear algebra library. More
precisely, we generate our training and tests sets by measuring performance of
the application with different chunk-sizes for multiple linear algebra
operations; vector-addition, matrix-vector-multiplication, matrix-matrix
addition and matrix-matrix-multiplication. We compare the use of logistic
regression, neural networks and decision trees with a newly developed decision
tree based model in order to predict the optimal value for chunk-size. Our
results show that classical decision trees and our custom decision tree model
are able to forecast a chunk-size which results in good performance for the
linear algebra operations.
